Sha256: 8fb5ed9b34f86637766b611aa86720836dcb00c984a55a5171124055844d0c72

Contents?: true

Size: 665 Bytes

Versions: 1

Compression:

Stored size: 665 Bytes

Contents

# typed: strict

module LedgerGen
  class Posting
    extend T::Sig

    sig {void}
    def initialize
      @account = T.let('', String)
      @amount = T.let(nil, T.nilable(Numeric))
    end

    sig { params(account: String).returns(String) }
    def account(account)
      @account = account
    end

    sig { params(amount: Numeric).returns(T.nilable(Numeric)) }
    def amount(amount)
      @amount = amount
    end

    sig {returns(String)}
    def to_s
      "#{@account}  #{amount_string}"
    end

    sig {returns(String)}
    def amount_string
      if @amount.nil?
        ''
      else
        sprintf('$%0.2f', @amount)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ledger_gen-1.0.1 lib/ledger_gen/posting.rb