squeel 1.0.1 → 1.0.2
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/CHANGELOG.md +20 -0
- data/README.md +1 -1
- data/lib/squeel.rb +1 -2
- data/lib/squeel/adapters/active_record.rb +3 -1
- data/lib/squeel/adapters/active_record/3.0/compat.rb +5 -1
- data/lib/squeel/adapters/active_record/3.0/context.rb +2 -2
- data/lib/squeel/adapters/active_record/3.1/compat.rb +22 -0
- data/lib/squeel/adapters/active_record/3.1/context.rb +2 -2
- data/lib/squeel/adapters/active_record/compat.rb +22 -0
- data/lib/squeel/adapters/active_record/join_dependency_extensions.rb +2 -2
- data/lib/squeel/configuration.rb +2 -2
- data/lib/squeel/core_ext/symbol.rb +3 -13
- data/lib/squeel/dsl.rb +10 -1
- data/lib/squeel/nodes.rb +9 -1
- data/lib/squeel/nodes/aliasing.rb +2 -2
- data/lib/squeel/nodes/as.rb +1 -1
- data/lib/squeel/nodes/binary.rb +1 -4
- data/lib/squeel/nodes/function.rb +1 -10
- data/lib/squeel/nodes/grouping.rb +35 -0
- data/lib/squeel/nodes/join.rb +3 -3
- data/lib/squeel/nodes/key_path.rb +26 -24
- data/lib/squeel/nodes/literal.rb +2 -17
- data/lib/squeel/nodes/nary.rb +1 -2
- data/lib/squeel/nodes/ordering.rb +21 -0
- data/lib/squeel/nodes/predicate.rb +1 -4
- data/lib/squeel/nodes/predicate_methods.rb +16 -0
- data/lib/squeel/nodes/stub.rb +11 -21
- data/lib/squeel/nodes/unary.rb +1 -4
- data/lib/squeel/version.rb +1 -1
- data/lib/squeel/visitors/attribute_visitor.rb +12 -13
- data/lib/squeel/visitors/predicate_visitor.rb +38 -15
- data/lib/squeel/visitors/symbol_visitor.rb +2 -6
- data/lib/squeel/visitors/visitor.rb +24 -1
- data/spec/squeel/adapters/active_record/relation_extensions_spec.rb +6 -1
- data/spec/squeel/dsl_spec.rb +9 -1
- data/spec/squeel/nodes/grouping_spec.rb +177 -0
- data/spec/squeel/nodes/join_spec.rb +4 -5
- data/spec/squeel/nodes/key_path_spec.rb +3 -5
- data/spec/squeel/nodes/operators_spec.rb +3 -3
- data/spec/squeel/nodes/stub_spec.rb +6 -7
- data/spec/squeel/visitors/attribute_visitor_spec.rb +6 -1
- data/spec/squeel/visitors/predicate_visitor_spec.rb +28 -0
- metadata +62 -22
- 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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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-
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
252
|
+
hash: -3844391929361765236
|
214
253
|
requirements: []
|
215
254
|
rubyforge_project: squeel
|
216
|
-
rubygems_version: 1.
|
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
|