searchgasm 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/searchgasm.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  require "active_record"
2
2
  require "active_support"
3
3
 
4
+ # Core Ext
5
+ require "searchgasm/core_ext/hash"
6
+
4
7
  # Utilties
5
8
  require "searchgasm/version"
6
9
  require "searchgasm/config"
data/searchgasm.gemspec CHANGED
@@ -1,18 +1,18 @@
1
1
 
2
- # Gem::Specification for Searchgasm-1.0.0
2
+ # Gem::Specification for Searchgasm-1.0.1
3
3
  # Originally generated by Echoe
4
4
 
5
5
  --- !ruby/object:Gem::Specification
6
6
  name: searchgasm
7
7
  version: !ruby/object:Gem::Version
8
- version: 1.0.0
8
+ version: 1.0.1
9
9
  platform: ruby
10
10
  authors:
11
11
  - Ben Johnson of Binary Logic
12
12
  autorequire:
13
13
  bindir: bin
14
14
 
15
- date: 2008-09-09 00:00:00 -04:00
15
+ date: 2008-09-11 00:00:00 -04:00
16
16
  default_executable:
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
@@ -52,9 +52,10 @@ executables: []
52
52
  extensions: []
53
53
 
54
54
  extra_rdoc_files:
55
- - CHANGELOG
55
+ - CHANGELOG.rdoc
56
56
  - lib/searchgasm/active_record/associations.rb
57
57
  - lib/searchgasm/active_record/base.rb
58
+ - lib/searchgasm/active_record.rb
58
59
  - lib/searchgasm/condition/base.rb
59
60
  - lib/searchgasm/condition/begins_with.rb
60
61
  - lib/searchgasm/condition/child_of.rb
@@ -74,6 +75,7 @@ extra_rdoc_files:
74
75
  - lib/searchgasm/conditions/base.rb
75
76
  - lib/searchgasm/conditions/protection.rb
76
77
  - lib/searchgasm/config.rb
78
+ - lib/searchgasm/core_ext/hash.rb
77
79
  - lib/searchgasm/helpers/control_types/link.rb
78
80
  - lib/searchgasm/helpers/control_types/links.rb
79
81
  - lib/searchgasm/helpers/control_types/remote_link.rb
@@ -94,11 +96,12 @@ extra_rdoc_files:
94
96
  - lib/searchgasm.rb
95
97
  - README.rdoc
96
98
  files:
97
- - CHANGELOG
99
+ - CHANGELOG.rdoc
98
100
  - examples/README.rdoc
99
101
  - init.rb
100
102
  - lib/searchgasm/active_record/associations.rb
101
103
  - lib/searchgasm/active_record/base.rb
104
+ - lib/searchgasm/active_record.rb
102
105
  - lib/searchgasm/condition/base.rb
103
106
  - lib/searchgasm/condition/begins_with.rb
104
107
  - lib/searchgasm/condition/child_of.rb
@@ -118,6 +121,7 @@ files:
118
121
  - lib/searchgasm/conditions/base.rb
119
122
  - lib/searchgasm/conditions/protection.rb
120
123
  - lib/searchgasm/config.rb
124
+ - lib/searchgasm/core_ext/hash.rb
121
125
  - lib/searchgasm/helpers/control_types/link.rb
122
126
  - lib/searchgasm/helpers/control_types/links.rb
123
127
  - lib/searchgasm/helpers/control_types/remote_link.rb
@@ -58,4 +58,8 @@ class TestConditionBase < Test::Unit::TestCase
58
58
  def test_value
59
59
 
60
60
  end
61
+
62
+ def test_method_creation_in_scope
63
+ # test ot make sure methods are not created across the board for all models
64
+ end
61
65
  end
@@ -22,7 +22,7 @@ class TestConditionsBase < Test::Unit::TestCase
22
22
  end
23
23
 
24
24
  def test_initialize
25
- conditions = Searchgasm::Conditions::Base.new(Account, :name_contains => "Binary")
25
+ conditions = Account.new_conditions(:name_contains => "Binary")
26
26
  assert_equal conditions.klass, Account
27
27
  assert_equal conditions.name_contains, "Binary"
28
28
  end
@@ -34,7 +34,7 @@ class TestConditionsBase < Test::Unit::TestCase
34
34
  def test_setting_conditions
35
35
  [Account, User, Order].each do |klass|
36
36
  conditions = klass.new_conditions
37
- conditions.send(:condition_names).each do |condition_name|
37
+ conditions.class.condition_names.each do |condition_name|
38
38
  conditions.send("#{condition_name}=", 1)
39
39
  assert_equal 1, conditions.send(condition_name)
40
40
  end
