eaal 0.1.7 → 0.1.8

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.
@@ -1,8 +1,8 @@
1
1
  == 0.1.7 2011-03-16
2
2
  * 1 fix:
3
- * should now work with current active_support / rails
3
+ * should now work with current active_support / rails
4
4
 
5
- == 0.1.6 2010-01-21
5
+ == 0.1.6 2010-01-21
6
6
  * 1 fix:
7
7
  * should now work with latest hpricot
8
8
 
@@ -3,7 +3,7 @@
3
3
 
4
4
  == DESCRIPTION:
5
5
 
6
- EAAL (Eve API Access Layer) is a ruby library for accessing data of the API of
6
+ EAAL (Eve API Access Layer) is a ruby library for accessing data of the API of
7
7
  the game Eve Online
8
8
 
9
9
  == FEATURES/PROBLEMS:
@@ -18,7 +18,7 @@ Initialize the API Object
18
18
 
19
19
  api = EAAL::API.new("my Userid", "my API key"[, "scope for requests"])
20
20
 
21
- the scope is the one used for the API requests,
21
+ the scope is the one used for the API requests,
22
22
  ex. account/char/corp/eve/map/server
23
23
  see http://wiki.eve-id.net/APIv2_Page_Index
24
24
  the scope can be changed during runtime and defaults to account
@@ -44,17 +44,17 @@ Example 2, getting the id for a given character name
44
44
 
45
45
  Example 3, Example 2 in short
46
46
  puts EAAL::Api.new("my userid", "my API key", "eve").CharacterID(:names => "Peter Powers").characters.name
47
-
47
+
48
48
 
49
49
  Errors returned by the EVE API are handled a bit unique,
