Class: JIJI::PeriodicallyAgent

Inherits:
Object
  • Object
show all
Includes:
Agent
Defined in:
lib/jiji/agent/agent.rb

Overview

一定期間ごとに通知を受け取るエージェントの基底クラス。

Instance Attribute Summary

Attributes included from Agent

#logger, #operator, #output

Instance Method Summary collapse

Methods included from Agent

#description, #init, #properties, #properties=

Constructor Details

#initialize(period = 10) ⇒ PeriodicallyAgent

コンストラクタ

period

レートの通知を受け取る間隔(分)の初期値



121
122
123
124
125
# File 'lib/jiji/agent/agent.rb', line 121

def initialize( period=10 )
  @period = period
  @start = nil
  @rates = nil
end

Instance Method Details

#next_period_rates(rates) ⇒ Object

レート情報が通知されるメソッドです。

エージェントが動作している間順次呼び出されます。 このメソッドをオーバーライドして、シグナルの計算や取り引きを行うロジックを実装してください

rates

JIJI::PeriodicallyRates



145
146
# File 'lib/jiji/agent/agent.rb', line 145

def next_period_rates( rates )
end

#next_rates(rates) ⇒ Object



126
127
128
129
130
131
132
133
134
135
136
137
# File 'lib/jiji/agent/agent.rb', line 126

def next_rates( rates )
  @rates = PeriodicallyRates.new( rates.pair_infos ) unless @rates
  now = rates.time
  @start = now unless @start
  @rates << rates
  if ( now - @start ) > @period*60
    next_period_rates( @rates )
    @rates = PeriodicallyRates.new( rates.pair_infos )
    @rates.start_time = now
    @start = now
  end
end

#property_infosObject



138
139
140
# File 'lib/jiji/agent/agent.rb', line 138

def property_infos
  super() + [Property.new(:period, "レートの通知を受け取る間隔(分)", 10, :number)]
end