@@ -43,7 +43,7 @@ class TestConditionsBase < Test::Unit::TestCase
43
43
 
44
44
  def test_accessible_protected_conditions
45
45
  #Account.conditions_accessible << :name_contains
46
- #conditions = Searchgasm::Conditions::Base.new(Account)
46
+ #conditions = Account.new_conditions
47
47
  #conditions.conditions = {:created_after => Time.now, :name_contains => "Binary"}
48
48
  #assert({:name_contains => "Binary"}, conditions.value)
49
49
  end
@@ -56,7 +56,7 @@ class TestConditionsBase < Test::Unit::TestCase
56
56
  end
57
57
 
58
58
  def test_setting_associations
59
- conditions = Searchgasm::Conditions::Base.new(Account, :users => {:first_name_like => "Ben"})
59
+ conditions = Account.new_conditions(:users => {:first_name_like => "Ben"})
60
60
  assert_equal conditions.users.first_name_like, "Ben"
61
61
 
62
62
  conditions.users.last_name_begins_with = "Ben"
@@ -64,7 +64,7 @@ class TestConditionsBase < Test::Unit::TestCase
64
64
  end
65
65
 
66
66
  def test_includes
67
- conditions = Searchgasm::Conditions::Base.new(Account)
67
+ conditions = Account.new_conditions
68
68
  assert_equal conditions.includes, nil
69
69
 
70
70
  conditions.name_like = "Binary"
@@ -78,7 +78,7 @@ class TestConditionsBase < Test::Unit::TestCase
78
78
  end
79
79
 
80
80
  def test_objects
81
- conditions = Searchgasm::Conditions::Base.new(Account)
81
+ conditions = Account.new_conditions
82
82
  assert_equal conditions.send(:objects), []
83
83
 
84
84
  conditions.name_contains = "Binary"
@@ -89,7 +89,7 @@ class TestConditionsBase < Test::Unit::TestCase
89
89
  end
90
90
 
91
91
  def test_reset
92
- conditions = Searchgasm::Conditions::Base.new(Account)
92
+ conditions = Account.new_conditions
93
93
 
94
94
  conditions.name_contains = "Binary"
95
95
  assert_equal 1, conditions.send(:objects).size
@@ -115,7 +115,7 @@ class TestConditionsBase < Test::Unit::TestCase
115
115
  end
116
116
 
117
117
  def test_sanitize
118
- conditions = Searchgasm::Conditions::Base.new(Account)
118
+ conditions = Account.new_conditions
119
119
  conditions.name_contains = "Binary"
120
120
  conditions.id_gt = 5
121
121
  now = Time.now
@@ -130,7 +130,7 @@ class TestConditionsBase < Test::Unit::TestCase
130
130
  end
131
131
 
132
132
  def test_conditions
133
- conditions = Searchgasm::Conditions::Base.new(Account)
133
+ conditions = Account.new_conditions!
134
134
  now = Time.now
135
135
  v = {:name_contains => "Binary", :created_at_greater_than => now}
136
136
  conditions.conditions = v
@@ -151,7 +151,7 @@ class TestConditionsBase < Test::Unit::TestCase
151
151
  end
152
152
 
153
153
  def test_searching
154
- conditions = Searchgasm::Conditions::Base.new(Account)
154
+ conditions = Account.new_conditions
155
155
  conditions.name_contains = "Binary"
156
156
  assert_equal Account.find(1, 3), conditions.all
157
157
  assert_equal Account.find(1, 3), conditions.find(:all)
@@ -21,8 +21,8 @@ class TestSearchBase < Test::Unit::TestCase
21
21
  end
22
22
 
23
23
  def test_initialize
24
- assert_nothing_raised { Searchgasm::Search::Base.new(Account) }
25
- search = Searchgasm::Search::Base.new(Account, :conditions => {:name_like => "binary"}, :page => 2, :limit => 10, :readonly => true)
24
+ assert_nothing_raised { Account.new_search }
25
+ search = Account.new_search!(:conditions => {:name_like => "binary"}, :page => 2, :limit => 10, :readonly => true)
26
26
  assert_equal Account, search.klass
27
27
  assert_equal "binary", search.conditions.name_like
28
28
  assert_equal 2, search.page
@@ -31,7 +31,7 @@ class TestSearchBase < Test::Unit::TestCase
31
31
  end
32
32
 
33
33
  def test_setting_first_level_options
34
- search = Searchgasm::Search::Base.new(Account)
34
+ search = Account.new_search
35
35
 
36
36
  search.include = :users
37
37
  assert_equal :users, search.include
@@ -90,7 +90,7 @@ class TestSearchBase < Test::Unit::TestCase
90
90
  end