50
- since i wanted to have them pretty much dynamic (so i dont need to hack EAAL
50
+ since i wanted to have them pretty much dynamic (so i dont need to hack EAAL
51
51
  whenever CCP adds a new Error) you have to use dynamic created classes to catch 'em
52
52
  (if you dont want to catch EAAL::Exception::EveAPIException in general)
53
53
  so what you do is:
54
54
 
55
55
  Example 4, catching a specific EVE API Exception
56
56
  begin
57
- api.Killlog("characterID" => "12345") #this example offcourse
57
+ api.Killlog("characterID" => "12345") #this example offcourse
58
58
  # assumes your not having the key for character 12345 loaded ;)
59
59
  rescue EAAL::Exception.EveAPIException(201)
60
60
  #dosomething
@@ -89,7 +89,7 @@ the XML file will be load.
89
89
  * sudo gem install eaal
90
90
 
91
91
  == THANKS:
92
- special thanks go to James "Ix_Forres" Harrison for his code cleanups and
92
+ special thanks go to James "Ix_Forres" Harrison for his code cleanups and
93
93
  his memcache cache handler
94
94
  thanks also go to Davide Rambaldi and Ian Delahorno who contributed
95
95
  several bug fixes.
@@ -3,7 +3,7 @@
3
3
  # This library is licensed under the terms found in
4
4
  # the LICENSE file distributed with it
5
5
  #
6
- # TODO:
6
+ # TODO:
7
7
  # - more documenation
8
8
  # - write tests (i know, i know, i fail badly)
9
9
  # - more error handling (im certain i missed a few possibles)
@@ -12,7 +12,7 @@
12
12
  # THANKS:
13
13
  # thanks go to all people on irc.coldfront.net, channel #eve-dev
14
14
  # special thanks go to lisa (checkout her eve api library, reve,
15
- # much more mature then mine) for answering my endless questions
15
+ # much more mature then mine) for answering my endless questions
16
16
  # about ruby stuff (and for one or two snippets i stole from reve)
17
17
  #++
18
18
  # Neat little hack to get around path issues on require
@@ -35,12 +35,12 @@ require 'eaal/result'
35
35
  require 'eaal/rowset'
36
36
  module EAAL
37
37
  mattr_reader :version_string
38
- VERSION = "0.1.7" # fix for Hoe.spec 2.x
38
+ VERSION = "0.1.8" # fix for Hoe.spec 2.x
39
39
  @@version_string = "EAAL" + VERSION # the version string, used as client name in http requests
40
-
40
+
41
41
  mattr_accessor :api_base, :additional_request_parameters, :cache
42
42
  @@api_base = "http://api.eve-online.com/" # the url used as basis for all requests, you might want to use gatecamper url or a personal proxy instead
43
- @@additional_request_parameters = {} # hash, if :key => value pairs are added those will be added to each request
43
+ @@additional_request_parameters = {} # hash, if :key => value pairs are added those will be added to each request
44
44
  @@cache = EAAL::Cache::NoCache.new # caching object, see EAAL::Cache::FileCache for an Example
45
45
  end
46
46
  require 'eaal/api'
@@ -1,37 +1,37 @@
1
1
 
2
2
  # EAAL::API class
3
3
  # Usage Example:
4
- # api = EAAL::API.new("my userid", "my API key")
4
+ # api = EAAL::API.new("my keyID", "my API key")
5
5
  # result = api.Characters
6
6
  # result.characters.each{|character|
7
7
  # puts character.name
8
8
  # }
9
9
  class EAAL::API
10
- attr_accessor :userid, :key, :scope
11
-
10
+ attr_accessor :keyid, :vcode, :scope
11
+
12
12
  # constructor
13
13
  # Expects:
14
- # * userid (String | Integer) the users id
15
- # * key (String) the apikey Full or Restricted
14
+ # * keyID (String | Integer) the keyID
15
+ # * vCode (String) the vCode
16
16
  # * scope (String) defaults to account
17
- def initialize(userid, key, scope="account")
18
- self.userid = userid.to_s
19
- self.key = key.to_s
17
+ def initialize(keyid, vcode, scope="account")
18
+ self.keyid = keyid.to_s
19
+ self.vcode = vcode.to_s
20
20
  self.scope = scope.to_s
21
21
  end
22
-
22
+
23
23
  # create an xml request according to the method called
24
- # this is used to dynamicaly create api calls and
24
+ # this is used to dynamicaly create api calls and
25
25
  # should usually not be called directly
26
- # * method (const)
27
- # * args
26
+ # * method (const)
27
+ # * args
28
28
  def method_missing(method, *args)
29
29
  scope = self.scope
30
30
  args_hash = args.first
31
31
  args_hash = {} unless args_hash
32
32
  self.request_xml(scope, method.id2name, args_hash)
33
33
  end
34
-
34
+
35
35
  # make a request to the api. will use cache if set.
36
36
  # usually not called by the user directly
37
37
  # * scope (String)
@@ -39,39 +39,43 @@ class EAAL::API
39
39
  # * opts (Hash)
40
40
  def request_xml(scope, name, opts)
41
41
  opts = EAAL.additional_request_parameters.merge(opts)
42
- xml = EAAL.cache.load(self.userid, self.key, scope, name,opts)
42
+ xml = EAAL.cache.load(self.keyid, self.vcode, scope, name,opts)
43
43
  if not xml
44
44
  source = URI.parse(EAAL.api_base + scope + '/' + name +'.xml.aspx')
45
45
  req_path = source.path + format_url_request(opts.merge({
46
- :userid => self.userid,
47
- :apikey => self.key}))
46
+ :keyid => self.keyid,
47
+ :vcode => self.vcode}))
48
48
  req = Net::HTTP::Get.new(req_path)
49
49
  req[EAAL.version_string]
50
- res = Net::HTTP.new(source.host, source.port).start {|http| http.request(req) } #one request for now
50
+ res = Net::HTTP.new(source.host, source.port).start {|http| http.request(req) } #one request for now
51
51
  case res
52
52
  when Net::HTTPOK
53
53
  when Net::HTTPNotFound
54
54
  raise EAAL::Exception::APINotFoundError.new("The requested API (#{scope} / #{name}) could not be found.")
55
- else
55
+ else
56
56
  raise EAAL::Exception::HTTPError.new("An HTTP Error occured, body: " + res.body)
57
57
  end
58
- EAAL.cache.save(self.userid, self.key, scope,name,opts, res.body)
58
+ EAAL.cache.save(self.keyid, self.vcode, scope,name,opts, res.body)
59
59
  xml = res.body
60
60
  end
61
61
  doc = Hpricot.XML(xml)
62
62
  result = EAAL::Result.new(scope.capitalize + name, doc)
63
63
  end
64
-
64
+
65
65
  # Turns a hash into ?var=baz&bam=boo
66
66
  # stolen from Reve (thx lisa)
67
67
  # * opts (Hash)
68
68
  def format_url_request(opts)
