defmodule IE do @moduledoc false @people [ %{name: "Mike", likes: "ski, arts", dob: "1992-04-15"}, %{name: "Mary", likes: "travels" , dob: "1992-04-15"}, %{name: "Ann" , likes: "reading" , dob: "1992-04-15"}, %{name: "Ray" , likes: "cycling" , dob: "1977-08-28"}, %{name: "Bill", likes: "karate" , dob: "1977-08-28"}, %{name: "Joe" , likes: "boxing" , dob: "1977-08-28"}, %{name: "Jill", likes: "cooking" , dob: "1976-09-28"} ] @people_as_keywords [ [name: "Mike", likes: "ski, arts", dob: "1992-04-15"], [name: "Mary", likes: "travels" , dob: "1992-04-15"], [name: "Ann" , likes: "reading" , dob: "1992-04-15"], [name: "Ray" , likes: "cycling" , dob: "1977-08-28"], [name: "Bill", likes: "karate" , dob: "1977-08-28"], [name: "Joe" , likes: "boxing" , dob: "1977-08-28"], [name: "Jill", likes: "cooking" , dob: "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