Sha256: 66af5d99a915d013fcf7a3e85f65bf5183c1fad733a0e917f8a4511fe8c0a16e

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

module EVEApi
  class Client
    attr_accessor :connection
    attr_accessor :key_id
    attr_accessor :vcode
    attr_accessor :character_id
    attr_accessor :row_count

    def initialize(key_id=nil, vcode=nil, character_id=nil)
      @connection ||= Excon.new(API_ENDPOINT)
      @key_id = key_id
      @character_id = character_id
      @vcode = vcode
    end

    def check_path(name)
      parts = name.to_s.split('_')
      return '' if parts.count < 2
      "/#{parts[0]}/#{parts[1..-1].join('_').camelize}.xml.aspx"
    end

    def params
      { 'rowCount' => row_count, 'keyID' => key_id, 'vCode' => vcode, 'characterID' => character_id }.select { |k,v| v }
    end

    def api_methods
      api_call_list[:methods].map { |m| m['type'][0..3].downcase + '_' + m['name'].underscore }
    end

    def method_missing(name, *args, &block)
      raise 'Invalid Method Name' if check_path(name).empty?
      check_path(name)
      request = EVEApi::Request.new @connection.get(path: check_path(name), query: params)
      request.result
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eveapi-0.0.1.pre lib/eveapi/client.rb