search_magic 0.0.7 → 0.0.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/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