squeel 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/CHANGELOG.md +20 -0
  2. data/README.md +1 -1
  3. data/lib/squeel.rb +1 -2
  4. data/lib/squeel/adapters/active_record.rb +3 -1
  5. data/lib/squeel/adapters/active_record/3.0/compat.rb +5 -1
  6. data/lib/squeel/adapters/active_record/3.0/context.rb +2 -2
  7. data/lib/squeel/adapters/active_record/3.1/compat.rb +22 -0
  8. data/lib/squeel/adapters/active_record/3.1/context.rb +2 -2
  9. data/lib/squeel/adapters/active_record/compat.rb +22 -0
  10. data/lib/squeel/adapters/active_record/join_dependency_extensions.rb +2 -2
  11. data/lib/squeel/configuration.rb +2 -2
  12. data/lib/squeel/core_ext/symbol.rb +3 -13
  13. data/lib/squeel/dsl.rb +10 -1
  14. data/lib/squeel/nodes.rb +9 -1
  15. data/lib/squeel/nodes/aliasing.rb +2 -2
  16. data/lib/squeel/nodes/as.rb +1 -1
  17. data/lib/squeel/nodes/binary.rb +1 -4
  18. data/lib/squeel/nodes/function.rb +1 -10
  19. data/lib/squeel/nodes/grouping.rb +35 -0
  20. data/lib/squeel/nodes/join.rb +3 -3
  21. data/lib/squeel/nodes/key_path.rb +26 -24
  22. data/lib/squeel/nodes/literal.rb +2 -17
  23. data/lib/squeel/nodes/nary.rb +1 -2
  24. data/lib/squeel/nodes/ordering.rb +21 -0
  25. data/lib/squeel/nodes/predicate.rb +1 -4
  26. data/lib/squeel/nodes/predicate_methods.rb +16 -0
  27. data/lib/squeel/nodes/stub.rb +11 -21
  28. data/lib/squeel/nodes/unary.rb +1 -4
  29. data/lib/squeel/version.rb +1 -1
  30. data/lib/squeel/visitors/attribute_visitor.rb +12 -13
  31. data/lib/squeel/visitors/predicate_visitor.rb +38 -15
  32. data/lib/squeel/visitors/symbol_visitor.rb +2 -6
  33. data/lib/squeel/visitors/visitor.rb +24 -1
  34. data/spec/squeel/adapters/active_record/relation_extensions_spec.rb +6 -1
  35. data/spec/squeel/dsl_spec.rb +9 -1
  36. data/spec/squeel/nodes/grouping_spec.rb +177 -0
  37. data/spec/squeel/nodes/join_spec.rb +4 -5
  38. data/spec/squeel/nodes/key_path_spec.rb +3 -5
  39. data/spec/squeel/nodes/operators_spec.rb +3 -3
  40. data/spec/squeel/nodes/stub_spec.rb +6 -7
  41. data/spec/squeel/visitors/attribute_visitor_spec.rb +6 -1
  42. data/spec/squeel/visitors/predicate_visitor_spec.rb +28 -0
  43. metadata +62 -22
  44. data/lib/squeel/predicate_methods.rb +0 -14
