mongoid_search 0.2.5 → 0.2.6
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/README.md +1 -1
- data/lib/mongoid_search/mongoid_search.rb +4 -7
- data/spec/mongoid_search_spec.rb +5 -5
- metadata +59 -98
data/README.md
CHANGED
@@ -66,7 +66,7 @@ Note that the search is case insensitive, and accept partial searching too:
|
|
66
66
|
Assuming you have a category with multiple products you can now use the following
|
67
67
|
code to search for 'iphone' in products cheaper than $499
|
68
68
|
|
69
|
-
@category.products.where(:price.lt => 499).
|
69
|
+
@category.products.where(:price.lt => 499).csearch('iphone').asc(:price)
|
70
70
|
|
71
71
|
In this case we have to use csearch, an alias for search, because since v2.0.0
|
72
72
|
Mongoid defines it's own Criteria.search method.
|
@@ -17,7 +17,7 @@ module Mongoid::Search
|
|
17
17
|
self.search_fields = (self.search_fields || []).concat args
|
18
18
|
|
19
19
|
field :_keywords, :type => Array
|
20
|
-
index :_keywords
|
20
|
+
index :_keywords, background: true
|
21
21
|
|
22
22
|
before_save :set_keywords
|
23
23
|
end
|
@@ -105,12 +105,9 @@ module Mongoid::Search
|
|
105
105
|
end
|
106
106
|
else
|
107
107
|
value = self[field]
|
108
|
-
if value.
|
109
|
-
|
110
|
-
else
|
111
|
-
Util.keywords(value, stem_keywords, ignore_list) if value
|
112
|
-
end
|
108
|
+
value = value.join(' ') if value.respond_to?(:join)
|
109
|
+
Util.keywords(value, stem_keywords, ignore_list) if value
|
113
110
|
end
|
114
|
-
end.flatten.
|
111
|
+
end.flatten.reject{|k| k.nil? || k.empty?}.uniq.sort
|
115
112
|
end
|
116
113
|
end
|
data/spec/mongoid_search_spec.rb
CHANGED
@@ -30,10 +30,10 @@ describe Mongoid::Search do
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
it "should set the _keywords field" do
|
34
|
-
@product.attrs = ['lightweight', '
|
33
|
+
it "should set the _keywords field for array fields also" do
|
34
|
+
@product.attrs = ['lightweight', 'plastic', :red]
|
35
35
|
@product.save!
|
36
|
-
@product._keywords.should include
|
36
|
+
@product._keywords.should include 'lightweight', 'plastic', 'red'
|
37
37
|
end
|
38
38
|
|
39
39
|
it "should inherit _keywords field and build upon" do
|
@@ -43,8 +43,8 @@ describe Mongoid::Search do
|
|
43
43
|
:category => Category.new(:name => "Mobile"),
|
44
44
|
:subproducts => [Subproduct.new(:brand => "Apple", :name => "Craddle")],
|
45
45
|
:color => :white
|
46
|
-
variant._keywords.should include
|
47
|
-
Variant.search(:name => 'Apple', :color => :white).
|
46
|
+
variant._keywords.should include 'white'
|
47
|
+
Variant.search(:name => 'Apple', :color => :white).should eq [variant]
|
48
48
|
end
|
49
49
|
|
50
50
|
it "should set the _keywords field with stemmed words if stem is enabled" do
|
metadata
CHANGED
@@ -1,120 +1,90 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid_search
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 5
|
9
|
-
version: 0.2.5
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.6
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Mauricio Zaffari
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
date: 2011-05-26 00:00:00 -03:00
|
12
|
+
date: 2011-05-31 00:00:00.000000000 -03:00
|
18
13
|
default_executable:
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
21
16
|
name: mongoid
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: &2155959000 !ruby/object:Gem::Requirement
|
24
18
|
none: false
|
25
|
-
requirements:
|
19
|
+
requirements:
|
26
20
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 2
|
30
|
-
- 0
|
31
|
-
- 0
|
21
|
+
- !ruby/object:Gem::Version
|
32
22
|
version: 2.0.0
|
33
23
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: bson_ext
|
37
24
|
prerelease: false
|
38
|
-
|
25
|
+
version_requirements: *2155959000
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: bson_ext
|
28
|
+
requirement: &2155958360 !ruby/object:Gem::Requirement
|
39
29
|
none: false
|
40
|
-
requirements:
|
30
|
+
requirements:
|
41
31
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
- 1
|
45
|
-
- 2
|
46
|
-
version: "1.2"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.2'
|
47
34
|
type: :runtime
|
48
|
-
version_requirements: *id002
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: fast-stemmer
|
51
35
|
prerelease: false
|
52
|
-
|
36
|
+
version_requirements: *2155958360
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: fast-stemmer
|
39
|
+
requirement: &2155957680 !ruby/object:Gem::Requirement
|
53
40
|
none: false
|
54
|
-
requirements:
|
41
|
+
requirements:
|
55
42
|
- - ~>
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
segments:
|
58
|
-
- 1
|
59
|
-
- 0
|
60
|
-
- 0
|
43
|
+
- !ruby/object:Gem::Version
|
61
44
|
version: 1.0.0
|
62
45
|
type: :runtime
|
63
|
-
version_requirements: *id003
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: database_cleaner
|
66
46
|
prerelease: false
|
67
|
-
|
47
|
+
version_requirements: *2155957680
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: database_cleaner
|
50
|
+
requirement: &2155957100 !ruby/object:Gem::Requirement
|
68
51
|
none: false
|
69
|
-
requirements:
|
52
|
+
requirements:
|
70
53
|
- - ~>
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
segments:
|
73
|
-
- 0
|
74
|
-
- 6
|
75
|
-
- 4
|
54
|
+
- !ruby/object:Gem::Version
|
76
55
|
version: 0.6.4
|
77
56
|
type: :development
|
78
|
-
version_requirements: *id004
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: rake
|
81
57
|
prerelease: false
|
82
|
-
|
58
|
+
version_requirements: *2155957100
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: rake
|
61
|
+
requirement: &2155956180 !ruby/object:Gem::Requirement
|
83
62
|
none: false
|
84
|
-
requirements:
|
63
|
+
requirements:
|
85
64
|
- - ~>
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
segments:
|
88
|
-
- 0
|
89
|
-
- 8
|
90
|
-
- 7
|
65
|
+
- !ruby/object:Gem::Version
|
91
66
|
version: 0.8.7
|
92
67
|
type: :development
|
93
|
-
version_requirements: *id005
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: rspec
|
96
68
|
prerelease: false
|
97
|
-
|
69
|
+
version_requirements: *2155956180
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rspec
|
72
|
+
requirement: &2155955460 !ruby/object:Gem::Requirement
|
98
73
|
none: false
|
99
|
-
requirements:
|
74
|
+
requirements:
|
100
75
|
- - ~>
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
|
103
|
-
- 2
|
104
|
-
- 4
|
105
|
-
version: "2.4"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '2.4'
|
106
78
|
type: :development
|
107
|
-
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: *2155955460
|
108
81
|
description: Simple full text search implementation.
|
109
|
-
email:
|
82
|
+
email:
|
110
83
|
- mauricio@papodenerd.net
|
111
84
|
executables: []
|
112
|
-
|
113
85
|
extensions: []
|
114
|
-
|
115
86
|
extra_rdoc_files: []
|
116
|
-
|
117
|
-
files:
|
87
|
+
files:
|
118
88
|
- lib/mongoid_search/mongoid_search.rb
|
119
89
|
- lib/mongoid_search/util.rb
|
120
90
|
- lib/mongoid_search.rb
|
@@ -134,38 +104,29 @@ files:
|
|
134
104
|
has_rdoc: true
|
135
105
|
homepage: http://www.papodenerd.net/mongoid-search-full-text-search-for-your-mongoid-models/
|
136
106
|
licenses: []
|
137
|
-
|
138
107
|
post_install_message:
|
139
108
|
rdoc_options: []
|
140
|
-
|
141
|
-
require_paths:
|
109
|
+
require_paths:
|
142
110
|
- lib
|
143
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
111
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
144
112
|
none: false
|
145
|
-
requirements:
|
146
|
-
- -
|
147
|
-
- !ruby/object:Gem::Version
|
148
|
-
|
149
|
-
|
150
|
-
version: "0"
|
151
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ! '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
118
|
none: false
|
153
|
-
requirements:
|
154
|
-
- -
|
155
|
-
- !ruby/object:Gem::Version
|
156
|
-
segments:
|
157
|
-
- 1
|
158
|
-
- 3
|
159
|
-
- 6
|
119
|
+
requirements:
|
120
|
+
- - ! '>='
|
121
|
+
- !ruby/object:Gem::Version
|
160
122
|
version: 1.3.6
|
161
123
|
requirements: []
|
162
|
-
|
163
124
|
rubyforge_project:
|
164
|
-
rubygems_version: 1.
|
125
|
+
rubygems_version: 1.6.2
|
165
126
|
signing_key:
|
166
127
|
specification_version: 3
|
167
128
|
summary: Search implementation for Mongoid ORM
|
168
|
-
test_files:
|
129
|
+
test_files:
|
169
130
|
- spec/config/ignorelist.yml
|
170
131
|
- spec/models/category.rb
|
171
132
|
- spec/models/product.rb
|