69
- req = "?"
69
+ req = ''
70
+
71
+ opts.delete_if {|k,v| v.nil? }
72
+ return req if opts.empty?
73
+
70
74
  opts.stringify_keys!
71
- opts.keys.sort.each do |key|
72
- req += "#{CGI.escape(key.to_s)}=#{CGI.escape(opts[key].to_s)}&" if opts[key]
75
+ opts = opts.keys.sort.map do |key|
76
+ "#{CGI.escape(key.to_s)}=#{CGI.escape(opts[key].to_s)}"
73
77
  end
74
- req.chop # We are lazy and append a & to each pair even if it's the last one. FIXME: Don't do this.
78
+ req = '?' + opts.join('&')
75
79
  end
76
80
 
77
81
  end
@@ -21,7 +21,7 @@ module EAAL
21
21
  def save(userid, apikey, scope, name, args, xml)
22
22
  end
23
23
  end
24
-
24
+
25
25
  end
26
26
  end
27
27
 
@@ -6,27 +6,27 @@
6
6
  # EAAL.cache = EAAL::Cache::FileCache.new("/path/to/place/to/store/xml/data")
7
7
  class EAAL::Cache::FileCache
8
8
  attr_accessor :basepath
9
-
9
+
10
10
  # constructor, takes one argument which is the path
11
11
  # where files should be written
12
12
  # * basepath (String) path which should be used to store cached data. defaults to $HOME/.eaal/cache/
13
13
  def initialize(basepath = "#{ENV['HOME']}/.eaal/cache")
14
14
  if basepath[(basepath.length) -1, basepath.length] != "/"
15
- basepath += "/"
15
+ basepath += "/"
16
16
  end
17
17
  @basepath = basepath
18
18
  end
19
-
19
+
20
20
  # create the path/filename for the cache file
21
21
  def filename(userid, apikey, scope, name, args)
22
22
  ret =""
23
23
  args.delete_if { |k,v| (v || "").to_s.length == 0 }
24
24
  h = args.stringify_keys
25
- ret += h.sort.flatten.collect{ |e| e.to_s }.join(':')
26
- hash = ret.gsub(/:$/,'')
25
+ ret += h.sort.flatten.collect{ |e| e.to_s }.join('_')
26
+ hash = ret.gsub(/_$/,'')
27
27
  "#{@basepath}#{userid}/#{apikey}/#{scope}/#{name}/Request_#{hash}.xml"
28
28
  end
29
-
29
+
30
30
  # load xml if available, return false if not available, or cachedUntil ran out
31
31
  def load(userid, apikey, scope, name, args)
32
32
  filename = self.filename(userid, apikey,scope,name,args)
@@ -42,21 +42,23 @@ class EAAL::Cache::FileCache
42
42
  end
43
43
  ret
44
44
  end
45
-
45
+
46
46
  # validate cached datas cachedUntil
47
47
  def validate_cache(xml, name)
48
48
  doc = Hpricot.XML(xml)
49
+ cached_until = (doc/"/eveapi/cachedUntil").inner_html.to_time
49
50
  if name == "WalletJournal"
50
- Time.at((doc/"/eveapi/cachedUntil").inner_html.to_time.to_i + 3600) > Time.now
51
- else
52
- (doc/"/eveapi/cachedUntil").inner_html.to_time > Time.now
51
+ result = Time.at(cached_until.to_i + 3600) > Time.now.utc
52
+ else
53
+ result = cached_until > Time.now.utc
53
54
  end
55
+ result
54
56
  end
55
-
57
+
56
58
  # save xml data to file
57
59
  def save(userid, apikey, scope, name, args, xml)
58
60
  filename = self.filename(userid, apikey,scope,name,args)
59
61
  FileUtils.mkdir_p(File.dirname(filename))
60
- File.open(filename,'w') { |f| f.print xml }
62
+ File.open(filename,'wb') { |f| f.print xml }
61
63
  end
62
64
  end
@@ -6,7 +6,7 @@
6
6
  module EAAL::Exception
7
7
  # creates the class for an EveAPIException
8
8
  def self.EveAPIException(nr)
9
- classname = "EveAPIException#{nr}"
9
+ classname = "EveAPIException#{nr}"
10
10
  if not Object.const_defined? classname
11
11
  klass = Object.const_set(classname, Class.new(EAAL::Exception::EveAPIException))
