class MoneyTracking::Cli::Expenses

Public Instance Methods

create(amount, currency, *tags) click to toggle source
# File lib/money_tracking/cli.rb, line 31
def create(amount, currency, *tags)
  render CreateCommand.new(expense_factory, amount, currency, tags).call
end
delete(expense_id) click to toggle source
# File lib/money_tracking/cli.rb, line 52
def delete(expense_id)
  render DeleteCommand.new(expense_finder, expense_id).call
end
list() click to toggle source
# File lib/money_tracking/cli.rb, line 26
def list
  render ListCommand.new(expense_finder).call
end
update(expense_id) click to toggle source
# File lib/money_tracking/cli.rb, line 40
def update(expense_id)
  render UpdateCommand.new(
           expense_finder,
           expense_id,
           options.amount,
           options.currency,
           options.add_tags,
           options.rm_tags,
         ).call
end

Private Instance Methods

expense_factory() click to toggle source
# File lib/money_tracking/cli.rb, line 58
def expense_factory
  Domain::ExpenseFactory.new(store)
end
expense_finder() click to toggle source
# File lib/money_tracking/cli.rb, line 62
def expense_finder
  Domain::ExpenseFinder.new(store, expense_factory)
end
file_store_dir() click to toggle source
# File lib/money_tracking/cli.rb, line 70
def file_store_dir
  "#{user_home}/.money/expenses"
end
render(view) click to toggle source
# File lib/money_tracking/cli.rb, line 78
def render(view)
  puts view.to_s
end
store() click to toggle source
# File lib/money_tracking/cli.rb, line 66
def store
  @_store ||= DataStore::FileStore.new(file_store_dir)
end
user_home() click to toggle source
# File lib/money_tracking/cli.rb, line 74
def user_home
  ENV.fetch("TEST_HOME", ENV["HOME"])
end