Class: Gera::DirectionRatesRepository
- Inherits:
-
Object
- Object
- Gera::DirectionRatesRepository
- Defined in:
- lib/gera/repositories/direction_rates_repository.rb
Constant Summary collapse
- FinitRateNotFound =
Class.new StandardError
- NoActualSnapshot =
Class.new StandardError
Instance Method Summary collapse
- #all ⇒ Object
- #find_by_direction(direction) ⇒ Object
- #find_direction_rate_by_exchange_rate_id(er_id) ⇒ Object
- #get_by_direction(direction) ⇒ Object
- #get_matrix ⇒ Object
- #snapshot ⇒ Object
Instance Method Details
#all ⇒ Object
10 11 12 |
# File 'lib/gera/repositories/direction_rates_repository.rb', line 10 def all snapshot.direction_rates end |
#find_by_direction(direction) ⇒ Object
18 19 20 |
# File 'lib/gera/repositories/direction_rates_repository.rb', line 18 def find_by_direction direction get_by_direction direction end |
#find_direction_rate_by_exchange_rate_id(er_id) ⇒ Object
14 15 16 |
# File 'lib/gera/repositories/direction_rates_repository.rb', line 14 def find_direction_rate_by_exchange_rate_id er_id rates_by_exchange_rate_id[er_id] || raise(FinitRateNotFound, "No DirectionRate for exchange_rate_id=#{er_id} in direction_rate_snapshot_id=#{snapshot.id}") end |
#get_by_direction(direction) ⇒ Object
22 23 24 |
# File 'lib/gera/repositories/direction_rates_repository.rb', line 22 def get_by_direction direction get_matrix.fetch(direction.ps_from_id, {}).fetch(direction.ps_to_id, nil) end |
#get_matrix ⇒ Object
26 27 28 |
# File 'lib/gera/repositories/direction_rates_repository.rb', line 26 def get_matrix @matrix ||= build_matrix end |
#snapshot ⇒ Object
6 7 8 |
# File 'lib/gera/repositories/direction_rates_repository.rb', line 6 def snapshot @snapshot ||= DirectionRateSnapshot.last || raise(NoActualSnapshot, "No actual DirectionRate snapshot") end |