12
12
  else
@@ -14,27 +14,27 @@ module EAAL::Exception
14
14
  end
15
15
  klass
16
16
  end
17
-
17
+
18
18
  # raise the eve API exceptions, class will be dynamicaly created by classname
19
19
  # EveAPIException followed by the APIs exception Number
20
20
  def self.raiseEveAPIException(nr, msg)
21
21
  raise EAAL::Exception.EveAPIException(nr).new(msg)
22
22
  end
23
-
23
+
24
24
  # all EAAL exceptions should extend this.
25
25
  class EAALError < StandardError
26
26
  end
27
-
27
+
28
28
  # Used when an http error is encountered
29
29
  class HTTPError < EAALError
30
30
  end
31
-
31
+
32
32
  # Used when the Eve API returns a 404
33
33
  class APINotFoundError < HTTPError
34
34
  end
35
-
35
+
36
36
  # All API Errors should be derived from this
37
37
  class EveAPIException < EAALError
38
38
  end
39
-
39
+
40
40
  end
@@ -6,20 +6,20 @@
6
6
  module EAAL
7
7
 
8
8
  module Result
9
-
9
+
10
10
  # base class for automated result class creation
11
11
  class ResultBase
12
12
  attr_accessor :request_time, :cached_until
13
13
  end
14
-
15
- # Result Container class, ...
14
+
15
+ # Result Container class, ...
16
16
  class ResultContainer
17
17
  attr_accessor :container
18
18
 
19
19
  def initialize
20
20
  self.container = {}
21
21
  end
22
-
22
+
23
23
  def add_element(key, val)
24
24
  self.container.merge!({key => val})
25
25
  end
@@ -34,7 +34,7 @@ module EAAL
34
34
  attr_accessor :name, :value, :attribs
35
35
  def initialize(name, value)
36
36
  self.name = name
37
- self.value = value
37
+ self.value = value
38
38
  self.attribs = {}
39
39
  end
40
40
 
@@ -46,12 +46,12 @@ module EAAL
46
46
  if self.attribs.has_key?(method.id2name)
47
47
  self.attribs[method.id2name]
48
48
  else
49
- self.value.send(method, *args)
49
+ self.value.send(method, *args)
50
50
  end
51
-
51
+
52
52
  end
53
-
54
- # parses an xml element to create either the ResultElement, ResultContainer or Rowset
53
+
54
+ # parses an xml element to create either the ResultElement, ResultContainer or Rowset
55
55
  # necessary
56
56
  def self.parse_element(prefix, element)
57
57
  if element.name == "rowset" then
@@ -64,13 +64,13 @@ module EAAL
64
64
  cel = EAAL::Result::ResultElement.parse_element(prefix, celement)
65
65
  if celement.attributes.to_hash.length > 0
66
66
  container.add_element(cel.name, cel)
67
- else
67
+ else
68
68
  container.add_element(cel.name, cel.value)
69
69
  end
70
70
  }
71
71
  value = container
72
72
  else
73
- value = element.inner_html
73
+ value = element.inner_html.gsub(/\W+/, "") #Mainly to filter tags within description element in corporationsheet.
74
74
  end
75
75
  re = ResultElement.new(key, value)
76
76
  if element.attributes.to_hash.length > 0
@@ -104,7 +104,7 @@ module EAAL
104
104
  end
105
105
  }
106
106
  if not Object.const_defined? classname
107
- klass = Object.const_set(classname, Class.new(EAAL::Result::ResultBase))
107
+ klass = Object.const_set(classname, Class.new(EAAL::Result::ResultBase))
108
108
  klass.class_eval do
109
109
  attr_accessor(*members)
110
110
  end
@@ -6,11 +6,11 @@
6
6
  module EAAL
7
7
 
8
8
  module Rowset
9
-
9
+
10
10
  # RowsetBase class, all RowSets should be derived from this
11
11
  class RowsetBase < Array
12
12
  attr_accessor :name, :columns, :rowclass
13
-
13
+
14
14
  # create a new row in this RowSet
15
15
  def create_row(xml)
16
16
  row = self.rowclass.new
@@ -22,32 +22,32 @@ module EAAL
22
22
  el = EAAL::Result::ResultElement.parse_element(self.rowclass.name, child)
23
23
  row.add_element(el.name, el)
24
24
  }
