Sha256: cd7ce89b1bd109f6aa67474ccbcc8b1da22e668c3f63f78cfc39134e861d697c

Contents?: true

Size: 756 Bytes

Versions: 1

Compression:

Stored size: 756 Bytes

Contents

module VkontakteApi
  module API
    BASE_HOST = 'https://api.vkontakte.ru'
    BASE_URL  = '/method/'
    
    class << self
      def call(method_name, args = {}, &block)
        connection = Faraday.new(:url => BASE_HOST) do |builder|
          builder.adapter(VkontakteApi.adapter)
        end
        
        url = url_for(method_name, args)
        body = connection.get(url).body
        response = Yajl::Parser.parse(body, :symbolize_keys => true)
        
        if response.has_key?(:error)
          raise VkontakteApi::Error.new(response[:error])
        else
          response[:response]
        end
      end
    private
      def url_for(method_name, args)
        "#{BASE_URL}#{method_name}?#{args.to_param}"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vkontakte_api-0.1 lib/vkontakte_api/api.rb