@@ -0,0 +1,177 @@
1
+ require 'spec_helper'
2
+
3
+ module Squeel
4
+ module Nodes
5
+ describe Grouping do
6
+ before do
7
+ @g = Grouping.new('foo')
8
+ end
9
+
10
+ Squeel::Constants::PREDICATES.each do |method_name|
11
+ it "creates #{method_name} predicates with no value" do
12
+ predicate = @g.send(method_name)
13
+ predicate.expr.should eq @g
14
+ predicate.method_name.should eq method_name
15
+ predicate.value?.should be_false
16
+ end
17
+
18
+ it "creates #{method_name} predicates with a value" do
19
+ predicate = @g.send(method_name, 'value')
20
+ predicate.expr.should eq @g
21
+ predicate.method_name.should eq method_name
22
+ predicate.value.should eq 'value'
23
+ end
24
+ end
25
+
26
+ Squeel::Constants::PREDICATE_ALIASES.each do |method_name, aliases|
27
+ aliases.each do |aliaz|
28
+ ['', '_any', '_all'].each do |suffix|
29
+ it "creates #{method_name.to_s + suffix} predicates with no value using the alias #{aliaz.to_s + suffix}" do
30
+ predicate = @g.send(aliaz.to_s + suffix)
31
+ predicate.expr.should eq @g
32
+ predicate.method_name.should eq "#{method_name}#{suffix}".to_sym
33
+ predicate.value?.should be_false
34
+ end
35
+
36
+ it "creates #{method_name.to_s + suffix} predicates with a value using the alias #{aliaz.to_s + suffix}" do
37
+ predicate = @g.send((aliaz.to_s + suffix), 'value')
38
+ predicate.expr.should eq @g
39
+ predicate.method_name.should eq "#{method_name}#{suffix}".to_sym
40
+ predicate.value.should eq 'value'
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ it 'creates ascending Order nodes with #asc' do
47
+ order = @g.asc
48
+ order.expr.should eq @g
49
+ order.should be_ascending
50
+ end
51
+
52
+ it 'creates descending Order nodes with #desc' do
53
+ order = @g.desc
54
+ order.expr.should eq @g
55
+ order.should be_descending
56
+ end
57
+
58
+ it 'creates eq predicates with ==' do
59
+ predicate = @g == 1
60
+ predicate.expr.should eq @g
61
+ predicate.method_name.should eq :eq
62
+ predicate.value.should eq 1
63
+ end
64
+
65
+ it 'creates not_eq predicates with ^' do
66
+ predicate = @g ^ 1
67
+ predicate.expr.should eq @g
68
+ predicate.method_name.should eq :not_eq
69
+ predicate.value.should eq 1
70
+ end
71
+
72
+ it 'creates not_eq predicates with !=' do
73
+ predicate = @g != 1
74
+ predicate.expr.should eq @g
75
+ predicate.method_name.should eq :not_eq
76
+ predicate.value.should eq 1
77
+ end if respond_to?('!=')
78
+
79
+ it 'creates in predicates with >>' do
80
+ predicate = @g >> [1,2,3]
81
+ predicate.expr.should eq @g
82
+ predicate.method_name.should eq :in
83
+ predicate.value.should eq [1,2,3]
84
+ end
85
+
86
+ it 'creates not_in predicates with <<' do
87
+ predicate = @g << [1,2,3]
88
+ predicate.expr.should eq @g
89
+ predicate.method_name.should eq :not_in
90
+ predicate.value.should eq [1,2,3]
91
+ end
92
+
93
+ it 'creates matches predicates with =~' do
94
+ predicate = @g =~ '%bob%'
95
+ predicate.expr.should eq @g
96
+ predicate.method_name.should eq :matches
97
+ predicate.value.should eq '%bob%'
98
+ end
99
+
100
+ it 'creates does_not_match predicates with !~' do
101
+ predicate = @g !~ '%bob%'
102
+ predicate.expr.should eq @g
103
+ predicate.method_name.should eq :does_not_match
104
+ predicate.value.should eq '%bob%'
105
+ end if respond_to?('!~')
106
+
107
+ it 'creates gt predicates with >' do
108
+ predicate = @g > 1
109
+ predicate.expr.should eq @g
110
+ predicate.method_name.should eq :gt
111
+ predicate.value.should eq 1
112
+ end
113
+
114
+ it 'creates gteq predicates with >=' do
115
+ predicate = @g >= 1
116
+ predicate.expr.should eq @g
117
+ predicate.method_name.should eq :gteq
118
+ predicate.value.should eq 1
119
+ end
120
+
121
+ it 'creates lt predicates with <' do
122
+ predicate = @g < 1
123
+ predicate.expr.should eq @g
124
+ predicate.method_name.should eq :lt
125
+ predicate.value.should eq 1
126
+ end
127
+
128
+ it 'creates lteq predicates with <=' do
129
+ predicate = @g <= 1
130
+ predicate.expr.should eq @g
131
+ predicate.method_name.should eq :lteq
132
+ predicate.value.should eq 1
133
+ end
134
+
135
+ it 'can be ORed with another node' do
136
+ right = Predicate.new :name, :eq, 'Bob'
137
+ combined = @g | right
138
+ combined.should be_a Nodes::Or
139
+ combined.left.should eq @g
140
+ combined.right.should eq right
141
+ end
142
+
143
+ it 'can be ANDed with another node' do
144
+ right = Predicate.new :name, :eq, 'Bob'
145
+ combined = @g & right
146
+ combined.should be_a Nodes::And
147
+ combined.children.should eq [@g, right]
148
+ end
149
+
150
+ it 'can be negated' do
151
+ negated = -@g
152
+ negated.should be_a Nodes::Not
153
+ negated.expr.should eq @g
154
+ end
155
+
156
+ describe '#as' do
157
+
158
+ it 'aliases the function' do
159
+ a = @g.as('the_alias')
160
+ a.should be_a As
161
+ a.expr.should eq @g
162
+ a.alias.should eq 'the_alias'
163
+ end
164
+
165
+ it 'casts the alias to a string' do
166
+ a = @g.as(:the_alias)
167
+ a.should be_a As
168
+ a.expr.should eq @g
169
+ a.alias.should eq 'the_alias'
170
+ end
171
+
172
+ end
173
+
174
+ end
175
+ end
176
+ end
177
+
@@ -26,22 +26,21 @@ module Squeel
26
26
  it 'creates a KeyPath when sent an unknown method' do
