neweden 0.0.2 → 0.1.0
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/Gemfile +1 -2
- data/Gemfile.lock +3 -4
- data/VERSION +1 -1
- data/init.rb +2 -1
- data/lib/hash_extensions.rb +62 -0
- data/lib/neweden.rb +22 -23
- data/lib/string_extensions.rb +11 -0
- data/neweden.gemspec +21 -24
- metadata +24 -73
data/Gemfile
CHANGED
@@ -3,8 +3,6 @@ source "http://rubygems.org"
|
|
3
3
|
gem "typhoeus"
|
4
4
|
gem "nokogiri"
|
5
5
|
gem "json"
|
6
|
-
gem "awesome_print"
|
7
|
-
gem "active_support"
|
8
6
|
|
9
7
|
# Add dependencies to develop your gem here.
|
10
8
|
# Include everything needed to run rake, tests, features, etc.
|
@@ -12,4 +10,5 @@ group :development do
|
|
12
10
|
gem "shoulda-context"
|
13
11
|
gem "bundler"
|
14
12
|
gem "jeweler"
|
13
|
+
gem "awesome_print"
|
15
14
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
active_support (3.0.0)
|
5
|
-
activesupport (= 3.0.0)
|
6
|
-
activesupport (3.0.0)
|
7
4
|
awesome_print (1.0.2)
|
8
5
|
git (1.2.5)
|
9
6
|
jeweler (1.8.3)
|
10
7
|
bundler (~> 1.0)
|
11
8
|
git (>= 1.2.5)
|
12
9
|
rake
|
10
|
+
rdoc
|
13
11
|
json (1.6.6)
|
14
12
|
mime-types (1.18)
|
15
13
|
nokogiri (1.5.2)
|
16
14
|
rake (0.9.2.2)
|
15
|
+
rdoc (3.12)
|
16
|
+
json (~> 1.4)
|
17
17
|
shoulda-context (1.0.0)
|
18
18
|
typhoeus (0.3.3)
|
19
19
|
mime-types
|
@@ -22,7 +22,6 @@ PLATFORMS
|
|
22
22
|
ruby
|
23
23
|
|
24
24
|
DEPENDENCIES
|
25
|
-
active_support
|
26
25
|
awesome_print
|
27
26
|
bundler
|
28
27
|
jeweler
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/init.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
require 'typhoeus'
|
2
2
|
require 'nokogiri'
|
3
3
|
require 'awesome_print'
|
4
|
-
require 'active_support/core_ext/hash/conversions'
|
5
4
|
|
5
|
+
require File.join(File.dirname(__FILE__), 'lib', 'string_extensions')
|
6
|
+
require File.join(File.dirname(__FILE__), 'lib', 'hash_extensions')
|
6
7
|
require File.join(File.dirname(__FILE__), 'lib', 'neweden', 'errors')
|
7
8
|
require File.join(File.dirname(__FILE__), 'lib', 'neweden', 'account')
|
8
9
|
require File.join(File.dirname(__FILE__), 'lib', 'neweden', 'api')
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# USAGE: Hash.from_xml:(YOUR_XML_STRING)
|
2
|
+
# modified from http://stackoverflow.com/questions/1230741/convert-a-nokogiri-document-to-a-ruby-hash/1231297#1231297
|
3
|
+
# Thanks to Dmitry Mozzherin (https://gist.github.com/335286)
|
4
|
+
class Hash
|
5
|
+
class << self
|
6
|
+
def from_xml(xml_io)
|
7
|
+
begin
|
8
|
+
result = Nokogiri::XML(xml_io)
|
9
|
+
return { result.root.name.to_sym => xml_node_to_hash(result.root)}
|
10
|
+
rescue Exception => e
|
11
|
+
# raise your custom exception here
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def xml_node_to_hash(node)
|
16
|
+
# If we are at the root of the document, start the hash
|
17
|
+
if node.element?
|
18
|
+
result_hash = {}
|
19
|
+
if node.attributes != {}
|
20
|
+
result_hash[:attributes] = {}
|
21
|
+
node.attributes.keys.each do |key|
|
22
|
+
result_hash[:attributes][node.attributes[key].name.to_sym] = prepare(node.attributes[key].value)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
if node.children.size > 0
|
26
|
+
node.children.each do |child|
|
27
|
+
result = xml_node_to_hash(child)
|
28
|
+
|
29
|
+
if child.name == "text"
|
30
|
+
unless child.next_sibling || child.previous_sibling
|
31
|
+
return prepare(result)
|
32
|
+
end
|
33
|
+
elsif result_hash[child.name.to_sym]
|
34
|
+
if result_hash[child.name.to_sym].is_a?(Object::Array)
|
35
|
+
result_hash[child.name.to_sym] << prepare(result)
|
36
|
+
else
|
37
|
+
result_hash[child.name.to_sym] = [result_hash[child.name.to_sym]] << prepare(result)
|
38
|
+
end
|
39
|
+
else
|
40
|
+
result_hash[child.name.to_sym] = prepare(result)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
return result_hash
|
45
|
+
else
|
46
|
+
return result_hash
|
47
|
+
end
|
48
|
+
else
|
49
|
+
return prepare(node.content.to_s)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def prepare(data)
|
54
|
+
(data.class == String && data.to_i.to_s == data) ? data.to_i : data
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def to_struct(struct_name)
|
59
|
+
Struct.new(struct_name,*keys).new(*values)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
data/lib/neweden.rb
CHANGED
@@ -26,7 +26,7 @@ class NewEden
|
|
26
26
|
def request(endpoint, method = :post, params = {})
|
27
27
|
xml = handle_response(raw_request(endpoint, method, params))
|
28
28
|
if xml
|
29
|
-
|
29
|
+
Hash.from_xml((xml/:eveapi/:result).to_s)[:result] # rescue raise XMLParsingError, "No result in set"
|
30
30
|
else
|
31
31
|
raise XMLParsingError, "No XML parsed successfully"
|
32
32
|
end
|
@@ -109,26 +109,25 @@ class NewEden
|
|
109
109
|
endpoint.strip.gsub(/^\/+/, '')
|
110
110
|
end
|
111
111
|
|
112
|
-
def symbolize_keys(myhash)
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
end
|
112
|
+
# def symbolize_keys(myhash)
|
113
|
+
# myhash.keys.each do |key|
|
114
|
+
# if myhash[key].kind_of?(Hash)
|
115
|
+
# symbolize_keys(myhash[key])
|
116
|
+
# elsif myhash[key].kind_of?(Array)
|
117
|
+
# myhash[key].each do |element|
|
118
|
+
# symbolize_keys(element) if element.kind_of?(Hash)
|
119
|
+
# end
|
120
|
+
# elsif myhash[key].is_a?(String)
|
121
|
+
# if myhash[key].strip =~ /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/
|
122
|
+
# myhash[key] = DateTime.parse(myhash[key]).to_time
|
123
|
+
# elsif myhash[key].strip =~ /^\d+$/
|
124
|
+
# myhash[key] = myhash[key].to_i
|
125
|
+
# elsif myhash[key].strip =~ /^\d+\.\d+$/
|
126
|
+
# myhash[key] = myhash[key].to_f
|
127
|
+
# end
|
128
|
+
# end
|
129
|
+
# end
|
130
|
+
|
131
|
+
# myhash
|
132
|
+
# end
|
134
133
|
end
|
data/neweden.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{neweden}
|
8
|
-
s.version = "0.0
|
8
|
+
s.version = "0.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = [%q{Jason Adams}]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2012-04-29}
|
13
13
|
s.email = %q{jasonmadams@gmail.com}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE.txt",
|
@@ -23,6 +23,8 @@ Gem::Specification.new do |s|
|
|
23
23
|
"README.md",
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
|
+
"init.rb",
|
27
|
+
"lib/hash_extensions.rb",
|
26
28
|
"lib/neweden.rb",
|
27
29
|
"lib/neweden/account.rb",
|
28
30
|
"lib/neweden/api.rb",
|
@@ -33,6 +35,7 @@ Gem::Specification.new do |s|
|
|
33
35
|
"lib/neweden/image.rb",
|
34
36
|
"lib/neweden/map.rb",
|
35
37
|
"lib/neweden/server.rb",
|
38
|
+
"lib/string_extensions.rb",
|
36
39
|
"neweden.gemspec",
|
37
40
|
"test/.gitignore",
|
38
41
|
"test/config/.keep",
|
@@ -43,43 +46,37 @@ Gem::Specification.new do |s|
|
|
43
46
|
s.homepage = %q{http://github.com/ealdent/neweden}
|
44
47
|
s.licenses = [%q{MIT}]
|
45
48
|
s.require_paths = [%q{lib}]
|
46
|
-
s.rubygems_version = %q{1.8.
|
49
|
+
s.rubygems_version = %q{1.8.7}
|
47
50
|
s.summary = %q{Ruby library for accessing Eve Online API}
|
48
51
|
|
49
52
|
if s.respond_to? :specification_version then
|
50
53
|
s.specification_version = 3
|
51
54
|
|
52
55
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
53
|
-
s.add_runtime_dependency(%q<typhoeus>, ["
|
54
|
-
s.add_runtime_dependency(%q<nokogiri>, ["
|
56
|
+
s.add_runtime_dependency(%q<typhoeus>, [">= 0"])
|
57
|
+
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
55
58
|
s.add_runtime_dependency(%q<json>, [">= 0"])
|
56
|
-
s.add_runtime_dependency(%q<awesome_print>, [">= 0"])
|
57
|
-
s.add_runtime_dependency(%q<active_support>, ["= 3.0.0"])
|
58
59
|
s.add_development_dependency(%q<shoulda-context>, [">= 0"])
|
59
|
-
s.add_development_dependency(%q<bundler>, ["
|
60
|
-
s.add_development_dependency(%q<jeweler>, ["
|
61
|
-
s.add_development_dependency(%q<
|
60
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
61
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
62
|
+
s.add_development_dependency(%q<awesome_print>, [">= 0"])
|
62
63
|
else
|
63
|
-
s.add_dependency(%q<typhoeus>, ["
|
64
|
-
s.add_dependency(%q<nokogiri>, ["
|
64
|
+
s.add_dependency(%q<typhoeus>, [">= 0"])
|
65
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
65
66
|
s.add_dependency(%q<json>, [">= 0"])
|
66
|
-
s.add_dependency(%q<awesome_print>, [">= 0"])
|
67
|
-
s.add_dependency(%q<active_support>, ["= 3.0.0"])
|
68
67
|
s.add_dependency(%q<shoulda-context>, [">= 0"])
|
69
|
-
s.add_dependency(%q<bundler>, ["
|
70
|
-
s.add_dependency(%q<jeweler>, ["
|
71
|
-
s.add_dependency(%q<
|
68
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
69
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
70
|
+
s.add_dependency(%q<awesome_print>, [">= 0"])
|
72
71
|
end
|
73
72
|
else
|
74
|
-
s.add_dependency(%q<typhoeus>, ["
|
75
|
-
s.add_dependency(%q<nokogiri>, ["
|
73
|
+
s.add_dependency(%q<typhoeus>, [">= 0"])
|
74
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
76
75
|
s.add_dependency(%q<json>, [">= 0"])
|
77
|
-
s.add_dependency(%q<awesome_print>, [">= 0"])
|
78
|
-
s.add_dependency(%q<active_support>, ["= 3.0.0"])
|
79
76
|
s.add_dependency(%q<shoulda-context>, [">= 0"])
|
80
|
-
s.add_dependency(%q<bundler>, ["
|
81
|
-
s.add_dependency(%q<jeweler>, ["
|
82
|
-
s.add_dependency(%q<
|
77
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
78
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
79
|
+
s.add_dependency(%q<awesome_print>, [">= 0"])
|
83
80
|
end
|
84
81
|
end
|
85
82
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neweden
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-29 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: typhoeus
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &2165648160 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
24
|
+
version_requirements: *2165648160
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: nokogiri
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &2165647680 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ! '>='
|
@@ -37,47 +32,10 @@ dependencies:
|
|
37
32
|
version: '0'
|
38
33
|
type: :runtime
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
35
|
+
version_requirements: *2165647680
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: json
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
54
|
-
type: :runtime
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: awesome_print
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ! '>='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
70
|
-
type: :runtime
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ! '>='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: active_support
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &2165647200 !ruby/object:Gem::Requirement
|
81
39
|
none: false
|
82
40
|
requirements:
|
83
41
|
- - ! '>='
|
@@ -85,15 +43,10 @@ dependencies:
|
|
85
43
|
version: '0'
|
86
44
|
type: :runtime
|
87
45
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
46
|
+
version_requirements: *2165647200
|
94
47
|
- !ruby/object:Gem::Dependency
|
95
48
|
name: shoulda-context
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &2165646720 !ruby/object:Gem::Requirement
|
97
50
|
none: false
|
98
51
|
requirements:
|
99
52
|
- - ! '>='
|
@@ -101,15 +54,10 @@ dependencies:
|
|
101
54
|
version: '0'
|
102
55
|
type: :development
|
103
56
|
prerelease: false
|
104
|
-
version_requirements:
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
57
|
+
version_requirements: *2165646720
|
110
58
|
- !ruby/object:Gem::Dependency
|
111
59
|
name: bundler
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirement: &2165646240 !ruby/object:Gem::Requirement
|
113
61
|
none: false
|
114
62
|
requirements:
|
115
63
|
- - ! '>='
|
@@ -117,15 +65,10 @@ dependencies:
|
|
117
65
|
version: '0'
|
118
66
|
type: :development
|
119
67
|
prerelease: false
|
120
|
-
version_requirements:
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ! '>='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
68
|
+
version_requirements: *2165646240
|
126
69
|
- !ruby/object:Gem::Dependency
|
127
70
|
name: jeweler
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirement: &2165645760 !ruby/object:Gem::Requirement
|
129
72
|
none: false
|
130
73
|
requirements:
|
131
74
|
- - ! '>='
|
@@ -133,12 +76,18 @@ dependencies:
|
|
133
76
|
version: '0'
|
134
77
|
type: :development
|
135
78
|
prerelease: false
|
136
|
-
version_requirements:
|
79
|
+
version_requirements: *2165645760
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: awesome_print
|
82
|
+
requirement: &2165645280 !ruby/object:Gem::Requirement
|
137
83
|
none: false
|
138
84
|
requirements:
|
139
85
|
- - ! '>='
|
140
86
|
- !ruby/object:Gem::Version
|
141
87
|
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *2165645280
|
142
91
|
description:
|
143
92
|
email: jasonmadams@gmail.com
|
144
93
|
executables: []
|
@@ -155,6 +104,7 @@ files:
|
|
155
104
|
- Rakefile
|
156
105
|
- VERSION
|
157
106
|
- init.rb
|
107
|
+
- lib/hash_extensions.rb
|
158
108
|
- lib/neweden.rb
|
159
109
|
- lib/neweden/account.rb
|
160
110
|
- lib/neweden/api.rb
|
@@ -165,6 +115,7 @@ files:
|
|
165
115
|
- lib/neweden/image.rb
|
166
116
|
- lib/neweden/map.rb
|
167
117
|
- lib/neweden/server.rb
|
118
|
+
- lib/string_extensions.rb
|
168
119
|
- neweden.gemspec
|
169
120
|
- test/.gitignore
|
170
121
|
- test/config/.keep
|
@@ -186,7 +137,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
137
|
version: '0'
|
187
138
|
segments:
|
188
139
|
- 0
|
189
|
-
hash: -
|
140
|
+
hash: -2197534164960895585
|
190
141
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
142
|
none: false
|
192
143
|
requirements:
|
@@ -195,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
195
146
|
version: '0'
|
196
147
|
requirements: []
|
197
148
|
rubyforge_project:
|
198
|
-
rubygems_version: 1.8.
|
149
|
+
rubygems_version: 1.8.7
|
199
150
|
signing_key:
|
200
151
|
specification_version: 3
|
201
152
|
summary: Ruby library for accessing Eve Online API
|