searchgasm 1.3.5 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +11 -0
- data/Manifest +12 -3
- data/README.rdoc +11 -0
- data/TODO.rdoc +4 -1
- data/lib/searchgasm/active_record/associations.rb +25 -14
- data/lib/searchgasm/active_record/base.rb +49 -0
- data/lib/searchgasm/active_record/connection_adapters/mysql_adapter.rb +20 -0
- data/lib/searchgasm/active_record/connection_adapters/postgresql_adapter.rb +20 -0
- data/lib/searchgasm/active_record/connection_adapters/sqlite_adapter.rb +21 -0
- data/lib/searchgasm/condition/base.rb +31 -10
- data/lib/searchgasm/condition/inclusive_descendant_of.rb +1 -1
- data/lib/searchgasm/condition/not_begin_with.rb +1 -1
- data/lib/searchgasm/condition/not_blank.rb +17 -0
- data/lib/searchgasm/condition/not_end_with.rb +1 -1
- data/lib/searchgasm/condition/not_equal.rb +1 -1
- data/lib/searchgasm/condition/not_have_keywords.rb +1 -1
- data/lib/searchgasm/condition/not_like.rb +1 -1
- data/lib/searchgasm/condition/not_nil.rb +17 -0
- data/lib/searchgasm/condition/sibling_of.rb +1 -1
- data/lib/searchgasm/conditions/base.rb +9 -7
- data/lib/searchgasm/conditions/protection.rb +1 -1
- data/lib/searchgasm/helpers/control_types/select.rb +1 -1
- data/lib/searchgasm/helpers/utilities.rb +1 -1
- data/lib/searchgasm/modifiers/lower.rb +15 -0
- data/lib/searchgasm/modifiers/ltrim.rb +15 -0
- data/lib/searchgasm/modifiers/rtrim.rb +15 -0
- data/lib/searchgasm/modifiers/trim.rb +15 -0
- data/lib/searchgasm/modifiers/upper.rb +15 -0
- data/lib/searchgasm/search/base.rb +44 -40
- data/lib/searchgasm/search/conditions.rb +0 -16
- data/lib/searchgasm/search/ordering.rb +0 -8
- data/lib/searchgasm/search/searching.rb +0 -6
- data/lib/searchgasm/version.rb +2 -2
- data/lib/searchgasm.rb +2 -2
- data/searchgasm.gemspec +22 -6
- data/test/fixtures/cats.yml +3 -0
- data/test/fixtures/dogs.yml +3 -0
- data/test/test_active_record_base.rb +4 -0
- data/test/test_condition_base.rb +4 -4
- data/test/test_condition_types.rb +27 -27
- data/test/test_conditions_base.rb +22 -1
- data/test/test_helper.rb +24 -5
- data/test/test_search_base.rb +12 -19
- data/test/test_search_conditions.rb +1 -11
- data/test/test_search_ordering.rb +3 -4
- data/{test/libs → test_libs}/acts_as_tree.rb +0 -0
- data/{test/libs → test_libs}/ordered_hash.rb +0 -0
- data/{test/libs → test_libs}/rexml_fix.rb +0 -0
- metadata +21 -5
data/test/test_search_base.rb
CHANGED
@@ -30,7 +30,7 @@ class TestSearchBase < Test::Unit::TestCase
|
|
30
30
|
def test_setting_first_level_options
|
31
31
|
search = Account.new_search!(:include => :users, :joins => :users, :offset => 5, :limit => 20, :order => "name ASC", :select => "name", :readonly => true, :group => "name", :from => "accounts", :lock => true)
|
32
32
|
assert_equal :users, search.include
|
33
|
-
assert_equal
|
33
|
+
assert_equal :users, search.joins
|
34
34
|
assert_equal 5, search.offset
|
35
35
|
assert_equal 20, search.limit
|
36
36
|
assert_equal "name ASC", search.order
|
@@ -98,7 +98,7 @@ class TestSearchBase < Test::Unit::TestCase
|
|
98
98
|
search.lock = true
|
99
99
|
assert_equal search.lock, true
|
100
100
|
end
|
101
|
-
|
101
|
+
=begin
|
102
102
|
def test_auto_joins
|
103
103
|
search = Account.new_search
|
104
104
|
assert_equal nil, search.auto_joins
|
@@ -114,7 +114,7 @@ class TestSearchBase < Test::Unit::TestCase
|
|
114
114
|
search.conditions.reset_users!
|
115
115
|
assert_equal nil, search.auto_joins
|
116
116
|
end
|
117
|
-
|
117
|
+
=end
|
118
118
|
def test_limit
|
119
119
|
search = Account.new_search
|
120
120
|
search.limit = 10
|
@@ -141,7 +141,7 @@ class TestSearchBase < Test::Unit::TestCase
|
|
141
141
|
search.conditions.users.id_greater_than = 2
|
142
142
|
search.page = 3
|
143
143
|
search.readonly = true
|
144
|
-
assert_equal({:joins =>
|
144
|
+
assert_equal({:joins => :users, :offset => 4, :readonly => true, :conditions => ["(\"accounts\".\"name\" LIKE ?) AND (\"users\".\"id\" > ?)", "%Binary%", 2], :limit => 2 }, search.sanitize)
|
145
145
|
end
|
146
146
|
|
147
147
|
def test_scope
|
@@ -186,7 +186,10 @@ class TestSearchBase < Test::Unit::TestCase
|
|
186
186
|
search.select = "id, name"
|
187
187
|
assert_equal Account.all, search.all
|
188
188
|
|
189
|
-
|
189
|
+
search = Account.scope1.new_search!(:conditions => {:users => {:first_name_starts_with => "Ben"}})
|
190
|
+
assert_equal [Account.find(1)], search.all
|
191
|
+
search2 = search.dup
|
192
|
+
assert_equal [Account.find(1)], search2.all
|
190
193
|
end
|
191
194
|
|
192
195
|
def test_calculations
|
@@ -213,22 +216,12 @@ class TestSearchBase < Test::Unit::TestCase
|
|
213
216
|
assert_equal 1, search.count
|
214
217
|
end
|
215
218
|
|
216
|
-
def test_method_creation_in_scope
|
217
|
-
# test ot make sure methods are not created across the board for all models
|
218
|
-
end
|
219
|
-
|
220
|
-
=begin
|
221
|
-
# AR desont handle this problem either
|
222
|
-
def test_specifying_includes
|
223
|
-
search = Account.new_search
|
224
|
-
search.include = :users
|
225
|
-
search.conditions.users.first_name_like = "Ben"
|
226
|
-
assert_nothing_raised { search.all }
|
227
|
-
end
|
228
|
-
=end
|
229
|
-
|
230
219
|
def test_inspect
|
231
220
|
search = Account.new_search
|
232
221
|
assert_nothing_raised { search.inspect }
|
233
222
|
end
|
223
|
+
|
224
|
+
def test_sti
|
225
|
+
|
226
|
+
end
|
234
227
|
end
|
@@ -12,17 +12,7 @@ class TestSearchConditions < Test::Unit::TestCase
|
|
12
12
|
search = Account.new_search(:conditions => {:name_like => "Ben"})
|
13
13
|
assert_equal({:name_like => "Ben"}, search.conditions.conditions)
|
14
14
|
end
|
15
|
-
|
16
|
-
def test_auto_joins
|
17
|
-
search = Account.new_search
|
18
|
-
search.conditions = {:name_like => "Binary"}
|
19
|
-
assert_equal nil, search.auto_joins
|
20
|
-
search.conditions.users.first_name_like = "Ben"
|
21
|
-
assert_equal :users, search.auto_joins
|
22
|
-
search.conditions.reset_users!
|
23
|
-
assert_equal nil, search.auto_joins
|
24
|
-
end
|
25
|
-
|
15
|
+
|
26
16
|
def test_sanitize
|
27
17
|
# This is tested in test_search_base
|
28
18
|
end
|
@@ -99,7 +99,7 @@ class TestSearchOrdering < Test::Unit::TestCase
|
|
99
99
|
|
100
100
|
assert_raise(ArgumentError) { search.order_as = "awesome" }
|
101
101
|
end
|
102
|
-
|
102
|
+
|
103
103
|
def test_order_by_auto_joins
|
104
104
|
search = Account.new_search
|
105
105
|
assert_equal nil, search.order_by_auto_joins
|
@@ -113,9 +113,8 @@ class TestSearchOrdering < Test::Unit::TestCase
|
|
113
113
|
assert_equal [:users, :orders, {:users => :user_groups}], search.order_by_auto_joins
|
114
114
|
search.priority_order_by = {:users => {:orders => :total}}
|
115
115
|
assert_equal({:users => :orders}, search.priority_order_by_auto_joins)
|
116
|
-
assert_equal [:users, :orders, {:users => :user_groups}, {:users => :orders}], search.auto_joins
|
117
116
|
end
|
118
|
-
|
117
|
+
|
119
118
|
def test_priority_order_by
|
120
119
|
search = Account.new_search
|
121
120
|
assert_equal nil, search.priority_order
|
@@ -159,7 +158,7 @@ class TestSearchOrdering < Test::Unit::TestCase
|
|
159
158
|
end
|
160
159
|
|
161
160
|
def test_ordering_includes_blank
|
162
|
-
search = User.new_search
|
161
|
+
search = User.new_search!
|
163
162
|
search.order_by = {:account => :name}
|
164
163
|
assert_equal 4, search.count
|
165
164
|
end
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: searchgasm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Johnson of Binary Logic
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-10-
|
12
|
+
date: 2008-10-15 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -71,10 +71,12 @@ extra_rdoc_files:
|
|
71
71
|
- lib/searchgasm/condition/like.rb
|
72
72
|
- lib/searchgasm/condition/nil.rb
|
73
73
|
- lib/searchgasm/condition/not_begin_with.rb
|
74
|
+
- lib/searchgasm/condition/not_blank.rb
|
74
75
|
- lib/searchgasm/condition/not_end_with.rb
|
75
76
|
- lib/searchgasm/condition/not_equal.rb
|
76
77
|
- lib/searchgasm/condition/not_have_keywords.rb
|
77
78
|
- lib/searchgasm/condition/not_like.rb
|
79
|
+
- lib/searchgasm/condition/not_nil.rb
|
78
80
|
- lib/searchgasm/condition/sibling_of.rb
|
79
81
|
- lib/searchgasm/condition/tree.rb
|
80
82
|
- lib/searchgasm/conditions/base.rb
|
@@ -109,6 +111,8 @@ extra_rdoc_files:
|
|
109
111
|
- lib/searchgasm/modifiers/log.rb
|
110
112
|
- lib/searchgasm/modifiers/log10.rb
|
111
113
|
- lib/searchgasm/modifiers/log2.rb
|
114
|
+
- lib/searchgasm/modifiers/lower.rb
|
115
|
+
- lib/searchgasm/modifiers/ltrim.rb
|
112
116
|
- lib/searchgasm/modifiers/md5.rb
|
113
117
|
- lib/searchgasm/modifiers/microseconds.rb
|
114
118
|
- lib/searchgasm/modifiers/milliseconds.rb
|
@@ -117,11 +121,14 @@ extra_rdoc_files:
|
|
117
121
|
- lib/searchgasm/modifiers/octal.rb
|
118
122
|
- lib/searchgasm/modifiers/radians.rb
|
119
123
|
- lib/searchgasm/modifiers/round.rb
|
124
|
+
- lib/searchgasm/modifiers/rtrim.rb
|
120
125
|
- lib/searchgasm/modifiers/second.rb
|
121
126
|
- lib/searchgasm/modifiers/sign.rb
|
122
127
|
- lib/searchgasm/modifiers/sin.rb
|
123
128
|
- lib/searchgasm/modifiers/square_root.rb
|
124
129
|
- lib/searchgasm/modifiers/tan.rb
|
130
|
+
- lib/searchgasm/modifiers/trim.rb
|
131
|
+
- lib/searchgasm/modifiers/upper.rb
|
125
132
|
- lib/searchgasm/modifiers/week.rb
|
126
133
|
- lib/searchgasm/modifiers/year.rb
|
127
134
|
- lib/searchgasm/search/base.rb
|
@@ -161,10 +168,12 @@ files:
|
|
161
168
|
- lib/searchgasm/condition/like.rb
|
162
169
|
- lib/searchgasm/condition/nil.rb
|
163
170
|
- lib/searchgasm/condition/not_begin_with.rb
|
171
|
+
- lib/searchgasm/condition/not_blank.rb
|
164
172
|
- lib/searchgasm/condition/not_end_with.rb
|
165
173
|
- lib/searchgasm/condition/not_equal.rb
|
166
174
|
- lib/searchgasm/condition/not_have_keywords.rb
|
167
175
|
- lib/searchgasm/condition/not_like.rb
|
176
|
+
- lib/searchgasm/condition/not_nil.rb
|
168
177
|
- lib/searchgasm/condition/sibling_of.rb
|
169
178
|
- lib/searchgasm/condition/tree.rb
|
170
179
|
- lib/searchgasm/conditions/base.rb
|
@@ -199,6 +208,8 @@ files:
|
|
199
208
|
- lib/searchgasm/modifiers/log.rb
|
200
209
|
- lib/searchgasm/modifiers/log10.rb
|
201
210
|
- lib/searchgasm/modifiers/log2.rb
|
211
|
+
- lib/searchgasm/modifiers/lower.rb
|
212
|
+
- lib/searchgasm/modifiers/ltrim.rb
|
202
213
|
- lib/searchgasm/modifiers/md5.rb
|
203
214
|
- lib/searchgasm/modifiers/microseconds.rb
|
204
215
|
- lib/searchgasm/modifiers/milliseconds.rb
|
@@ -207,11 +218,14 @@ files:
|
|
207
218
|
- lib/searchgasm/modifiers/octal.rb
|
208
219
|
- lib/searchgasm/modifiers/radians.rb
|
209
220
|
- lib/searchgasm/modifiers/round.rb
|
221
|
+
- lib/searchgasm/modifiers/rtrim.rb
|
210
222
|
- lib/searchgasm/modifiers/second.rb
|
211
223
|
- lib/searchgasm/modifiers/sign.rb
|
212
224
|
- lib/searchgasm/modifiers/sin.rb
|
213
225
|
- lib/searchgasm/modifiers/square_root.rb
|
214
226
|
- lib/searchgasm/modifiers/tan.rb
|
227
|
+
- lib/searchgasm/modifiers/trim.rb
|
228
|
+
- lib/searchgasm/modifiers/upper.rb
|
215
229
|
- lib/searchgasm/modifiers/week.rb
|
216
230
|
- lib/searchgasm/modifiers/year.rb
|
217
231
|
- lib/searchgasm/search/base.rb
|
@@ -229,12 +243,11 @@ files:
|
|
229
243
|
- Rakefile
|
230
244
|
- README.rdoc
|
231
245
|
- test/fixtures/accounts.yml
|
246
|
+
- test/fixtures/cats.yml
|
247
|
+
- test/fixtures/dogs.yml
|
232
248
|
- test/fixtures/orders.yml
|
233
249
|
- test/fixtures/user_groups.yml
|
234
250
|
- test/fixtures/users.yml
|
235
|
-
- test/libs/acts_as_tree.rb
|
236
|
-
- test/libs/ordered_hash.rb
|
237
|
-
- test/libs/rexml_fix.rb
|
238
251
|
- test/test_active_record_associations.rb
|
239
252
|
- test/test_active_record_base.rb
|
240
253
|
- test/test_condition_base.rb
|
@@ -248,6 +261,9 @@ files:
|
|
248
261
|
- test/test_search_ordering.rb
|
249
262
|
- test/test_search_pagination.rb
|
250
263
|
- test/test_search_protection.rb
|
264
|
+
- test_libs/acts_as_tree.rb
|
265
|
+
- test_libs/ordered_hash.rb
|
266
|
+
- test_libs/rexml_fix.rb
|
251
267
|
- TODO.rdoc
|
252
268
|
- searchgasm.gemspec
|
253
269
|
has_rdoc: true
|