mebla 1.1.5 → 1.1.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/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/lib/mebla/result_set.rb +15 -15
- data/lib/mebla/search.rb +1 -1
- data/mebla.gemspec +32 -2
- metadata +638 -191
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.6
|
data/lib/mebla/result_set.rb
CHANGED
@@ -20,39 +20,36 @@ module Mebla
|
|
20
20
|
@total = response['hits']['total']
|
21
21
|
|
22
22
|
# Be efficient only query the database once
|
23
|
-
model_ids =
|
23
|
+
model_ids = []
|
24
24
|
|
25
25
|
# Collect results' ids
|
26
26
|
response['hits']['hits'].each do |hit|
|
27
27
|
model_class = hit['_type'].camelize.constantize
|
28
|
-
|
28
|
+
model_ids << [model_class]
|
29
|
+
|
29
30
|
if model_class.embedded?
|
30
|
-
|
31
|
-
model_ids[model_class] = {}
|
32
|
-
end
|
31
|
+
model_class_collection = model_ids.assoc(model_class)
|
33
32
|
# collect parent ids
|
34
33
|
# {class => {parent_id => [ids]}}
|
35
34
|
parent_id = hit['_source']['_parent']
|
36
35
|
|
37
|
-
|
38
|
-
model_ids[model_class][parent_id] = []
|
39
|
-
end
|
36
|
+
model_class_collection << [parent_id]
|
40
37
|
|
41
|
-
|
38
|
+
model_class_collection.assoc(parent_id) << hit['_source']['id']
|
42
39
|
else
|
43
|
-
unless model_ids[model_class]
|
44
|
-
model_ids[model_class] = []
|
45
|
-
end
|
46
40
|
# collect ids
|
47
41
|
# {class => [ids]}
|
48
|
-
model_ids
|
42
|
+
model_ids.assoc(model_class) << hit['_source']['id']
|
49
43
|
end
|
50
44
|
end
|
51
45
|
|
52
46
|
# Cast the results into their appropriate classes
|
53
47
|
@entries = []
|
54
48
|
|
55
|
-
model_ids.
|
49
|
+
model_ids.each do |model_class_collection|
|
50
|
+
model_class = model_class_collection.first
|
51
|
+
ids = model_class_collection.drop(1)
|
52
|
+
|
56
53
|
unless model_class.embedded?
|
57
54
|
# Retrieve the results from the database
|
58
55
|
@entries += model_class.any_in(:_id => ids).entries
|
@@ -61,7 +58,10 @@ module Mebla
|
|
61
58
|
parent_class = model_class.embedded_parent
|
62
59
|
access_method = model_class.embedded_as
|
63
60
|
|
64
|
-
ids.
|
61
|
+
ids.each do |parent_id_collection|
|
62
|
+
parent_id = parent_id_collection.first
|
63
|
+
entries_ids = parent_id_collection.drop(1)
|
64
|
+
|
65
65
|
parent = parent_class.find parent_id
|
66
66
|
|
67
67
|
# Retrieve the results from the database
|
data/lib/mebla/search.rb
CHANGED
@@ -191,7 +191,7 @@ module Mebla
|
|
191
191
|
# Log search query
|
192
192
|
Mebla.log("Searching:\n#{@slingshot_search.to_json.to_s}", :debug)
|
193
193
|
response = @slingshot_search.perform.json
|
194
|
-
Mebla.log("Response:\n#{response}", :info)
|
194
|
+
Mebla.log("Response:\n#{response.to_json.to_s}", :info)
|
195
195
|
@results = Mebla::ResultSet.new(response)
|
196
196
|
# Log results statistics
|
197
197
|
Mebla.log("Searched for:\n#{@slingshot_search.to_json.to_s}\ngot #{@results.total} documents in #{@results.time} ms", :debug)
|
data/mebla.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mebla}
|
8
|
-
s.version = "1.1.
|
8
|
+
s.version = "1.1.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Omar Mekky"]
|
12
|
-
s.date = %q{2011-05-
|
12
|
+
s.date = %q{2011-05-25}
|
13
13
|
s.description = %q{
|
14
14
|
An elasticsearch wrapper for mongoid odm based on slingshot. Makes integration between ElasticSearch full-text
|
15
15
|
search engine and Mongoid documents seemless and simple.
|
@@ -127,6 +127,16 @@ Gem::Specification.new do |s|
|
|
127
127
|
s.add_development_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
128
128
|
s.add_development_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
129
129
|
s.add_development_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
130
|
+
s.add_development_dependency(%q<bson>, ["~> 1.3.0"])
|
131
|
+
s.add_development_dependency(%q<bson_ext>, ["~> 1.3.0"])
|
132
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
133
|
+
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
134
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
135
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
136
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
137
|
+
s.add_development_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
138
|
+
s.add_development_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
139
|
+
s.add_development_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
130
140
|
s.add_runtime_dependency(%q<slingshot-rb>, ["= 0.0.8"])
|
131
141
|
s.add_runtime_dependency(%q<mongoid>, ["~> 2.0.1"])
|
132
142
|
s.add_development_dependency(%q<bson>, ["~> 1.3.0"])
|
@@ -187,6 +197,16 @@ Gem::Specification.new do |s|
|
|
187
197
|
s.add_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
188
198
|
s.add_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
189
199
|
s.add_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
200
|
+
s.add_dependency(%q<bson>, ["~> 1.3.0"])
|
201
|
+
s.add_dependency(%q<bson_ext>, ["~> 1.3.0"])
|
202
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
203
|
+
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
204
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
205
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
206
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
207
|
+
s.add_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
208
|
+
s.add_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
209
|
+
s.add_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
190
210
|
s.add_dependency(%q<slingshot-rb>, ["= 0.0.8"])
|
191
211
|
s.add_dependency(%q<mongoid>, ["~> 2.0.1"])
|
192
212
|
s.add_dependency(%q<bson>, ["~> 1.3.0"])
|
@@ -248,6 +268,16 @@ Gem::Specification.new do |s|
|
|
248
268
|
s.add_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
249
269
|
s.add_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
250
270
|
s.add_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
271
|
+
s.add_dependency(%q<bson>, ["~> 1.3.0"])
|
272
|
+
s.add_dependency(%q<bson_ext>, ["~> 1.3.0"])
|
273
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
274
|
+
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
275
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
276
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
277
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
278
|
+
s.add_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
279
|
+
s.add_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
280
|
+
s.add_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
251
281
|
s.add_dependency(%q<slingshot-rb>, ["= 0.0.8"])
|
252
282
|
s.add_dependency(%q<mongoid>, ["~> 2.0.1"])
|
253
283
|
s.add_dependency(%q<bson>, ["~> 1.3.0"])
|