outoftime-sunspot 0.8.3 → 0.8.4
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.rdoc +3 -2
- data/TODO +3 -0
- data/VERSION.yml +1 -1
- data/lib/sunspot/adapters.rb +7 -6
- data/spec/api/adapters_spec.rb +21 -0
- data/spec/mocks/adapters.rb +32 -0
- metadata +6 -2
data/README.rdoc
CHANGED
|
@@ -151,8 +151,9 @@ http://outoftime.lighthouseapp.com/projects/20339-sunspot
|
|
|
151
151
|
|
|
152
152
|
== Contributors
|
|
153
153
|
|
|
154
|
-
Mat Brown (mat@patch.com)
|
|
155
|
-
Peer Allan
|
|
154
|
+
* Mat Brown (mat@patch.com)
|
|
155
|
+
* Peer Allan (peer.allan@gmail.com)
|
|
156
|
+
* Dmitriy Dzema (dima@dzema.name)
|
|
156
157
|
|
|
157
158
|
== License
|
|
158
159
|
|
data/TODO
CHANGED
data/VERSION.yml
CHANGED
data/lib/sunspot/adapters.rb
CHANGED
|
@@ -117,11 +117,12 @@ module Sunspot
|
|
|
117
117
|
#
|
|
118
118
|
def for(clazz) #:nodoc:
|
|
119
119
|
original_class_name = clazz.name
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
clazz.ancestors.each do |ancestor_class|
|
|
121
|
+
next if ancestor_class.name.empty?
|
|
122
|
+
class_name = ancestor_class.name.to_sym
|
|
122
123
|
return instance_adapters[class_name] if instance_adapters[class_name]
|
|
123
|
-
clazz = clazz.superclass
|
|
124
124
|
end
|
|
125
|
+
|
|
125
126
|
raise(Sunspot::NoAdapterError,
|
|
126
127
|
"No adapter is configured for #{original_class_name} or its superclasses. See the documentation for Sunspot::Adapters")
|
|
127
128
|
end
|
|
@@ -229,10 +230,10 @@ module Sunspot
|
|
|
229
230
|
# Class:: Implementation of DataAccessor, or nil if none found
|
|
230
231
|
#
|
|
231
232
|
def for(clazz) #:nodoc:
|
|
232
|
-
|
|
233
|
-
|
|
233
|
+
clazz.ancestors.each do |ancestor_class|
|
|
234
|
+
next if ancestor_class.name.empty?
|
|
235
|
+
class_name = ancestor_class.name.to_sym
|
|
234
236
|
return data_accessors[class_name] if data_accessors[class_name]
|
|
235
|
-
clazz = clazz.superclass
|
|
236
237
|
end
|
|
237
238
|
end
|
|
238
239
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'spec_helper')
|
|
2
|
+
|
|
3
|
+
describe Sunspot::Adapters::InstanceAdapter do
|
|
4
|
+
it "finds adapter by superclass" do
|
|
5
|
+
Sunspot::Adapters::InstanceAdapter::for(Model).should be(AbstractModelInstanceAdapter)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "finds adapter by mixin" do
|
|
9
|
+
Sunspot::Adapters::InstanceAdapter::for(MixModel).should be(MixInModelInstanceAdapter)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe Sunspot::Adapters::DataAccessor do
|
|
14
|
+
it "finds adapter by superclass" do
|
|
15
|
+
Sunspot::Adapters::DataAccessor::for(Model).should be(AbstractModelDataAccessor)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "finds adapter by mixin" do
|
|
19
|
+
Sunspot::Adapters::DataAccessor::for(MixModel).should be(MixInModelDataAccessor)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
class AbstractModel
|
|
2
|
+
end
|
|
3
|
+
|
|
4
|
+
class Model < AbstractModel
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class AbstractModelInstanceAdapter < Sunspot::Adapters::InstanceAdapter
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class AbstractModelDataAccessor < Sunspot::Adapters::DataAccessor
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
Sunspot::Adapters::InstanceAdapter.register(AbstractModelInstanceAdapter, AbstractModel)
|
|
14
|
+
Sunspot::Adapters::DataAccessor.register(AbstractModelDataAccessor, AbstractModel)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
module MixInModel
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class MixModel
|
|
21
|
+
include MixInModel
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
class MixInModelInstanceAdapter < Sunspot::Adapters::InstanceAdapter
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class MixInModelDataAccessor < Sunspot::Adapters::DataAccessor
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
Sunspot::Adapters::InstanceAdapter.register(MixInModelInstanceAdapter, MixInModel)
|
|
31
|
+
Sunspot::Adapters::DataAccessor.register(MixInModelDataAccessor, MixInModel)
|
|
32
|
+
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: outoftime-sunspot
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.8.
|
|
4
|
+
version: 0.8.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mat Brown
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2009-06-
|
|
12
|
+
date: 2009-06-09 00:00:00 -07:00
|
|
13
13
|
default_executable: sunspot-solr
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
@@ -100,6 +100,7 @@ files:
|
|
|
100
100
|
- solr/solr/conf/synonyms.txt
|
|
101
101
|
- solr/start.jar
|
|
102
102
|
- solr/webapps/solr.war
|
|
103
|
+
- spec/api/adapters_spec.rb
|
|
103
104
|
- spec/api/build_search_spec.rb
|
|
104
105
|
- spec/api/indexer_spec.rb
|
|
105
106
|
- spec/api/query_spec.rb
|
|
@@ -112,6 +113,7 @@ files:
|
|
|
112
113
|
- spec/integration/scoped_search_spec.rb
|
|
113
114
|
- spec/integration/spec_helper.rb
|
|
114
115
|
- spec/integration/test_pagination.rb
|
|
116
|
+
- spec/mocks/adapters.rb
|
|
115
117
|
- spec/mocks/base_class.rb
|
|
116
118
|
- spec/mocks/comment.rb
|
|
117
119
|
- spec/mocks/mock_adapter.rb
|
|
@@ -163,6 +165,7 @@ test_files:
|
|
|
163
165
|
- spec/integration/dynamic_fields_spec.rb
|
|
164
166
|
- spec/integration/test_pagination.rb
|
|
165
167
|
- spec/mocks/base_class.rb
|
|
168
|
+
- spec/mocks/adapters.rb
|
|
166
169
|
- spec/mocks/mock_adapter.rb
|
|
167
170
|
- spec/mocks/user.rb
|
|
168
171
|
- spec/mocks/post.rb
|
|
@@ -170,6 +173,7 @@ test_files:
|
|
|
170
173
|
- spec/api/search_retrieval_spec.rb
|
|
171
174
|
- spec/api/spec_helper.rb
|
|
172
175
|
- spec/api/session_spec.rb
|
|
176
|
+
- spec/api/adapters_spec.rb
|
|
173
177
|
- spec/api/build_search_spec.rb
|
|
174
178
|
- spec/api/indexer_spec.rb
|
|
175
179
|
- spec/api/query_spec.rb
|