Sha256: cd1e7230ccdab90fc295d7ac0300236772af16df9ca2934ab8e46b696ca81f13

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

require 'faraday_middleware'
require 'mog/version'

module Mog
  class Client

    def initialize(options={})
      @api_endpoint = options[:api_endpoint] || 'http://api.mog.com'
      @user_agent = options[:user_agent] || "Mog RubyGem Version #{Mog::VERSION}"
      @adapter = options[:adapter] || Faraday.default_adapter
    end

    def tracks
      response = request('/v2/charts/tracks.json')
      response.tracks
    end

    def albums
      response = request('/v2/charts/albums.json')
      response.albums
    end

    def artists
      response = request('/v2/charts/artists.json')
      response.artists
    end

    def playlists
      response = request('/v2/charts/playlists.json')
      response.playlists
    end

    private

    # Perform an HTTP GET request
    def request(url, params={})
      response = connection.get do |req|
        req.url url, params
      end
      response.body
    end

    def connection
      options = {
        :headers => {'Accept' => "application/json", 'User-Agent' => @user_agent},
        :url => @api_endpoint,
      }

      Faraday.new(options) do |builder|
        builder.use Faraday::Response::Rashify
        builder.use Faraday::Response::ParseJson
        builder.adapter(@adapter)
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mog-0.0.1 lib/mog/client.rb