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



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_one_and_update(
    { _id: record.id },
    { "$inc" => { field => step_size } },
    return_document: :after,
  )

  result[field.to_s]
end