Sha256: e2f4d33277bc8aebcbdda0f69dfa55d2429f576d2ccb7605c498986b7d1a1b8d

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

require 'simple_oauth'
require 'json'
require 'faraday'
require 'jtv/defaults'
require 'jtv/stream'
require 'jtv/user'
require 'jtv/channel'

module Jtv
  class Client
    include Jtv::Defaults
    include Jtv::Stream
    include Jtv::User
    include Jtv::Channel

    def initialize args = {}
      args.each do |key, value|
        send "#{key}=", value
      end
    end

    def get path, params = {}
      get_json :get, path, params
    end

  private

    def get_json method, path, params
      response = request(method, path, params)
      JSON.parse response[:body]
    end

    def request method, path, params
      connection.send method, path, params do |req|
        req.headers[:authorization] = req_header(method, path, params).to_s
      end.env
    end

    def connection
      @connection ||= Faraday.new 'https://api.twitch.tv/kraken', options
    end

    def req_header method, path, params
      uri = URI "http://api.justin.tv#{path}"
      SimpleOAuth::Header.new method, uri, params, credentials
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jtv-2.0.0 lib/jtv/client.rb