lib/mongoid/elasticsearch/response.rb in mongoid-elasticsearch-0.4.3 vs lib/mongoid/elasticsearch/response.rb in mongoid-elasticsearch-0.5.0
- old
+ new
@@ -59,11 +59,15 @@
end
when :mash
hits.map do |h|
s = h.delete('_source')
m = Hashie::Mash.new(h.merge(s))
- m.id = BSON::ObjectId.from_string(h['_id'])
+ if defined?(Moped::BSON)
+ m.id = Moped::BSON::ObjectId.from_string(h['_id'])
+ else
+ m.id = BSON::ObjectId.from_string(h['_id'])
+ end
m._id = m.id
m
end
when :model
multi_without_load
@@ -146,16 +150,29 @@
def multi_without_load
hits.map do |h|
klass = find_klass(h['_type'])
source = h.delete('_source')
- source.each do |k,v|
- if v.is_a?(Hash) && v.has_key?("$oid")
- source[k] = BSON::ObjectId.from_string(v["$oid"])
+ if defined?(Moped::BSON)
+ source.each do |k,v|
+ if v.is_a?(Hash) && v.has_key?("$oid")
+ source[k] = Moped::BSON::ObjectId.from_string(v["$oid"])
+ end
end
+ else
+ source.each do |k,v|
+ if v.is_a?(Hash) && v.has_key?("$oid")
+ source[k] = BSON::ObjectId.from_string(v["$oid"])
+ end
+ end
end
begin
m = klass.new(h.merge(source))
+ if defined?(Moped::BSON)
+ m.id = Moped::BSON::ObjectId.from_string(h['_id'])
+ else
+ m.id = BSON::ObjectId.from_string(h['_id'])
+ end
rescue Mongoid::Errors::UnknownAttribute
klass.class_eval <<-RUBY, __FILE__, __LINE__+1
attr_accessor :_type, :_score, :_source
RUBY
m = klass.new(h.merge(source))