eaal 0.1.11 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/eaal.rb +1 -1
- data/lib/eaal/result.rb +20 -2
- data/test/test_eaal.rb +12 -0
- metadata +1 -1
data/lib/eaal.rb
CHANGED
@@ -34,7 +34,7 @@ require 'eaal/result'
|
|
34
34
|
require 'eaal/rowset'
|
35
35
|
|
36
36
|
module EAAL
|
37
|
-
VERSION = "0.1.
|
37
|
+
VERSION = "0.1.12" # fix for Hoe.spec 2.x
|
38
38
|
@@version_string = "EAAL" + VERSION # the version string, used as client name in http requests
|
39
39
|
|
40
40
|
@@api_base = "https://api.eveonline.com" # the url used as basis for all requests, you might want to use gatecamper url or a personal proxy instead
|
data/lib/eaal/result.rb
CHANGED
@@ -14,10 +14,11 @@ module EAAL
|
|
14
14
|
|
15
15
|
# Result Container class, ...
|
16
16
|
class ResultContainer
|
17
|
-
attr_accessor :container
|
17
|
+
attr_accessor :container, :attribs
|
18
18
|
|
19
19
|
def initialize
|
20
20
|
self.container = {}
|
21
|
+
self.attribs = {}
|
21
22
|
end
|
22
23
|
|
23
24
|
def add_element(key, val)
|
@@ -25,7 +26,11 @@ module EAAL
|
|
25
26
|
end
|
26
27
|
|
27
28
|
def method_missing(method, *args)
|
28
|
-
self.
|
29
|
+
if self.attribs.has_key?(method.id2name)
|
30
|
+
self.attribs[method.id2name]
|
31
|
+
else
|
32
|
+
self.container[method.id2name]
|
33
|
+
end
|
29
34
|
end
|
30
35
|
|
31
36
|
def to_hash
|
@@ -84,6 +89,9 @@ module EAAL
|
|
84
89
|
re = ResultElement.new(key, value)
|
85
90
|
if element.attributes.to_hash.length > 0
|
86
91
|
re.attribs.merge!(element.attributes.to_hash)
|
92
|
+
if re.value.respond_to?(:attribs)
|
93
|
+
re.value.attribs.merge!(element.attributes.to_hash)
|
94
|
+
end
|
87
95
|
end
|
88
96
|
end
|
89
97
|
re
|
@@ -105,6 +113,7 @@ module EAAL
|
|
105
113
|
elements = (xml/"eveapi/result").first.containers
|
106
114
|
elements.each {|element|
|
107
115
|
el = EAAL::Result::ResultElement.parse_element(prefix, element)
|
116
|
+
|
108
117
|
members << el.name
|
109
118
|
if el.kind_of? EAAL::Rowset::RowsetBase
|
110
119
|
values.merge!({el.name => el})
|
@@ -124,6 +133,15 @@ module EAAL
|
|
124
133
|
result.request_time = (xml/"eveapi/currentTime").first.inner_html
|
125
134
|
result.cached_until = (xml/"eveapi/cachedUntil").first.inner_html
|
126
135
|
values.each { |key,value|
|
136
|
+
# This class may have been set up with some missing keys if the original
|
137
|
+
# response that trigged its creation didn't contain certain elements
|
138
|
+
# For example, some CharacterSheets don't have an "allianceName" element
|
139
|
+
# if the character isn't in an alliance. This adds them if they're missing
|
140
|
+
if(!result.respond_to?("#{key}=".to_sym))
|
141
|
+
result.class.class_eval do
|
142
|
+
attr_accessor key.to_sym
|
143
|
+
end
|
144
|
+
end
|
127
145
|
result.send(key + "=", value)
|
128
146
|
}
|
129
147
|
result
|
data/test/test_eaal.rb
CHANGED
@@ -57,6 +57,18 @@ class TestEaal < Test::Unit::TestCase
|
|
57
57
|
assert_kind_of EAAL::Rowset::RowsetBase, @api.AllianceList.alliances.first.memberCorporations
|
58
58
|
end
|
59
59
|
|
60
|
+
# test for ApiKeyInfo.xml
|
61
|
+
def test_api_key
|
62
|
+
@api.scope = "account"
|
63
|
+
assert_equal @api.APIKeyInfo.key.characters.length, 1
|
64
|
+
assert_equal @api.APIKeyInfo.key.characters[0].characterID, '12345'
|
65
|
+
assert_equal @api.APIKeyInfo.key.characters[0].characterName, 'Tester'
|
66
|
+
assert_equal @api.APIKeyInfo.key.characters[0].corporationID, '45678'
|
67
|
+
assert_equal @api.APIKeyInfo.key.accessMask, '59760264'
|
68
|
+
assert_equal @api.APIKeyInfo.key.type, 'Character'
|
69
|
+
assert_equal @api.APIKeyInfo.key.expires, '2011-09-11 00:00:00'
|
70
|
+
end
|
71
|
+
|
60
72
|
# test for Standings.xml
|
61
73
|
def test_standings
|
62
74
|
@api.scope = "account"
|