25
- end
25
+ end
26
26
  row
27
27
  end
28
28
  end
29
-
29
+
30
30
  # BaseClass for Rows, all Rows should be derived from this
31
31
  class RowBase < EAAL::Result::ResultContainer
32
32
  end
33
-
33
+
34
34
  # create a new RowSet Object
35
35
  # * prefix string prefix for building the RowSet name
36
36
  # * xml the xml for the RowSet
37
37
  def self.new(prefix, xml)
38
38
  name = xml['name']
39
39
  columns = xml['columns'].split(',')
40
-
40
+
41
41
  classname = prefix + 'Rowset' + name.capitalize
42
42
  rowname = classname + 'Row'
43
-
43
+
44
44
  if not Object.const_defined? classname
45
- klass = Object.const_set(classname, Class.new(EAAL::Rowset::RowsetBase))
45
+ klass = Object.const_set(classname, Class.new(EAAL::Rowset::RowsetBase))
46
46
  else
47
47
  klass = Object.const_get(classname)
48
48
  end
49
49
  rowset = klass.new
50
-
50
+
51
51
  if not Object.const_defined? rowname
52
52
  klass = Object.const_set(rowname, Class.new(EAAL::Rowset::RowBase))
53
53
  klass.class_eval do
@@ -56,7 +56,7 @@ module EAAL
56
56
  else
57
57
  klass = Object.const_get(rowname)
58
58
  end
59
-
59
+
60
60
  rowset.name = name
61
61
  rowset.columns = columns
62
62
  rowset.rowclass = klass
@@ -1,8 +1,8 @@
1
1
  require File.dirname(__FILE__) + '/test_helper.rb'
2
2
 
3
3
  class TestEaal < Test::Unit::TestCase
4
-
5
- # prepare the api object. sets EAAL to use FileCache to load fixtures
4
+
5
+ # prepare the api object. sets EAAL to use FileCache to load fixtures
6
6
  def setup
7
7
  EAAL.cache = EAAL::Cache::FileCache.new(File.dirname(__FILE__) + '/fixtures/')
8
8
  @api = EAAL::API.new('test','test')
@@ -15,7 +15,7 @@ class TestEaal < Test::Unit::TestCase
15
15
 
16
16
  # some random tests if parsing the xml builds the right class
17
17
  def test_api_classes
18
- @api.scope = "char"
18
+ @api.scope = "char"
19
19
  assert_raise EAAL::Exception.EveAPIException(105) do @api.Killlog end
20
20
  assert_equal @api.Killlog(:characterID => 12345).class.name, "CharKilllogResult"
21
21
  assert_equal @api.Killlog(:characterID => 12345).kills.class.name, "CharKilllogRowsetKills"
@@ -23,13 +23,13 @@ class TestEaal < Test::Unit::TestCase
23
23
  assert_equal @api.Killlog(:characterID => 12345).kills.first.victim.class.name, "EAAL::Result::ResultElement"
24
24
  assert_equal @api.Killlog(:characterID => 12345).kills.first.attackers.first.class.name, "CharKilllogRowsetKillsRowRowsetAttackersRow"
25
25
  end
26
-
26
+
27
27
  # some random data checks to ensure stuff can be read
28
28
  def test_api_parse_data
29
29
  @api.scope = "account"
30
30
  assert_equal @api.Characters.characters.first.name, "Test Tester"
31
31
  assert_equal @api.Characters.characters.second.corporationID, "7890"
32
- @api.scope = "char"
32
+ @api.scope = "char"
33
33
  assert_equal @api.Killlog(:characterID => 12345).kills.length, 1
34
34
  assert_equal @api.Killlog(:characterID => 12345).kills.first.victim.characterName, "Peter Powers"
35
35
  assert_equal @api.Killlog(:characterID => 12345).kills.first.attackers.first.characterID, "12345"
@@ -81,7 +81,7 @@ class TestEaal < Test::Unit::TestCase
81
81
  # Note if I run memcached I get a new error: EAAL::Exception::APINotFoundError: The requested API (account / Chracters) could not be found.
82
82
  # this beacuse eaal request to EVE api the Test Tester PG....
83
83
  # TODO: API needs mocking properly instead of depending on file cache for test loading.
84
-
84
+
85
85
  EAAL.cache = EAAL::Cache::MemcachedCache.new
86
86
 
