Class: Minidoc::Counters::Incrementor

Inherits:
Object
  • Object
show all
Defined in:
lib/minidoc/counters.rb

Instance Method Summary collapse

Constructor Details

#initialize(record, field) ⇒ Incrementor

Returns a new instance of Incrementor.



24
25
26
27
# File 'lib/minidoc/counters.rb', line 24

def initialize(record, field)
  @record = record
  @field = field
end

Instance Method Details

#increment(step_size = 1) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'lib/minidoc/counters.rb', line 29

def increment(step_size = 1)
  result = record.class.collection.find_and_modify(
    query: { _id: record.id },
    update: { "$inc" => { field => step_size } },
    new: true,
  )

  result[field.to_s]
end