class Bvbg::Bvbg86Handler

Public Class Methods

accept?(parser) click to toggle source
# 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
new(parser) click to toggle source
# File lib/bvbg/bvbg86_handler.rb, line 2
def initialize(parser)
  @parser = parser
end

Public Instance Methods

all_lines() { |build_line(item)| ... } click to toggle source
# 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) click to toggle source
# 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

Protected Instance Methods

bd_or_nil(value) click to toggle source
# File lib/bvbg/bvbg86_handler.rb, line 41
def bd_or_nil(value)
  if not value.nil?
    return BigDecimal.new(value)
  end
end