Class: Bvbg::Bvbg86Handler

Inherits:
Object
  • Object
show all
Defined in:
lib/bvbg/bvbg86_handler.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parser) ⇒ Bvbg86Handler

Returns a new instance of Bvbg86Handler.



2
3
4
# File 'lib/bvbg/bvbg86_handler.rb', line 2

def initialize(parser)
  @parser = parser
end

Class Method Details

.accept?(parser) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
9
10
11
# File 'lib/bvbg/bvbg86_handler.rb', line 6

def self.accept?(parser)
  parser.for_tag(:BizGrpDtls).each do |file_type|
    return true if file_type[:BizGrpTp].include?("86")
  end
  false
end

Instance Method Details

#all_linesObject



13
14
15
16
17
# File 'lib/bvbg/bvbg86_handler.rb', line 13

def all_lines
  @parser.for_tag(:PricRpt).each do |item|
    yield build_line(item)
  end
end

#build_line(raw_item) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/bvbg/bvbg86_handler.rb', line 19

def build_line(raw_item)
  {
    name: raw_item[:SctyId][:TckrSymb],
    symbol: raw_item[:SctyId][:TckrSymb],
    close: raw_item[:FinInstrmAttrbts][:LastPric],
    date: Date.parse(raw_item[:TradDt][:Dt]),
    open: raw_item[:FinInstrmAttrbts][:FrstPric],
    high: raw_item[:FinInstrmAttrbts][:MaxPric],
    low: raw_item[:FinInstrmAttrbts][:MinPric],
    average: raw_item[:FinInstrmAttrbts][:TradAvrgPric],
    bid: raw_item[:FinInstrmAttrbts][:BestBidPric],
    ask: raw_item[:FinInstrmAttrbts][:BestAskPric],
    volume: raw_item[:FinInstrmAttrbts][:NtlFinVol],
    quantity: raw_item[:FinInstrmAttrbts][:FinInstrmQty],
    trades: raw_item[:TradDtls][:TradQty],
    adj_close: raw_item[:FinInstrmAttrbts][:OscnPctg],
    future_adj: raw_item[:FinInstrmAttrbts][:AdjstdValCtrct]
  }
end