27
27
  keypath = @j.another
28
28
  keypath.should be_a KeyPath
29
- keypath.path_with_endpoint.should eq [@j, Stub.new(:another)]
29
+ keypath.path.should eq [@j, Stub.new(:another)]
30
30
  end
31
31
 
32
32
  it 'creates a KeyPath with a join endpoint when sent a method with a Class param' do
33
33
  keypath = @j.another(Person)
34
34
  keypath.should be_a KeyPath
35
- keypath.path_with_endpoint.should eq [@j, Join.new(:another, Arel::InnerJoin, Person)]
35
+ keypath.path.should eq [@j, Join.new(:another, Arel::InnerJoin, Person)]
36
36
  end
37
37
 
38
38
  it 'creates an absolute keypath with just an endpoint with ~' do
39
39
  node = ~@j
40
40
  node.should be_a KeyPath
41
- node.path.should eq []
42
- node.endpoint.should eq @j
41
+ node.path.should eq [@j]
43
42
  end
44
43
 
45
44
  end
46
45
  end
47
- end
46
+ end
@@ -4,19 +4,17 @@ module Squeel
4
4
  module Nodes
5
5
  describe KeyPath do
6
6
  before do
7
- @k = KeyPath.new(:first, :second)
7
+ @k = KeyPath.new([:first, :second])
8
8
  end
9
9
 
10
10
  it 'appends to its path when endpoint is a Stub' do
11
11
  @k.third.fourth.fifth
12
- @k.path.should eq [:first, :second, :third, :fourth]
13
- @k.endpoint.should eq Stub.new(:fifth)
12
+ @k.path.should eq [:first, :second, :third, :fourth, Stub.new(:fifth)]
14
13
  end
15
14
 
16
15
  it 'becomes absolute when prefixed with ~' do
17
16
  ~@k.third.fourth.fifth
18
- @k.path.should eq [:first, :second, :third, :fourth]
19
- @k.endpoint.should eq Stub.new(:fifth)
17
+ @k.path.should eq [:first, :second, :third, :fourth, Stub.new(:fifth)]
20
18
  @k.should be_absolute
21
19
  end
22
20
 
@@ -16,7 +16,7 @@ module Squeel
16
16
  end
17
17
 
18
18
  it "creates Operations with #{operator} operator from key paths" do
19
- left = KeyPath.new(:first, :second)
19
+ left = KeyPath.new([:first, :second])
20
20
  node = left.send(operator, 1)
21
21
  node.should be_an Operation
22
22
  node.left.should eq left
@@ -55,7 +55,7 @@ module Squeel
55
55
  end
56
56
 
57
57
  it "creates Operations with custom operator from key paths" do
58
- left = KeyPath.new(:first, :second)
58
+ left = KeyPath.new([:first, :second])
59
59
  node = left.op('||', 1)
60
60
  node.should be_an Operation
61
61
  node.left.should eq left
@@ -84,4 +84,4 @@ module Squeel
84
84
 
85
85
  end
86
86
  end
