Sha256: 2df24fa52e01c9adb131b85c69e59160db6d44a6cb66b6afeac4725739f39ebb

Contents?: true

Size: 826 Bytes

Versions: 1

Compression:

Stored size: 826 Bytes

Contents

module EVEApi
  class Request
    attr_accessor :data
    attr_accessor :result
    attr_accessor :response

    def initialize(response=nil)
      @response = response
      raise 'No such method' if response.status == 404
      @data = parse_xml
      @result = self.parse_result
      raise error if error
    end

    def error
      data['eveapi'].has_key?('error') ? data['eveapi']['error'] : false
    end

    def parse_xml
      Crack::XML.parse(response.body)
    end

    def parse_result
      begin
        data['eveapi']['result']['rowset']['row']
      rescue NoMethodError
        data['eveapi']['result']
      rescue TypeError
        {
          groups: data['eveapi']['result']['rowset'].first['row'],
          methods: data['eveapi']['result']['rowset'].last['row']
        }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

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