class Psei::Security

Public Class Methods

new(headers={}, parser=nil) click to toggle source
# File lib/psei/security.rb, line 3
def initialize(headers={}, parser=nil)
  @parser = parser || Psei::Parser.new(Psei::SOURCE_URL, headers)
  @parsed = @parser.process
  @formatter = Psei::Formatter.new
end

Public Instance Methods

date() click to toggle source
# File lib/psei/security.rb, line 22
def date
  Psei::Date.new(@parsed).get
end
symbols() click to toggle source
# File lib/psei/security.rb, line 9
def symbols
  securities_hash.keys
end
value(symbol) click to toggle source

Returns the data of a specific security

# File lib/psei/security.rb, line 18
def value symbol
  security symbol
end
values() click to toggle source
# File lib/psei/security.rb, line 13
def values
  symbols.collect{ |x| value x }
end

Private Instance Methods

find_by_symbol(symbol) click to toggle source
# File lib/psei/security.rb, line 28
def find_by_symbol symbol
  securities = securities_filter
  securities.detect{ |s| s['securitySymbol'] == symbol.to_s }
end
securities_array() click to toggle source
# File lib/psei/security.rb, line 43
def securities_array
  @sec_array ||= securities_filter.collect do |item| 
    [item['securitySymbol'], item['lastTradedPrice'].to_f]
  end
end
securities_filter() click to toggle source
# File lib/psei/security.rb, line 33
def securities_filter
  @sec_filter ||= @parsed.reject do |x| 
    (Psei::INDEX_ALIASES).include?(x['securityAlias']) || x['securitySymbol'] == Psei::HEADING_ALIAS
  end
end
securities_hash() click to toggle source
# File lib/psei/security.rb, line 39
def securities_hash
  @sec_hash ||= Hash[securities_array]
end
security(sym) click to toggle source
# File lib/psei/security.rb, line 49
def security sym
  sec = securities_filter.select{|x| x['securitySymbol'] == sym }.first
  @formatter.process sec
end