Class: EOAT::ZKApi

Inherits:
Object
  • Object
show all
Defined in:
lib/eoat/zk_api.rb

Overview

ZKApi class - call class. Collects user input, building a url request and passes it to the Request class. solo_kills = EOAT::ZKApi.new('solo').kills(:limit => 10) solo_kills.kills.entries.first.killID #=> "32966816"

Examples:

Get last 10 solo kills

Author:

Instance Method Summary collapse

Constructor Details

#initialize(*args, host: 'http://zkillboard.com') ⇒ ZKApi

Returns a new instance of ZKApi.

Parameters:

  • args (Array)

    the array of request parameters without value

  • host (String) (defaults to: 'http://zkillboard.com')

    the request host, default: https://zkillboard.com



12
13
14
15
# File 'lib/eoat/zk_api.rb', line 12

def initialize(*args, host: 'http://zkillboard.com')
  @host = host
  @uri_part = args.empty? ? '' : '/'.concat(args.join('/'))
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, cache: true, **kwargs) ⇒ Object

Create an request according to the method called. This is used to dynamically create api calls.



19
20
21
22
# File 'lib/eoat/zk_api.rb', line 19

def method_missing(method, cache: true, **kwargs)
  uri = create_uri(method.id2name, kwargs)
  EOAT::Request.new(@host, uri, EOAT::Result::EveType::Result).get(cache)
end

Instance Method Details

#create_uri(fake_method, **kwargs) ⇒ String

Collect all request parameters and combine it to query string.

Parameters:

  • fake_method (String)

    the name of missing method

  • kwargs (Hash)

    the keyword arguments

Returns:

  • (String)


28
29
30
31
# File 'lib/eoat/zk_api.rb', line 28

def create_uri(fake_method, **kwargs)
  @uri_part += kwargs ? kwargs.map {|k, v| "/#{k}/#{v}"}.join : ''
  "api/#{fake_method}#{@uri_part}/xml"
end