Module: Gera::CurrencyRateModeBuilderSupport
- Included in:
- CurrencyRateMode
- Defined in:
- app/models/concerns/gera/currency_rate_mode_builder_support.rb
Instance Method Summary collapse
- #build_currency_rate ⇒ Object
- #build_currency_rate! ⇒ Object
- #build_result ⇒ Object
- #builder ⇒ Object
Instance Method Details
#build_currency_rate ⇒ Object
5 6 7 8 9 |
# File 'app/models/concerns/gera/currency_rate_mode_builder_support.rb', line 5 def build_currency_rate @currency_rate ||= build_currency_rate! rescue CurrencyRateBuilder::Error nil end |
#build_currency_rate! ⇒ Object
15 16 17 18 19 |
# File 'app/models/concerns/gera/currency_rate_mode_builder_support.rb', line 15 def build_currency_rate! raise build_result.error if build_result.error? build_result.currency_rate end |
#build_result ⇒ Object
11 12 13 |
# File 'app/models/concerns/gera/currency_rate_mode_builder_support.rb', line 11 def build_result @result ||= builder.build_currency_rate end |
#builder ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/models/concerns/gera/currency_rate_mode_builder_support.rb', line 21 def builder case mode when 'auto' CurrencyRateAutoBuilder.new currency_pair: currency_pair when 'cross' CurrencyRateCrossBuilder.new currency_pair: currency_pair, cross_rate_modes: cross_rate_modes else source = RateSource.find_by_key(mode) raise "not supported mode #{mode} for #{currency_pair}" unless source.present? CurrencyRateDirectBuilder.new currency_pair: currency_pair, source: source end end |