Class: Gera::DirectionRatesRepository

Inherits:
Object
  • Object
show all
Defined in:
lib/gera/repositories/direction_rates_repository.rb

Constant Summary collapse

FinitRateNotFound =
Class.new StandardError
NoActualSnapshot =
Class.new StandardError

Instance Method Summary collapse

Instance Method Details

#allObject



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_matrixObject



26
27
28
# File 'lib/gera/repositories/direction_rates_repository.rb', line 26

def get_matrix
  @matrix ||= build_matrix
end

#snapshotObject



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