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 CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- search_magic (0.0.7)
5
- mongoid (>= 2.0.0.rc.8)
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.rc.8)
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.25)
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
- select {|metadata| metadata.class_name.constantize.searchable_fields.keys.include?(metadata.inverse_setter.chomp("=").to_sym)}.
27
- map(&:name)
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)
@@ -1,3 +1,3 @@
1
1
  module SearchMagic
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
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.rc.8")
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")
@@ -0,0 +1,5 @@
1
+ class AbsolutelyNotSearchable
2
+ include Mongoid::Document
3
+ field :foo, :type => String
4
+ referenced_in :is_searchable
5
+ end
@@ -0,0 +1,8 @@
1
+ class IsSearchable
2
+ include Mongoid::Document
3
+ include SearchMagic::FullTextSearch
4
+ field :bar, :type => String
5
+ references_many :absolutely_not_searchables
6
+
7
+ search_on :bar
8
+ end
@@ -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: false
5
- segments:
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-28 00:00:00 -07:00
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
- segments:
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.3.7
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