Allows you to query against collections using Izzy's matches_all?
Let's get ourselves a collection to use:
class Object; include QEnumerable end
brandon = Person.new('brandon', 23, 'm')
john = Person.new('john', 42, 'm')
jill = Person.new('jill', 31, 'f')
alice = Person.new('alice', 50, 'f')
zeke = Person.new('zeke', 18, 'm')
people = [brandon, john, jill, alice, zeke]
Select all objects where params match:
people.select_where name: /^j/
# => [john, jill]
people.select_where(
age: [
(20..35),
-> a { a.odd? }
]
)
# => [brandon]
Reject all objects where params match:
people.reject_where name: /^j/
# => [brandon, alice, zeke]
people.reject_where(
age: [
(20..35),
-> a { a.odd? }
]
)
# => [john, jill, alice, zeke]
Finds the first object where params match:
people.find_where name: /^j/, gender: 'm'
# => john
Add this line to your application's Gemfile:
gem 'qenumerable'
And then execute:
$ bundle
Or install it yourself as:
$ gem install qenumerable
- Fork it ( http://github.com/baweaver/qenumerable/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request