Sha256: 0dd80be2c559ae6da36ee51a7888ce0ab7fc47617e1f3b1d454aecd100f6bc95

Contents?: true

Size: 796 Bytes

Versions: 4

Compression:

Stored size: 796 Bytes

Contents

require 'cymbal'
require 'yaml'

module Burglar
  # Default config file
  DEFAULT_CONFIG_FILE = '~/.burglar.yml'.freeze

  ##
  # Collection of banks
  class Heist
    def initialize(params = {})
      @options = load_options(params)
    end

    def banks
      @banks ||= @options[:banks].transform_values do |v|
        Burglar::Bank.new(@options.merge(v))
      end
    end

    def transactions
      @transactions ||= Ledger.new(
        entries: banks.map { |_, v| v.transactions.entries }.flatten.sort
      )
    end

    private

    def load_config(file)
      file ||= DEFAULT_CONFIG_FILE
      file = File.expand_path file
      Cymbal.symbolize YAML.safe_load(File.read(file))
    end

    def load_options(params)
      load_config(params[:config]).merge(params)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
burglar-0.3.2 lib/burglar/heist.rb
burglar-0.3.1 lib/burglar/heist.rb
burglar-0.3.0 lib/burglar/heist.rb
burglar-0.2.0 lib/burglar/heist.rb