91
91
 
92
92
  def test_include
93
- search = Searchgasm::Search::Base.new(Account)
93
+ search = Account.new_search
94
94
  assert_equal nil, search.include
95
95
  search.conditions.name_contains = "Binary"
96
96
  assert_equal nil, search.include
@@ -106,7 +106,7 @@ class TestSearchBase < Test::Unit::TestCase
106
106
  end
107
107
 
108
108
  def test_limit
109
- search = Searchgasm::Search::Base.new(Account)
109
+ search = Account.new_search
110
110
  search.limit = 10
111
111
  assert_equal 10, search.limit
112
112
  search.page = 2
@@ -125,7 +125,7 @@ class TestSearchBase < Test::Unit::TestCase
125
125
  end
126
126
 
127
127
  def test_sanitize
128
- search = Searchgasm::Search::Base.new(Account)
128
+ search = Account.new_search
129
129
  search.per_page = 2
130
130
  search.conditions.name_like = "Binary"
131
131
  search.conditions.users.id_greater_than = 2
@@ -136,7 +136,7 @@ class TestSearchBase < Test::Unit::TestCase
136
136
  end
137
137
 
138
138
  def test_scope
139
- search = Searchgasm::Search::Base.new(Account)
139
+ search = Account.new_search!
140
140
  search.conditions = "some scope"
141
141
  assert_equal "some scope", search.conditions.scope
142
142
  search.conditions = nil
@@ -148,7 +148,7 @@ class TestSearchBase < Test::Unit::TestCase
148
148
  end
149
149
 
150
150
  def test_searching
151
- search = Searchgasm::Search::Base.new(Account)
151
+ search = Account.new_search
152
152
  search.conditions.name_like = "Binary"
153
153
  assert_equal search.all, [Account.find(1), Account.find(3)]
154
154
  assert_equal search.find(:all), [Account.find(1), Account.find(3)]
@@ -174,7 +174,7 @@ class TestSearchBase < Test::Unit::TestCase
174
174
  end
175
175
 
176
176
  def test_calculations
177
- search = Searchgasm::Search::Base.new(Account)
177
+ search = Account.new_search
178
178
  search.conditions.name_like = "Binary"
179
179
  assert_equal 2, search.average('id')
180
180
  assert_equal 2, search.calculate(:avg, 'id')
@@ -184,4 +184,8 @@ class TestSearchBase < Test::Unit::TestCase
184
184
  assert_equal 1, search.minimum('id')
185
185
  assert_equal 4, search.sum('id')
186
186
  end
187
+
188
+ def test_method_creation_in_scope
189
+ # test ot make sure methods are not created across the board for all models
190
+ end
187
191
  end
@@ -13,14 +13,14 @@ class TestSearchConditions < Test::Unit::TestCase
13
13
  end
14
14
 
15
15
  def test_conditions
16
- search = Searchgasm::Search::Base.new(Account)
16
+ search = Account.new_search
17
17
  assert_kind_of Searchgasm::Conditions::Base, search.conditions
18
18
  assert_equal search.conditions.klass, Account
19
19
 
20
20
  search.conditions = {:name_like => "Binary"}
21
21
  assert_kind_of Searchgasm::Conditions::Base, search.conditions
22
22
 
23
- conditions = Searchgasm::Conditions::Base.new(Account, :id_greater_than => 8)
23
+ conditions = Account.new_conditions(:id_greater_than => 8)
24
24
  search.conditions = conditions
25
25
  assert_equal conditions, search.conditions
26
26
  end
@@ -13,7 +13,7 @@ class TestSearchOrdering < Test::Unit::TestCase
13
13
  end
14
14
 
15
15
  def test_order_as
16
- search = Searchgasm::Search::Base.new(Account)
16
+ search = Account.new_search
17
17
  assert_equal nil, search.order
18
18
  assert_equal "ASC", search.order_as
19
19
  assert search.asc?
@@ -40,7 +40,7 @@ class TestSearchOrdering < Test::Unit::TestCase
40
40
  end
41
41
 
42
42
  def test_order_by
43
- search = Searchgasm::Search::Base.new(Account)
43
+ search = Account.new_search
44
44
  assert_equal nil, search.order
45
45
  assert_equal "id", search.order_by
46
46
 
@@ -13,7 +13,7 @@ class TestSearchPagination < Test::Unit::TestCase
13
13
  end
14
14
 
15
15
  def test_limit
16
- search = Searchgasm::Search::Base.new(Account)
16
+ search = Account.new_search
17
17
  search.limit = 10
18
18
  assert_equal 10, search.limit
19
19
  search.page = 2
