Class: JIJI::PeriodicallyRates

Inherits:
Hash
  • Object
show all
Includes:
Util::Model
Defined in:
lib/jiji/models.rb

Overview

一定期間のレートの集合

通貨ペアコード(:EURJPYのようなシンボル)をキーとしてJIJI::PeriodicallyRateを保持します。

rates = <省略>

#EURJPYのレートを取得。
rate = rates[:EURJPY] #=> JIJI::PeriodicallyRate

#bidレートの高値、安値を取得
bid = rate.bid
p bid.max
p bid.min

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Util::Model

#==, #===, #eql?, #hash

Constructor Details

#initialize(pair_infos, list = []) ⇒ PeriodicallyRates

コンストラクタ

pair_infos

通貨ペアの情報

list

初期データ



91
92
93
94
95
96
97
# File 'lib/jiji/models.rb', line 91

def initialize( pair_infos, list=[] ) #:nodoc:
  super()
  @pair_infos = pair_infos
  list.each {|rates|
    self << rates
  }
end

Instance Attribute Details

#end_timeObject

集計終了日時



117
118
119
# File 'lib/jiji/models.rb', line 117

def end_time
  @end_time
end

#pair_infosObject (readonly)

通貨ペアの情報(取引数量など)



113
114
115
# File 'lib/jiji/models.rb', line 113

def pair_infos
  @pair_infos
end

#start_timeObject

集計開始日時



115
116
117
# File 'lib/jiji/models.rb', line 115

def start_time
  @start_time
end

Instance Method Details

#<<(rates) ⇒ Object

JIJI::Ratesを追加し各値の四本値を再計算します。

rates

JIJI::Rates



100
101
102
103
104
105
106
107
108
# File 'lib/jiji/models.rb', line 100

def <<(rates)
  now = rates.time
  @start_time = now unless @start_time
  @end_time   = now
  rates.each_pair { |code,rate|
    self[code] = PeriodicallyRate.new unless key? code
    self[code] << rate
  }
end

#timeObject

:nodoc:



109
110
111
# File 'lib/jiji/models.rb', line 109

def time #:nodoc:
  @start_time
end