defmodule IE do @moduledoc false @people [ %{name: "Mike", likes: "ski, arts", dob: ~D[1992-04-15]}, %{name: "Mary", likes: "travels" , dob: ~D[1992-04-15]}, %{name: "Ann" , likes: "reading" , dob: ~D[1992-04-15]}, %{name: "Ray" , likes: "cycling" , dob: ~D[1977-08-28]}, %{name: "Bill", likes: "karate" , dob: ~D[1977-08-28]}, %{name: "Joe" , likes: "boxing" , dob: ~D[1977-08-28]}, %{name: "Jill", likes: "cooking" , dob: ~D[1976-09-28]} ] @people_as_keywords [ [name: "Mike", likes: "ski, arts", dob: ~D[1992-04-15]], [name: "Mary", likes: "travels" , dob: ~D[1992-04-15]], [name: "Ann" , likes: "reading" , dob: ~D[1992-04-15]], [name: "Ray" , likes: "cycling" , dob: ~D[1977-08-28]], [name: "Bill", likes: "karate" , dob: ~D[1977-08-28]], [name: "Joe" , likes: "boxing" , dob: ~D[1977-08-28]], [name: "Jill", likes: "cooking" , dob: ~D[1976-09-28]] ] # Functions for iex session... # # Examples: # require IE # IE.use # MapSorter.sort(people(), asc: :dob, desc: :likes) # MapSorter.sort(people_as_keywords(), asc: :dob, desc: :likes) # MapSorter.sort(people(), asc: :dob, desc: :name) # MapSorter.sort(people_as_keywords(), asc: :dob, desc: :name) # MapSorter.sort(people(), desc: :dob, asc: :likes) # MapSorter.sort(people_as_keywords(), desc: :dob, asc: :likes) # MapSorter.sort(people(), desc: :dob, asc: :name) # MapSorter.sort(people_as_keywords(), desc: :dob, asc: :name) defmacro use() do quote do import IE alias MapSorter.Support require MapSorter :ok end end def people(), do: @people def people_as_keywords(), do: @people_as_keywords end