87
87
  assert_instance_of EAAL::Cache::MemcachedCache, EAAL.cache
metadata CHANGED
@@ -1,116 +1,110 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: eaal
3
- version: !ruby/object:Gem::Version
4
- hash: 21
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.8
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 7
10
- version: 0.1.7
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Peter Petermann
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-03-16 00:00:00 +01:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-08-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: activesupport
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 11
30
- segments:
31
- - 2
32
- - 0
33
- - 2
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
34
21
  version: 2.0.2
35
22
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: hpricot
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
41
25
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 7
46
- segments:
47
- - 0
48
- - 6
49
- version: "0.6"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 2.0.2
30
+ - !ruby/object:Gem::Dependency
31
+ name: hpricot
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0.6'
50
38
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: memcache-client
54
39
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
56
41
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 9
61
- segments:
62
- - 1
63
- - 7
64
- - 1
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0.6'
46
+ - !ruby/object:Gem::Dependency
47
+ name: memcache-client
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
65
53
  version: 1.7.1
66
54
  type: :runtime
67
- version_requirements: *id003
68
- - !ruby/object:Gem::Dependency
69
- name: newgem
70
55
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.7.1
62
+ - !ruby/object:Gem::Dependency
63
+ name: newgem
64
+ requirement: !ruby/object:Gem::Requirement
72
65
  none: false
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- hash: 5
77
- segments:
78
- - 1
79
- - 5
80
- - 3
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
81
69
  version: 1.5.3
82
70
  type: :development
83
- version_requirements: *id004
84
- - !ruby/object:Gem::Dependency
85
- name: hoe
86
71
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.5.3
78
+ - !ruby/object:Gem::Dependency
79
+ name: hoe
80
+ requirement: !ruby/object:Gem::Requirement
88
81
  none: false
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- hash: 41
93
- segments:
94
- - 2
95
- - 9
96
- - 1
97
- version: 2.9.1
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: '3.0'
98
86
  type: :development
99
- version_requirements: *id005
100
- description: |-
101
- EAAL (Eve API Access Layer) is a ruby library for accessing data of the API of
102
- the game Eve Online
103
- email:
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '3.0'
94
+ description: ! 'EAAL (Eve API Access Layer) is a ruby library for accessing data of
95
+ the API of
96
+
97
+ the game Eve Online'
98
+ email:
104
99
  - ppetermann80@googlemail.com
105
100
  executables: []
106
-
107
101
  extensions: []
108
-
109
- extra_rdoc_files:
102
+ extra_rdoc_files:
110
103
  - History.txt
111
104
  - LICENSE.txt
112
105
  - Manifest.txt
113
- files:
106
+ - README.rdoc
107
+ files:
114
108
  - History.txt
115
109
  - LICENSE.txt
116
110
  - Manifest.txt
@@ -134,41 +128,33 @@ files:
134
128
  - test/test_eaal.rb
135
129
  - test/test_helper.rb
136
130
  - .gemtest
137
- has_rdoc: true
138
131
  homepage: http://eaal.rubyforge.org
139
132
  licenses: []
140
-
141
133
  post_install_message:
142
- rdoc_options:
134
+ rdoc_options:
143
135
  - --main
144
- - README.txt
145
- require_paths:
136
+ - README.rdoc
137
+ require_paths:
146
138
  - lib
147
- required_ruby_version: !ruby/object:Gem::Requirement
139
+ required_ruby_version: !ruby/object:Gem::Requirement
148
140
  none: false
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- hash: 3
153
- segments:
154
- - 0
155
- version: "0"
156
- required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
157
146
  none: false
158
- requirements:
159
- - - ">="
160
- - !ruby/object:Gem::Version
161
- hash: 3
162
- segments:
163
- - 0
164
- version: "0"
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
165
151
  requirements: []
166
-
167
152
  rubyforge_project: eaal
168
- rubygems_version: 1.6.2
153
+ rubygems_version: 1.8.23
169
154
  signing_key:
170
155
  specification_version: 3
171
- summary: EAAL (Eve API Access Layer) is a ruby library for accessing data of the API of the game Eve Online
172
- test_files:
156
+ summary: EAAL (Eve API Access Layer) is a ruby library for accessing data of the API
157
+ of the game Eve Online
158
+ test_files:
173
159
  - test/test_eaal.rb
174
160
  - test/test_helper.rb