dredd 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -1,29 +1,73 @@
1
1
  # Dredd
2
2
 
3
- Rules over collections.
3
+ ```
4
+ .-----.
5
+ /__ # __\
6
+ || \ / ||
7
+ |`. X .'|
8
+ | |_____| |
9
+ `---------'
10
+ d r e d d
4
11
 
12
+ Rules over collections
13
+ ```
5
14
 
6
15
  ## Installation
7
16
 
8
- Add this line to your application's Gemfile:
17
+ ```
18
+ $ gem install dredd
19
+ ```
9
20
 
10
- gem 'dredd'
21
+ ## Usage
11
22
 
12
- And then execute:
23
+ Dredd is a sort of DSL, sort of rule runner, combined.
13
24
 
14
- $ bundle
25
+ Use it if you want to detect various outliers/exceptions within collections, detection is expressed with Dredd rules.
15
26
 
16
- Or install it yourself as:
17
27
 
18
- $ gem install dredd
28
+ To start, you should have
19
29
 
20
- ## Usage
30
+ 1. A collection of hashes (if you have objects, `#to_h` them).
31
+ 2. A Dredd rule.
32
+
33
+ Now combine the two :)
34
+
35
+ ```ruby
36
+ result = Dredd.detect "all{ payment > 10 }.size.gt 0",
37
+ [
38
+ { :payment => 0 },
39
+ { :payment => 20 },
40
+ { :payment => 0 }
41
+ ]
42
+ result # => true
43
+ ```
44
+
45
+ ### Rules
46
+
47
+ Here's an assortment of queries possible with Dredd's DSL:
48
+
49
+ ```
50
+ all.mean{ payment }
51
+ all{ payment > 10 }.sum{ payment }.is 20
52
+ first(2){ payment > 50 }
53
+ ```
54
+
55
+ See live examples in `spec/dredd/query_spec.rb`
56
+
57
+
58
+ ### Notes
59
+
60
+ Rules are not sandboxed yet. They will be, and till then - take it into consideration, thanks.
61
+
62
+
63
+
64
+
65
+
66
+ # Contributing
67
+
68
+ Fork, implement, add tests, pull request, get my everlasting thanks and a respectable place here :).
21
69
 
70
+ # Copyright
22
71
 
23
- ## Contributing
72
+ Copyright (c) 2014 [Dotan Nahum](http://gplus.to/dotan) [@jondot](http://twitter.com/jondot). See MIT-LICENSE for further details.
24
73
 
25
- 1. Fork it
26
- 2. Create your feature branch (`git checkout -b my-new-feature`)
27
- 3. Commit your changes (`git commit -am 'Add some feature'`)
28
- 4. Push to the branch (`git push origin my-new-feature`)
29
- 5. Create new Pull Request
@@ -1,3 +1,3 @@
1
1
  module Dredd
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -14,6 +14,16 @@ describe Dredd::Query do
14
14
  q.execute([{:foo => 0},{:foo => 0}, {:foo => 60}]).must_equal(["foo" => 60])
15
15
  end
16
16
 
17
+ it "should select first" do
18
+ q = Dredd::Query.new("first(1){ foo }")
19
+ q.execute([{:foo => 0}, {:foo => 60}]).must_equal(["foo" => 0])
20
+ end
21
+
22
+ it "should select last" do
23
+ q = Dredd::Query.new("last(1){ foo }")
24
+ q.execute([{:foo => 0}, {:foo => 60}]).must_equal(["foo" => 60])
25
+ end
26
+
17
27
  it "should run aggregations on all" do
18
28
  q = Dredd::Query.new("all.sum{ foo }")
19
29
  q.execute([{:foo => 1},{:foo => 2}, {:foo => 60}]).must_equal(63)
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dredd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - jondot
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-02-11 00:00:00.000000000 Z
12
+ date: 2014-02-17 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: hashie
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: statsample
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: bundler
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ~>
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ~>
53
60
  - !ruby/object:Gem::Version
@@ -55,43 +62,49 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: rake
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ! '>='
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: rr
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
- - - '>='
83
+ - - ! '>='
74
84
  - !ruby/object:Gem::Version
75
85
  version: '0'
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
- - - '>='
91
+ - - ! '>='
81
92
  - !ruby/object:Gem::Version
82
93
  version: '0'
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: guard-minitest
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
- - - '>='
99
+ - - ! '>='
88
100
  - !ruby/object:Gem::Version
89
101
  version: '0'
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
- - - '>='
107
+ - - ! '>='
95
108
  - !ruby/object:Gem::Version
96
109
  version: '0'
97
110
  description: ''
@@ -119,26 +132,27 @@ files:
119
132
  homepage: ''
120
133
  licenses:
121
134
  - MIT
122
- metadata: {}
123
135
  post_install_message:
124
136
  rdoc_options: []
125
137
  require_paths:
126
138
  - lib
127
139
  required_ruby_version: !ruby/object:Gem::Requirement
140
+ none: false
128
141
  requirements:
129
- - - '>='
142
+ - - ! '>='
130
143
  - !ruby/object:Gem::Version
131
144
  version: '0'
132
145
  required_rubygems_version: !ruby/object:Gem::Requirement
146
+ none: false
133
147
  requirements:
134
- - - '>='
148
+ - - ! '>='
135
149
  - !ruby/object:Gem::Version
136
150
  version: '0'
137
151
  requirements: []
138
152
  rubyforge_project:
139
- rubygems_version: 2.2.1
153
+ rubygems_version: 1.8.23
140
154
  signing_key:
141
- specification_version: 4
155
+ specification_version: 3
142
156
  summary: ''
143
157
  test_files:
144
158
  - spec/dredd/query_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: b0d4e39388a55b8ef0bf7410e33abcb3c544a577
4
- data.tar.gz: e1582407cd7fa935bb50e825a790fa75192475cd
5
- SHA512:
6
- metadata.gz: 3ee9456d383cefee40908ea2e3b347c63023f2e38610295f95abc9b30ba9ebb47ffd64de2b9ab55a8dcd15f44c43bc028f47c7f16be76b6cb7ff02408ad4e760
7
- data.tar.gz: 561771d6d4081f68fa0342f800fdca04d244872a9a9901aebd141861e53de348d3482140fd74c94d0b9e2fc3080742ff87666467d576f3295ebba711113c2b91