87
- end
87
+ end
@@ -30,38 +30,37 @@ module Squeel
30
30
  it 'creates a KeyPath when sent an unknown method' do
31
31
  keypath = @s.another
32
32
  keypath.should be_a KeyPath
33
- keypath.path_with_endpoint.should eq [@s, Stub.new(:another)]
33
+ keypath.path.should eq [@s, Stub.new(:another)]
34
34
  end
35
35
 
36
36
  it 'creates a KeyPath when sent #id' do
37
37
  keypath = @s.id
38
38
  keypath.should be_a KeyPath
39
- keypath.path_with_endpoint.should eq [@s, Stub.new(:id)]
39
+ keypath.path.should eq [@s, Stub.new(:id)]
40
40
  end
41
41
 
42
42
  it 'creates a KeyPath when sent #type' do
43
43
  keypath = @s.type
44
44
  keypath.should be_a KeyPath
45
- keypath.path_with_endpoint.should eq [@s, Stub.new(:type)]
45
+ keypath.path.should eq [@s, Stub.new(:type)]
46
46
  end
47
47
 
48
48
  it 'creates a KeyPath with a join endpoint when sent a method with a Class param' do
49
49
  keypath = @s.another(Person)
50
50
  keypath.should be_a KeyPath
51
- keypath.path_with_endpoint.should eq [@s, Join.new(:another, Arel::InnerJoin, Person)]
51
+ keypath.path.should eq [@s, Join.new(:another, Arel::InnerJoin, Person)]
52
52
  end
53
53
 
54
54
  it 'creates a KeyPath with a sifter endpoint when sent #sift' do
55
55
  keypath = @s.sift(:blah, 1)
56
56
  keypath.should be_a KeyPath
57
- keypath.path_with_endpoint.should eq [@s, Sifter.new(:blah, [1])]
57
+ keypath.path.should eq [@s, Sifter.new(:blah, [1])]
58
58
  end
59
59
 
60
60
  it 'creates an absolute keypath with just an endpoint with ~' do
61
61
  node = ~@s
62
62
  node.should be_a KeyPath
63
- node.path.should eq []
64
- node.endpoint.should eq @s
63
+ node.path.should eq [@s]
65
64
  end
66
65
 
67
66
  Squeel::Constants::PREDICATES.each do |method_name|
@@ -115,6 +115,11 @@ module Squeel
115
115
  as.to_sql.should match /"children_people"."name" AS other_name/
116
116
  end
117
117
 
118
+ it 'creates an ARel Grouping node for a Squeel Grouping node' do
119
+ grouping = @v.accept(dsl{_(id)})
120
+ grouping.should be_a Arel::Nodes::Grouping
121
+ end
122
+
118
123
  it 'creates an ARel Addition node for an Operation node with + as operator' do
119
124
  operation = @v.accept(dsl{id + 1})
120
125
  operation.should be_a Arel::Nodes::Addition
@@ -147,4 +152,4 @@ module Squeel
147
152
 
148
153
  end
149
154
  end
150
- end
155
+ end
@@ -55,6 +55,24 @@ module Squeel
55
55
  predicate.should eq '1=1'
56
56
  end
57
57
 
58
+ it 'visits Grouping nodes' do
59
+ predicate = @v.accept(dsl{_(`foo`)})
60
+ predicate.should be_a Arel::Nodes::Grouping
61
+ predicate.to_sql.should eq '(foo)'
62
+ end
63
+
64
+ it 'visits Grouping nodes on the attribute side of predicates' do
65
+ predicate = @v.accept(dsl{_(`foo`) == `foo`})
66
+ predicate.should be_a Arel::Nodes::Equality
67
+ predicate.to_sql.should eq '(foo) = foo'
68
+ end
69
+
70
+ it 'visits operations containing Grouping nodes' do
71
+ predicate = @v.accept(dsl{_(1) + _(1) == 2})
72
+ predicate.should be_a Arel::Nodes::Equality
73
+ predicate.to_sql.should eq '(1) + (1) = 2'
74
+ end
75
+
58
76
  it 'creates OR nodes against a Literal' do
59
77
  predicate = @v.accept(dsl{`blah` | `blah`})
60
78
  predicate.should be_a Arel::Nodes::Grouping
