class Series
Constants
- INTERVAL_OPTIONS
Public Class Methods
new(symbol, params, agent)
click to toggle source
# File lib/finviz_rails/series.rb, line 2 def initialize(symbol, params, agent) @symbol = symbol @params = params @agent = agent end
Public Instance Methods
run()
click to toggle source
# File lib/finviz_rails/series.rb, line 10 def run @agent.get(url) result end
Private Instance Methods
html()
click to toggle source
# File lib/finviz_rails/series.rb, line 45 def html @html ||= @agent.page.content end
interval()
click to toggle source
# File lib/finviz_rails/series.rb, line 49 def interval if @params["interval"] throw "incorrect interval type" unless INTERVAL_OPTIONS.include?(@params["interval"]) @params["interval"] else "d" end end
json()
click to toggle source
# File lib/finviz_rails/series.rb, line 37 def json @json ||= JSON.parse(json_string) end
json_string()
click to toggle source
# File lib/finviz_rails/series.rb, line 41 def json_string html.match(/var data = ({.*?})/)[1] end
result()
click to toggle source
# File lib/finviz_rails/series.rb, line 17 def result [ json["date"], json["volume"], json["open"], json["high"], json["low"], json["close"] ].transpose.map do |date, volume, open, close, high, low| { date: date, volume: volume, open: open, high: high, low: low, close: close } end end
url()
click to toggle source
# File lib/finviz_rails/series.rb, line 58 def url "http://elite.finviz.com/quote.ashx?t=TNET&ty=c&ta=2&p=#{interval}&b=1" end