module CurrentPrice::Google::Client::OptionChain
Public Instance Methods
option_chain(ticker)
click to toggle source
# File lib/current-price/google/client/option_chain.rb, line 6 def option_chain(ticker) option_chain_serializer( ticker, request( "http://www.google.com/finance/option_chain?q=#{ticker}&output=json" ) ) end
Private Instance Methods
contracts_serialzer(contracts)
click to toggle source
# File lib/current-price/google/client/option_chain.rb, line 38 def contracts_serialzer(contracts) contracts.map{|contract| { :price => contract[:p], :bid => contract[:b], :ask => contract[:a], :close => contract[:c], :oi => contract[:oi], :volume => contract[:vol], :strike => contract[:strike], } } end
option_chain_detail_serializer(data)
click to toggle source
# File lib/current-price/google/client/option_chain.rb, line 30 def option_chain_detail_serializer(data) data_hash = eval(data.to_s) { :puts => contracts_serialzer( data_hash.fetch(:puts) ), :calls => contracts_serialzer( data_hash.fetch(:calls) ) } end
option_chain_serializer(ticker, data)
click to toggle source
# File lib/current-price/google/client/option_chain.rb, line 17 def option_chain_serializer(ticker, data) Hash[ eval(data.to_s).fetch(:expirations).map{ |expiry| month, day, year = expiry[:m], expiry[:d], expiry[:y] ["#{month}-#{day}-#{year}", option_chain_detail_serializer( request( "http://www.google.com/finance/option_chain?q=#{ticker}&expd=#{day}&expm=#{month}&expy=#{year}&output=json" ) )] } ] end