@@ -384,6 +402,16 @@ module Squeel
384
402
  function.to_sql.should match /newname/
385
403
  end
386
404
 
405
+ it 'accepts As nodes containing symbols' do
406
+ as = @v.accept(:name.as('other_name'))
407
+ as.to_sql.should match /"people"."name" AS other_name/
408
+ end
409
+
410
+ it 'accepts As nodes containing stubs' do
411
+ as = @v.accept(dsl{name.as(other_name)})
412
+ as.to_sql.should match /"people"."name" AS other_name/
413
+ end
414
+
387
415
  it 'creates an ARel Addition node for an Operation node with + as operator' do
388
416
  operation = @v.accept(dsl{id + 1})
389
417
  operation.should be_a Arel::Nodes::Addition
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: squeel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-02 00:00:00.000000000 -04:00
13
- default_executable:
12
+ date: 2012-05-30 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: activerecord
17
- requirement: &70156349477400 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
19
  - - ~>
@@ -22,10 +21,15 @@ dependencies:
22
21
  version: '3.0'
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *70156349477400
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.0'
26
30
  - !ruby/object:Gem::Dependency
27
31
  name: activesupport
28
- requirement: &70156349476680 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
29
33
  none: false
30
34
  requirements:
31
35
  - - ~>
@@ -33,10 +37,15 @@ dependencies:
33
37
  version: '3.0'
34
38
  type: :runtime
35
39
  prerelease: false
36
- version_requirements: *70156349476680
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.0'
37
46
  - !ruby/object:Gem::Dependency
38
47
  name: polyamorous
39
- requirement: &70156349475880 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
40
49
  none: false
41
50
  requirements:
42
51
  - - ~>
@@ -44,10 +53,15 @@ dependencies:
44
53
  version: 0.5.0
45
54
  type: :runtime
46
55
  prerelease: false
47
- version_requirements: *70156349475880
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.5.0
48
62
  - !ruby/object:Gem::Dependency
49
63
  name: rspec
50
- requirement: &70156349475260 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
51
65
  none: false
52
66
  requirements:
53
67
  - - ~>
@@ -55,10 +69,15 @@ dependencies:
55
69
  version: 2.6.0
56
70
  type: :development
57
71
  prerelease: false
58
- version_requirements: *70156349475260
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 2.6.0
59
78
  - !ruby/object:Gem::Dependency
60
79
  name: machinist
61
- requirement: &70156349474620 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
62
81
  none: false
63
82
  requirements:
64
83
  - - ~>
@@ -66,10 +85,15 @@ dependencies:
66
85
  version: 1.0.6
67
86
  type: :development
68
87
  prerelease: false
69
- version_requirements: *70156349474620
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.0.6
70
94
  - !ruby/object:Gem::Dependency
71
95
  name: faker
72
- requirement: &70156349473320 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
73
97
  none: false
74
98
  requirements:
75
99
  - - ~>
@@ -77,10 +101,15 @@ dependencies:
77
101
  version: 0.9.5
78
102
  type: :development
79
103
  prerelease: false
80
- version_requirements: *70156349473320
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.9.5
81
110
  - !ruby/object:Gem::Dependency
82
111
  name: sqlite3
83
- requirement: &70156349488720 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
84
113
  none: false
85
114
  requirements:
86
115
  - - ~>
@@ -88,7 +117,12 @@ dependencies:
88
117
  version: 1.3.3
89
118
  type: :development
90
119
  prerelease: false
91
- version_requirements: *70156349488720
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 1.3.3
92
126
  description: ! "\n Squeel unlocks the power of ARel in your Rails 3 application
93
127
  with\n a handy block-based syntax. You can write subqueries, access named\n
94
128
  \ functions provided by your RDBMS, and more, all without writing\n SQL
@@ -102,6 +136,7 @@ files:
102
136
  - .gitignore
103
137
  - .travis.yml
104
138
  - .yardopts
139
+ - CHANGELOG.md
105
140
  - Gemfile
106
141
  - LICENSE
107
142
  - README.md
@@ -114,10 +149,12 @@ files:
114
149
  - lib/squeel/adapters/active_record/3.0/compat.rb
115
150
  - lib/squeel/adapters/active_record/3.0/context.rb
