Sha256: 7a427752be75d6e65007e4f479a327c348d4ab67fed4c3af6678009f23916bab

Contents?: true

Size: 836 Bytes

Versions: 1

Compression:

Stored size: 836 Bytes

Contents

require 'faraday_middleware'

module GStock

  class NotFound < StandardError; end

  class << self

    def quote(symbol)
      resp = get('/ig/api', :stock => symbol).xml_api_reply.finance
      resp.each do |key, value|
        resp[key] = value.kind_of?(Hashie::Mash) ? value.data : value
      end
      resp.reject! { |key, value | value.blank? }
      raise NotFound.new if resp.has_value?('UNKNOWN EXCHANGE')
      resp
    end

    def get(url, params={})
      response = connection.get do |req|
        req.url url, params
      end
      response.body
    end

    def connection
      @conn ||= Faraday::Connection.new(:url => 'http://www.google.com') do |builder|
        builder.adapter :typhoeus
        builder.use Faraday::Response::ParseXml
        builder.use Faraday::Response::Mashify
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gstock-1.0.0 lib/gstock.rb