Class: MoneyTracking::Domain::Expense

Inherits:
Object
  • Object
show all
Defined in:
lib/money_tracking/domain/expense.rb

Defined Under Namespace

Classes: TagUpdate

Constant Summary collapse

SIMPLE_FIELDS =
%i[amount currency]

Instance Method Summary collapse

Constructor Details

#initialize(store, fields) ⇒ Expense

Returns a new instance of Expense.



6
7
8
9
10
# File 'lib/money_tracking/domain/expense.rb', line 6

def initialize(store, fields)
  @store = store
  @fields = fields
  @id = fields[:id]
end

Instance Method Details

#build_view(view_factory) ⇒ Object



30
31
32
# File 'lib/money_tracking/domain/expense.rb', line 30

def build_view(view_factory)
  view_factory.new(raw)
end

#createObject



12
13
14
15
16
# File 'lib/money_tracking/domain/expense.rb', line 12

def create
  set_created_at
  @id = store.create(raw)
  self
end

#deleteObject



25
26
27
28
# File 'lib/money_tracking/domain/expense.rb', line 25

def delete
  store.delete(id)
  self
end

#update(updated_fields) ⇒ Object



18
19
20
21
22
23
# File 'lib/money_tracking/domain/expense.rb', line 18

def update(updated_fields)
  simple_update(updated_fields)
  update_tags(updated_fields)
  store.update(id, raw)
  self
end