116
151
  - lib/squeel/adapters/active_record/3.0/relation_extensions.rb
152
+ - lib/squeel/adapters/active_record/3.1/compat.rb
117
153
  - lib/squeel/adapters/active_record/3.1/context.rb
118
154
  - lib/squeel/adapters/active_record/3.1/preloader_extensions.rb
119
155
  - lib/squeel/adapters/active_record/3.1/relation_extensions.rb
120
156
  - lib/squeel/adapters/active_record/base_extensions.rb
157
+ - lib/squeel/adapters/active_record/compat.rb
121
158
  - lib/squeel/adapters/active_record/context.rb
122
159
  - lib/squeel/adapters/active_record/join_dependency_extensions.rb
123
160
  - lib/squeel/adapters/active_record/preloader_extensions.rb
@@ -134,6 +171,7 @@ files:
134
171
  - lib/squeel/nodes/as.rb
135
172
  - lib/squeel/nodes/binary.rb
136
173
  - lib/squeel/nodes/function.rb
174
+ - lib/squeel/nodes/grouping.rb
137
175
  - lib/squeel/nodes/join.rb
138
176
  - lib/squeel/nodes/key_path.rb
139
177
  - lib/squeel/nodes/literal.rb
@@ -143,12 +181,13 @@ files:
143
181
  - lib/squeel/nodes/operators.rb
144
182
  - lib/squeel/nodes/or.rb
145
183
  - lib/squeel/nodes/order.rb
184
+ - lib/squeel/nodes/ordering.rb
146
185
  - lib/squeel/nodes/predicate.rb
186
+ - lib/squeel/nodes/predicate_methods.rb
147
187
  - lib/squeel/nodes/predicate_operators.rb
148
188
  - lib/squeel/nodes/sifter.rb
149
189
  - lib/squeel/nodes/stub.rb
150
190
  - lib/squeel/nodes/unary.rb
151
- - lib/squeel/predicate_methods.rb
152
191
  - lib/squeel/version.rb
153
192
  - lib/squeel/visitors.rb
154
193
  - lib/squeel/visitors/attribute_visitor.rb
@@ -171,6 +210,7 @@ files:
171
210
  - spec/squeel/core_ext/symbol_spec.rb
172
211
  - spec/squeel/dsl_spec.rb
173
212
  - spec/squeel/nodes/function_spec.rb
213
+ - spec/squeel/nodes/grouping_spec.rb
174
214
  - spec/squeel/nodes/join_spec.rb
175
215
  - spec/squeel/nodes/key_path_spec.rb
176
216
  - spec/squeel/nodes/literal_spec.rb
@@ -186,7 +226,6 @@ files:
186
226
  - spec/squeel/visitors/symbol_visitor_spec.rb
187
227
  - spec/support/schema.rb
188
228
  - squeel.gemspec
189
- has_rdoc: true
190
229
  homepage: http://erniemiller.org/projects/squeel
191
230
  licenses: []
192
231
  post_install_message:
@@ -201,7 +240,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
240
  version: '0'
202
241
  segments:
203
242
  - 0
204
- hash: 3396698856870050214
243
+ hash: -3844391929361765236
205
244
  required_rubygems_version: !ruby/object:Gem::Requirement
206
245
  none: false
207
246
  requirements:
@@ -210,10 +249,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
210
249
  version: '0'
211
250
  segments:
212
251
  - 0
213
- hash: 3396698856870050214
252
+ hash: -3844391929361765236
214
253
  requirements: []
215
254
  rubyforge_project: squeel
216
- rubygems_version: 1.3.9.4
255
+ rubygems_version: 1.8.24
217
256
  signing_key:
218
257
  specification_version: 3
219
258
  summary: ActiveRecord 3, improved.
@@ -234,6 +273,7 @@ test_files:
234
273
  - spec/squeel/core_ext/symbol_spec.rb
235
274
  - spec/squeel/dsl_spec.rb
236
275
  - spec/squeel/nodes/function_spec.rb
276
+ - spec/squeel/nodes/grouping_spec.rb
237
277
  - spec/squeel/nodes/join_spec.rb
238
278
  - spec/squeel/nodes/key_path_spec.rb
239
279
  - spec/squeel/nodes/literal_spec.rb