Sha256: d12991c7aaedf9ef7e32173768742b8ed5072870ad065e5c9d77f200709b4a9d
Contents?: true
Size: 940 Bytes
Versions: 11
Compression:
Stored size: 940 Bytes
Contents
require 'genesis_ruby/errors/invalid_argument_error' require 'bigdecimal' module GenesisRuby module Utils module Money module Base # Base Conversion Strategy class class Strategy attr_accessor :amount, :currency, :currency_exponent # Class constructor def initialize(amount, currency, currency_exponent) @amount = parse_amount(amount) @currency = currency @currency_exponent = currency_exponent end # Convert Strategy method def convert raise NotImplementedError end protected # Validate and parse amount into BigDecimal def parse_amount(amount) BigDecimal(amount.to_s) rescue StandardError raise InvalidArgumentError, 'Invalid amount value given.' end end end end end end
Version data entries
11 entries across 11 versions & 1 rubygems