@@ -29,7 +29,7 @@ class TestSearchPagination < Test::Unit::TestCase
29
29
  end
30
30
 
31
31
  def test_page
32
- search = Searchgasm::Search::Base.new(Account)
32
+ search = Account.new_search
33
33
  search.page = 2
34
34
  assert_equal 1, search.page
35
35
  search.per_page = 20
@@ -43,7 +43,7 @@ class TestSearchPagination < Test::Unit::TestCase
43
43
  end
44
44
 
45
45
  def test_per_page
46
- search = Searchgasm::Search::Base.new(Account)
46
+ search = Account.new_search
47
47
  search.per_page = 10
48
48
  assert_equal 10, search.per_page
49
49
  search.per_page = ""
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.0.0
4
+ version: 1.0.1
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-09-09 00:00:00 -04:00
12
+ date: 2008-09-11 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -49,9 +49,10 @@ executables: []
49
49
  extensions: []
50
50
 
51
51
  extra_rdoc_files:
52
- - CHANGELOG
52
+ - CHANGELOG.rdoc
53
53
  - lib/searchgasm/active_record/associations.rb
54
54
  - lib/searchgasm/active_record/base.rb
55
+ - lib/searchgasm/active_record.rb
55
56
  - lib/searchgasm/condition/base.rb
56
57
  - lib/searchgasm/condition/begins_with.rb
57
58
  - lib/searchgasm/condition/child_of.rb
@@ -71,6 +72,7 @@ extra_rdoc_files:
71
72
  - lib/searchgasm/conditions/base.rb
72
73
  - lib/searchgasm/conditions/protection.rb
73
74
  - lib/searchgasm/config.rb
75
+ - lib/searchgasm/core_ext/hash.rb
74
76
  - lib/searchgasm/helpers/control_types/link.rb
75
77
  - lib/searchgasm/helpers/control_types/links.rb
76
78
  - lib/searchgasm/helpers/control_types/remote_link.rb
@@ -91,11 +93,12 @@ extra_rdoc_files:
91
93
  - lib/searchgasm.rb
92
94
  - README.rdoc
93
95
  files:
94
- - CHANGELOG
96
+ - CHANGELOG.rdoc
95
97
  - examples/README.rdoc
96
98
  - init.rb
97
99
  - lib/searchgasm/active_record/associations.rb
98
100
  - lib/searchgasm/active_record/base.rb
101
+ - lib/searchgasm/active_record.rb
99
102
  - lib/searchgasm/condition/base.rb
100
103
  - lib/searchgasm/condition/begins_with.rb
101
104
  - lib/searchgasm/condition/child_of.rb
@@ -115,6 +118,7 @@ files:
115
118
  - lib/searchgasm/conditions/base.rb
116
119
  - lib/searchgasm/conditions/protection.rb
117
120
  - lib/searchgasm/config.rb
121
+ - lib/searchgasm/core_ext/hash.rb
118
122
  - lib/searchgasm/helpers/control_types/link.rb
119
123
  - lib/searchgasm/helpers/control_types/links.rb
120
124
  - lib/searchgasm/helpers/control_types/remote_link.rb
data/CHANGELOG DELETED
@@ -1,23 +0,0 @@
1
- v1.0.0. Major changes in the helpers, they were completely re-engineered. Much nicer and cleaner now. I established a pattern between all helpers giving you complete flexibility as to how they are used. All helpers are called differently now (see documentation).
2
-
3
- v0.9.10. Hardened more tests, fixed bug with setting the per_page configuration to only take effect on protected searches, thus staying out of the way of normal searching.
4
-
5
- v0.9.9. Fixed setting per_page to nil, false, or ''. This is done to "show all" results.
6
-
7
- v0.9.8. Fixed order_by helper bug when determing the text with arrays. Should use the first value instead of last. Added in per_page config option.
8
-
9
- v0.9.7. Complete class restructure, much more organized, added in documentation, added in helpers for using searchgasm in a rails app, updated readme with link to documentation as well as a live example, some bug fixes, more tests
10
-
11
- v0.9.6. Fixed bug when instantiating with nil options
12
-
13
- v0.9.5. Enhanced searching with conditions only. Updated read me to include example on adding your own conditions.
14
-
15
- v0.9.4. Cleaned up search methods, removed reset! method for base and conditions.
16
-
17
- v0.9.3. Changed structure of conditions to have their own class. Making it easier to add your own conditions.
18
-
19
- v0.9.2. Enhanced protection
20
-
21
- v0.9.1. Added aliases for datetime, date, time, and timestamp attrs. You could call created_at_after, mow you can also call created_after.
22
-
23
- v0.9.0. First release