search_magic 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +4 -5
- data/lib/search_magic/full_text_search.rb +3 -2
- data/lib/search_magic/version.rb +1 -1
- data/search_magic.gemspec +1 -1
- data/spec/models/absolutely_not_searchable.rb +5 -0
- data/spec/models/is_searchable.rb +8 -0
- data/spec/unit/search_magic/model_updates_spec.rb +12 -0
- metadata +9 -25
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
search_magic (0.0.
|
5
|
-
mongoid (>= 2.0.0
|
4
|
+
search_magic (0.0.8)
|
5
|
+
mongoid (>= 2.0.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: http://rubygems.org/
|
@@ -20,7 +20,7 @@ GEM
|
|
20
20
|
i18n (0.5.0)
|
21
21
|
mongo (1.2.4)
|
22
22
|
bson (>= 1.2.4)
|
23
|
-
mongoid (2.0.0
|
23
|
+
mongoid (2.0.0)
|
24
24
|
activemodel (~> 3.0)
|
25
25
|
mongo (~> 1.2)
|
26
26
|
tzinfo (~> 0.3.22)
|
@@ -33,7 +33,7 @@ GEM
|
|
33
33
|
rspec-expectations (2.5.0)
|
34
34
|
diff-lcs (~> 1.1.2)
|
35
35
|
rspec-mocks (2.5.0)
|
36
|
-
tzinfo (0.3.
|
36
|
+
tzinfo (0.3.26)
|
37
37
|
will_paginate (3.0.pre2)
|
38
38
|
|
39
39
|
PLATFORMS
|
@@ -42,6 +42,5 @@ PLATFORMS
|
|
42
42
|
DEPENDENCIES
|
43
43
|
bson_ext
|
44
44
|
database_cleaner
|
45
|
-
mongoid (>= 2.0.0.rc.8)
|
46
45
|
rspec
|
47
46
|
search_magic!
|
@@ -23,8 +23,9 @@ module SearchMagic
|
|
23
23
|
|
24
24
|
def inverse_searchables
|
25
25
|
@inverse_searchables ||= relations.values.
|
26
|
-
|
27
|
-
|
26
|
+
map {|metadata| [metadata, metadata.class_name.constantize] }.
|
27
|
+
select {|metadata, klass| klass < SearchMagic::FullTextSearch && klass.searchable_fields.keys.include?(metadata.inverse_setter.chomp("=").to_sym)}.
|
28
|
+
map(&:first).map(&:name)
|
28
29
|
end
|
29
30
|
|
30
31
|
def search_for(pattern)
|
data/lib/search_magic/version.rb
CHANGED
data/search_magic.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary = %q{SearchMagic provides scoped full text search and sort capabilities to Mongoid documents}
|
13
13
|
s.description = %q{Adds scopes to a Mongoid document providing search and sort capabilities on arbitrary fields and associations.}
|
14
14
|
|
15
|
-
s.add_dependency("mongoid", ">= 2.0.0
|
15
|
+
s.add_dependency("mongoid", ">= 2.0.0")
|
16
16
|
s.add_development_dependency("rspec")
|
17
17
|
s.add_development_dependency("database_cleaner")
|
18
18
|
s.add_development_dependency("bson_ext")
|
@@ -21,6 +21,18 @@ describe SearchMagic::FullTextSearch do
|
|
21
21
|
its(:inverse_searchables) { should include(:person) }
|
22
22
|
end
|
23
23
|
|
24
|
+
context "when included in a document which searches on another, but is not searched on by another" do
|
25
|
+
subject { Part }
|
26
|
+
it { should respond_to(:inverse_searchables) }
|
27
|
+
its(:inverse_searchables) { should be_a(Array) }
|
28
|
+
its(:inverse_searchables) { should be_blank }
|
29
|
+
end
|
30
|
+
|
31
|
+
context "when included in a document which references a non-searchable document" do
|
32
|
+
subject { IsSearchable }
|
33
|
+
it { expect { subject.inverse_searchables }.to_not raise_error }
|
34
|
+
end
|
35
|
+
|
24
36
|
context "when included in a document with referenced searchables" do
|
25
37
|
subject { PartNumber }
|
26
38
|
it { should respond_to(:inverse_searchables) }
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: search_magic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 7
|
9
|
-
version: 0.0.7
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.8
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Joshua Bowers
|
@@ -14,7 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-03
|
13
|
+
date: 2011-04-03 00:00:00 -07:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
@@ -25,13 +21,7 @@ dependencies:
|
|
25
21
|
requirements:
|
26
22
|
- - ">="
|
27
23
|
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
- 2
|
30
|
-
- 0
|
31
|
-
- 0
|
32
|
-
- rc
|
33
|
-
- 8
|
34
|
-
version: 2.0.0.rc.8
|
24
|
+
version: 2.0.0
|
35
25
|
type: :runtime
|
36
26
|
version_requirements: *id001
|
37
27
|
- !ruby/object:Gem::Dependency
|
@@ -42,8 +32,6 @@ dependencies:
|
|
42
32
|
requirements:
|
43
33
|
- - ">="
|
44
34
|
- !ruby/object:Gem::Version
|
45
|
-
segments:
|
46
|
-
- 0
|
47
35
|
version: "0"
|
48
36
|
type: :development
|
49
37
|
version_requirements: *id002
|
@@ -55,8 +43,6 @@ dependencies:
|
|
55
43
|
requirements:
|
56
44
|
- - ">="
|
57
45
|
- !ruby/object:Gem::Version
|
58
|
-
segments:
|
59
|
-
- 0
|
60
46
|
version: "0"
|
61
47
|
type: :development
|
62
48
|
version_requirements: *id003
|
@@ -68,8 +54,6 @@ dependencies:
|
|
68
54
|
requirements:
|
69
55
|
- - ">="
|
70
56
|
- !ruby/object:Gem::Version
|
71
|
-
segments:
|
72
|
-
- 0
|
73
57
|
version: "0"
|
74
58
|
type: :development
|
75
59
|
version_requirements: *id004
|
@@ -93,10 +77,12 @@ files:
|
|
93
77
|
- lib/search_magic/metadata.rb
|
94
78
|
- lib/search_magic/version.rb
|
95
79
|
- search_magic.gemspec
|
80
|
+
- spec/models/absolutely_not_searchable.rb
|
96
81
|
- spec/models/address.rb
|
97
82
|
- spec/models/asset.rb
|
98
83
|
- spec/models/developer.rb
|
99
84
|
- spec/models/game.rb
|
85
|
+
- spec/models/is_searchable.rb
|
100
86
|
- spec/models/no_searchables.rb
|
101
87
|
- spec/models/part.rb
|
102
88
|
- spec/models/part_category.rb
|
@@ -123,29 +109,27 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
109
|
requirements:
|
124
110
|
- - ">="
|
125
111
|
- !ruby/object:Gem::Version
|
126
|
-
segments:
|
127
|
-
- 0
|
128
112
|
version: "0"
|
129
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
114
|
none: false
|
131
115
|
requirements:
|
132
116
|
- - ">="
|
133
117
|
- !ruby/object:Gem::Version
|
134
|
-
segments:
|
135
|
-
- 0
|
136
118
|
version: "0"
|
137
119
|
requirements: []
|
138
120
|
|
139
121
|
rubyforge_project: search_magic
|
140
|
-
rubygems_version: 1.
|
122
|
+
rubygems_version: 1.6.2
|
141
123
|
signing_key:
|
142
124
|
specification_version: 3
|
143
125
|
summary: SearchMagic provides scoped full text search and sort capabilities to Mongoid documents
|
144
126
|
test_files:
|
127
|
+
- spec/models/absolutely_not_searchable.rb
|
145
128
|
- spec/models/address.rb
|
146
129
|
- spec/models/asset.rb
|
147
130
|
- spec/models/developer.rb
|
148
131
|
- spec/models/game.rb
|
132
|
+
- spec/models/is_searchable.rb
|
149
133
|
- spec/models/no_searchables.rb
|
150
134
|
- spec/models/part.rb
|
151
135
|
- spec/models/part_category.rb
|