Skip to content

Instantly share code, notes, and snippets.

@jordelver
Created October 21, 2014 08:38
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jordelver/9521a3bb8f2d1f2dbd2c to your computer and use it in GitHub Desktop.
Save jordelver/9521a3bb8f2d1f2dbd2c to your computer and use it in GitHub Desktop.
Person = Struct.new(:name, :age)

peeps = [
  Person.new("Jordan", 33),
  Person.new("Bob", 19),
  Person.new("Frank", 55)
]

Two steps, sort and access element

peeps.sort_by(&:age).first
=> #<struct Person name="Bob", age=19>

peeps.sort_by(&:age).last
=> #<struct Person name="Frank", age=55>

Avoid sort in one step

peeps.min_by(&:age)
=> #<struct Person name="Bob", age=19>

peeps.max_by(&:age)
=> #<struct Person name="Frank", age=55>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment