Class: Elastictastic::DiscretePersistenceStrategy

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/elastictastic/discrete_persistence_strategy.rb

Constant Summary collapse

DEFAULT_HANDLER =
proc { |e| raise(e) if e }

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#auto_refreshObject

Returns the value of attribute auto_refresh.



9
10
11
# File 'lib/elastictastic/discrete_persistence_strategy.rb', line 9

def auto_refresh
  @auto_refresh
end

Instance Method Details

#create(doc, &block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/elastictastic/discrete_persistence_strategy.rb', line 11

def create(doc, &block)
  block ||= DEFAULT_HANDLER
  begin
    response = Elastictastic.client.create(
      doc.index,
      doc.class.type,
      doc.id,
      doc.elasticsearch_doc,
      params_for(doc)
    )
  rescue => e
    return block.call(e)
  end
  doc.id = response['_id']
  doc.version = response['_version']
  doc.persisted!
  block.call
end

#destroy(doc, &block) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/elastictastic/discrete_persistence_strategy.rb', line 48

def destroy(doc, &block)
  block ||= DEFAULT_HANDLER
  begin
    response = Elastictastic.client.delete(
      doc.index.name,
      doc.class.type,
      doc.id,
      params_for(doc)
    )
  rescue => e
    return block.call(e)
  end
  doc.transient!
  block.call
  response['found']
end

#update(doc, &block) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/elastictastic/discrete_persistence_strategy.rb', line 30

def update(doc, &block)
  block ||= DEFAULT_HANDLER
  begin
    response = Elastictastic.client.update(
      doc.index,
      doc.class.type,
      doc.id,
      doc.elasticsearch_doc,
      params_for(doc)
    )
  rescue => e
    return block.call(e)
  end
  doc.version = response['_version']
  doc.persisted!
  block.call
end