Module: Gummi::DbLayer::Document

Extended by:
ActiveSupport::Concern
Defined in:
lib/gummi/db_layer/document.rb,
lib/gummi/db_layer/document/object.rb,
lib/gummi/db_layer/document/attributes.rb,
lib/gummi/db_layer/document/search/raw.rb,
lib/gummi/db_layer/document/search/result.rb,
lib/gummi/db_layer/document/search/filtered.rb,
lib/gummi/db_layer/document/search/searching.rb

Defined Under Namespace

Modules: Attributes, ClassMethods, Object, Search

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#idObject

–––––––––––––––– Instance Methods ––––––––––––––––



216
217
218
# File 'lib/gummi/db_layer/document.rb', line 216

def id
  @id
end

#versionObject

Returns the value of attribute version.



217
218
219
# File 'lib/gummi/db_layer/document.rb', line 217

def version
  @version
end

Instance Method Details

#create(method = :create) ⇒ Object

–––––––––––––––––––––– Public Persistence API ––––––––––––––––––––––

Raises:

  • (ArgumentError)


223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
# File 'lib/gummi/db_layer/document.rb', line 223

def create(method = :create)
  attributes = self.attributes
  if parent_id_attribute_name && parent_id = self.send(parent_id_attribute_name)
    options = { parent: parent_id }
  else
    options = {}
  end
  raise ArgumentError unless [:create, :index].include?(method)
  opts = options.merge(index: index.name, type: document_type, id: self.id, body: attributes)
  response = ActiveSupport::Notifications.instrument "search.elasticsearch", name: "Document#create(#{method})", search: opts do
    Hashie::Mash.new client.send(method, opts)
  end
  if response.created
    self.id      = response._id
    self.version = response._version
    true
  else
    false
  end
end

#overwriteObject



244
245
246
# File 'lib/gummi/db_layer/document.rb', line 244

def overwrite
  create :index
end