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.