binarylogic-searchlogic 2.1.7 → 2.1.8
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.rdoc +5 -1
- data/Rakefile +1 -0
- data/VERSION.yml +1 -1
- data/lib/searchlogic/named_scopes/conditions.rb +12 -0
- data/searchlogic.gemspec +3 -2
- data/spec/named_scopes/conditions_spec.rb +20 -0
- metadata +3 -3
data/CHANGELOG.rdoc
CHANGED
data/Rakefile
CHANGED
@@ -6,6 +6,7 @@ begin
|
|
6
6
|
Jeweler::Tasks.new do |gem|
|
7
7
|
gem.name = "searchlogic"
|
8
8
|
gem.summary = "Searchlogic provides common named scopes and object based searching for ActiveRecord."
|
9
|
+
gem.description = "Searchlogic provides common named scopes and object based searching for ActiveRecord."
|
9
10
|
gem.email = "bjohnson@binarylogic.com"
|
10
11
|
gem.homepage = "http://github.com/binarylogic/searchlogic"
|
11
12
|
gem.authors = ["Ben Johnson of Binary Logic"]
|
data/VERSION.yml
CHANGED
@@ -13,12 +13,16 @@ module Searchlogic
|
|
13
13
|
|
14
14
|
WILDCARD_CONDITIONS = {
|
15
15
|
:like => [:contains, :includes],
|
16
|
+
:not_like => [],
|
16
17
|
:begins_with => [:bw],
|
18
|
+
:not_begin_with => [:does_not_begin_with],
|
17
19
|
:ends_with => [:ew],
|
20
|
+
:not_end_with => [:does_not_end_with]
|
18
21
|
}
|
19
22
|
|
20
23
|
BOOLEAN_CONDITIONS = {
|
21
24
|
:null => [:nil],
|
25
|
+
:not_null => [:not_nil],
|
22
26
|
:empty => []
|
23
27
|
}
|
24
28
|
|
@@ -151,12 +155,20 @@ module Searchlogic
|
|
151
155
|
scope_options(condition, column_type, "#{table_name}.#{column} > ?")
|
152
156
|
when /^like/
|
153
157
|
scope_options(condition, column_type, "#{table_name}.#{column} LIKE ?", :like)
|
158
|
+
when /^not_like/
|
159
|
+
scope_options(condition, column_type, "#{table_name}.#{column} NOT LIKE ?", :like)
|
154
160
|
when /^begins_with/
|
155
161
|
scope_options(condition, column_type, "#{table_name}.#{column} LIKE ?", :begins_with)
|
162
|
+
when /^not_begin_with/
|
163
|
+
scope_options(condition, column_type, "#{table_name}.#{column} NOT LIKE ?", :begins_with)
|
156
164
|
when /^ends_with/
|
157
165
|
scope_options(condition, column_type, "#{table_name}.#{column} LIKE ?", :ends_with)
|
166
|
+
when /^not_end_with/
|
167
|
+
scope_options(condition, column_type, "#{table_name}.#{column} NOT LIKE ?", :ends_with)
|
158
168
|
when "null"
|
159
169
|
{:conditions => "#{table_name}.#{column} IS NULL"}
|
170
|
+
when "not_null"
|
171
|
+
{:conditions => "#{table_name}.#{column} IS NOT NULL"}
|
160
172
|
when "empty"
|
161
173
|
{:conditions => "#{table_name}.#{column} = ''"}
|
162
174
|
end
|
data/searchlogic.gemspec
CHANGED
@@ -2,11 +2,12 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{searchlogic}
|
5
|
-
s.version = "2.1.
|
5
|
+
s.version = "2.1.8"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Ben Johnson of Binary Logic"]
|
9
|
-
s.date = %q{2009-07-
|
9
|
+
s.date = %q{2009-07-16}
|
10
|
+
s.description = %q{Searchlogic provides common named scopes and object based searching for ActiveRecord.}
|
10
11
|
s.email = %q{bjohnson@binarylogic.com}
|
11
12
|
s.extra_rdoc_files = [
|
12
13
|
"LICENSE",
|
@@ -49,15 +49,30 @@ describe "Conditions" do
|
|
49
49
|
User.username_like("john").all.should == User.find_all_by_username("bjohnson")
|
50
50
|
end
|
51
51
|
|
52
|
+
it "should have not like" do
|
53
|
+
%w(bjohnson thunt).each { |username| User.create(:username => username) }
|
54
|
+
User.username_not_like("john").all.should == User.find_all_by_username("thunt")
|
55
|
+
end
|
56
|
+
|
52
57
|
it "should have begins with" do
|
53
58
|
%w(bjohnson thunt).each { |username| User.create(:username => username) }
|
54
59
|
User.username_begins_with("bj").all.should == User.find_all_by_username("bjohnson")
|
55
60
|
end
|
56
61
|
|
62
|
+
it "should have not begin with" do
|
63
|
+
%w(bjohnson thunt).each { |username| User.create(:username => username) }
|
64
|
+
User.username_not_begin_with("bj").all.should == User.find_all_by_username("thunt")
|
65
|
+
end
|
66
|
+
|
57
67
|
it "should have ends with" do
|
58
68
|
%w(bjohnson thunt).each { |username| User.create(:username => username) }
|
59
69
|
User.username_ends_with("son").all.should == User.find_all_by_username("bjohnson")
|
60
70
|
end
|
71
|
+
|
72
|
+
it "should have not end with" do
|
73
|
+
%w(bjohnson thunt).each { |username| User.create(:username => username) }
|
74
|
+
User.username_not_end_with("son").all.should == User.find_all_by_username("thunt")
|
75
|
+
end
|
61
76
|
end
|
62
77
|
|
63
78
|
context "boolean conditions" do
|
@@ -66,6 +81,11 @@ describe "Conditions" do
|
|
66
81
|
User.username_null.all.should == User.find_all_by_username(nil)
|
67
82
|
end
|
68
83
|
|
84
|
+
it "should have not null" do
|
85
|
+
["bjohnson", nil].each { |username| User.create(:username => username) }
|
86
|
+
User.username_not_null.all.should == User.find_all_by_username("bjohnson")
|
87
|
+
end
|
88
|
+
|
69
89
|
it "should have empty" do
|
70
90
|
["bjohnson", ""].each { |username| User.create(:username => username) }
|
71
91
|
User.username_empty.all.should == User.find_all_by_username("")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: binarylogic-searchlogic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.8
|
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: 2009-07-
|
12
|
+
date: 2009-07-16 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,7 +22,7 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 2.0.0
|
24
24
|
version:
|
25
|
-
description:
|
25
|
+
description: Searchlogic provides common named scopes and object based searching for ActiveRecord.
|
26
26
|
email: bjohnson@binarylogic.com
|
27
27
|
executables: []
|
28
28
|
|