README.md in active_enumerable-0.1.1 vs README.md in active_enumerable-0.2.0

- old
+ new

@@ -1,7 +1,10 @@ # ActiveEnumerable +[![Build Status](https://travis-ci.org/zeisler/active_enumerable.svg?branch=master)](https://travis-ci.org/zeisler/active_enumerable) +[![Gem Version](https://badge.fury.io/rb/active_enumerable.svg)](https://badge.fury.io/rb/active_enumerable) + Include ActiveRecord like query methods to Ruby enumerable collections. ## Installation Add this line to your application's Gemfile: @@ -18,10 +21,12 @@ $ gem install active_enumerable ## Usage +### ActiveRecord Like Querying + ```ruby require "active_enumerable" class Customers include ActiveEnumerable @@ -44,9 +49,36 @@ Customers.item_class = Customer customers.create({paid: true, credit: 1500}).to_a.last #=> <#Customer paid: true, credit: 1500> + +``` + +### English Like DSL + +```ruby +class People + include ActiveEnumerable + + scope :unpaid, -> { where(paid: false).or(credit: 0) } +end + +people = People.new([{ name: "Reuben" }, { name: "Naomi" }]) +people.where { has(:name).of("Reuben") } } + #=> <#People [{ name: "Reuben" }]] + + +people = People.new( [ + { name: "Reuben", parents: [{ name: "Mom", age: 29 }, { name: "Dad", age: 33 }] }, + { name: "Naomi", parents: [{ name: "Mom", age: 29 }, { name: "Dad", age: 41 }] } + ] ) + +people.where { has(:parents).of(age: 29, name: "Mom").or(age: 33, name: "Dad") } + #=> <#People [{ name: "Reuben", parents: [...] }, { name: "Naomi", parents: [...] }] + +people.where { has(:parents).of(age: 29, name: "Mom").and(age: 33, name: "Dad") + #=> <#People [{ name: "Reuben", parents: [...] }> ``` ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.