dsander-reve 0.0.116 → 0.0.117

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -58,11 +58,11 @@ elsif File.exists?('.git')
58
58
  begin
59
59
  require 'jeweler'
60
60
  Jeweler::Tasks.new do |s|
61
- s.name = "reve"
61
+ s.name = "dsander-reve"
62
62
  s.rubyforge_project = "reve"
63
63
  s.author = "Lisa Seelye"
64
64
  s.email = "lisa@thedoh.com"
65
- s.homepage = "http://revetrac.crudvision.com"
65
+ s.homepage = "http://github.com/lisa/reve"
66
66
  s.platform = Gem::Platform::RUBY
67
67
  s.summary = "Reve is a Ruby library to interface with the Eve Online API"
68
68
  s.files = FileList["Rakefile","LICENSE", "lib/**/*.rb","reve.rb","tester.rb","init.rb"].to_a
@@ -72,8 +72,21 @@ elsif File.exists?('.git')
72
72
  s.extra_rdoc_files = ["ChangeLog"]
73
73
  s.add_dependency("hpricot",">= 0.6")
74
74
  end
75
+ Jeweler::GemcutterTasks.new
75
76
  rescue LoadError
76
77
  puts "Jeweler, or one of its dependencies, is not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
77
78
  end
78
79
  end
79
80
 
81
+ begin
82
+ require 'rcov/rcovtask'
83
+ Rcov::RcovTask.new do |test|
84
+ test.libs << 'test'
85
+ test.pattern = 'test/**/test_*.rb'
86
+ test.verbose = true
87
+ end
88
+ rescue LoadError
89
+ task :rcov do
90
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
91
+ end
92
+ end
data/init.rb CHANGED
@@ -1 +1,2 @@
1
+ # I make Rails happy.
1
2
  require 'reve'
data/lib/reve/classes.rb CHANGED
@@ -529,7 +529,7 @@ module Reve #:nodoc:
529
529
  @grade = elem["grade"].to_i
530
530
  end
531
531
  end
532
-
532
+
533
533
  # Represents a Character for the Reve::API#characters, Reve::API#character_name and Reve::API#character_id calls.
534
534
  # Attributes
535
535
  # * name ( String ) - Name of the Character
@@ -606,6 +606,52 @@ module Reve #:nodoc:
606
606
  end
607
607
  end
608
608
 
609
+ # Holds the result of the Reve::API#corporate_member_security call.
610
+ # Attributes
611
+ # * members ( [CorporationMember] ) - Array of CorporationMember
612
+ # See Also: CorporationMember, CorporateRole, CorporateTitle
613
+ class CorporationMemberSecurity
614
+ attr_accessor :members
615
+
616
+ def initialize
617
+ @members = []
618
+ end
619
+ end
620
+
621
+ # Part of the CorporationMemberSecurity; represnets a Corporation's member
622
+ # All of these values are internal to CCP; +shape_1+ matches with +color_1+ and so on.
623
+ # Attributes
624
+ # * name ( String ) - Name of the Character
625
+ # * id ( Fixnum ) - ID of the Character
626
+ # * roles ( [CorporateRole] ) - Array of Roles
627
+ class CorporationMember
628
+ attr_accessor :roles, :grantableRoles, :rolesAtHQ, :grantableRolesAtHQ, :rolesAtBase
629
+ attr_accessor :grantableRolesAtBase, :rolesAtOther, :grantableRolesAtOther, :titles
630
+ attr_accessor :id, :name
631
+
632
+ alias_method :roles_at_hq, :rolesAtHQ
633
+ alias_method :grantable_roles_at_hq, :grantableRolesAtHQ
634
+ alias_method :roles_at_base, :rolesAtBase
635
+ alias_method :grantable_roles_at_base, :grantableRolesAtBase
636
+ alias_method :roles_at_other, :rolesAtOther
637
+ alias_method :grantable_roles_at_other, :grantableRolesAtOther
638
+
639
+ def initialize(elem) #:nodoc:
640
+ @id = elem['characterID'].to_i
641
+ @name = elem['name']
642
+
643
+ @roles = []
644
+ @grantableRoles = []
645
+ @rolesAtHQ = []
646
+ @grantableRolesAtHQ = []
647
+ @rolesAtBase = []
648
+ @grantableRolesAtBase = []
649
+ @rolesAtOther = []
650
+ @grantableRolesAtOther = []
651
+ @titles = []
652
+ end
653
+ end
654
+
609
655
  # Holds the result of the Reve::API#conqurable_stations call.
610
656
  # Attributes
611
657
  # * id ( Fixnum ) - ID of the ConqurableStation
@@ -1337,5 +1383,62 @@ module Reve #:nodoc:
1337
1383
  # See WalletTransaction
1338
1384
  class PersonalWalletTransaction < WalletTransaction
1339
1385
  end
1386
+
1387
+ # Represents a MailingList for
1388
+ # Reve::API#personal_mailing_lists
1389
+ # Attributes
1390
+ # * id ( Fixnum ) - ID of the MailingList (use this in the Reve::API#mail_messages call)
1391
+ # * name ( String ) - Name of the MailingList
1392
+ class MailingList
1393
+ attr_reader :id, :name
1394
+ def initialize(elem) #:nodoc:
1395
+ @id = elem['listID'].to_i
1396
+ @name = elem['displayName']
1397
+ end
1398
+ end
1399
+
1400
+ # Represents a MailMessage for
1401
+ # Reve::API#personal_mail_messages
1402
+ # Attributes
1403
+ # * id ( Fixnum ) - The unique message ID number.
1404
+ # * sender_id ( Fixnum ) - The character ID of the message originator. (use Reve::API#character_name to get their names)
1405
+ # * send_date ( Time ) - The date the message was sent.
1406
+ # * title ( String ) - The title of the message
1407
+ # * to_corp_or_alliance_id ( Fixnum ) - The ID of a corporation/alliance that the message was sent to.
1408
+ # * to_character_ids ( [Fixnum] ) - Array of character IDs of the characters that received the message.
1409
+ # * to_list_ids ( [Fixnum] ) - Array of mailing lists that the mail was sent to. (use Reve::API#personal_mailing_lists to get their names)
1410
+ # * read ( Boolean ) - Whether the mail/notification has been read in the EVE client. This does not change when you get it through the API.
1411
+ class MailMessage
1412
+ attr_reader :id, :name, :sender_id, :send_date, :title, :to_corp_or_alliance_id, :to_character_ids, :to_list_ids, :read
1413
+ def initialize(elem) #:nodoc:
1414
+ @id = elem['messageID'].to_i
1415
+ @sender_id = elem['senderID'].to_i
1416
+ @send_date = elem['sentDate'].to_time
1417
+ @title = elem['title']
1418
+ @to_corp_or_alliance_id = elem['toCorpOrAllianceID'] == '' ? nil : elem['toCorpOrAllianceID'].to_i
1419
+ @to_character_ids = elem['toCharacterIDs'] == '' ? nil : elem['toCharacterIDs'].split(',').collect {|id| id.to_i }
1420
+ @to_list_ids = elem['toListIDs'] == '' ? nil : elem['toListIDs'].split(',').collect {|id| id.to_i }
1421
+ @read = elem['read'] == '1'
1422
+ end
1423
+ end
1424
+
1425
+ # Represents a Notification for
1426
+ # Reve::API#personal_notifications
1427
+ # Attributes
1428
+ # * id ( Fixnum ) - The unique notification ID number.
1429
+ # * notification_type_id ( Fixnum ) - The notification type indicates what has happened but not who performed the action in question nor upon whom the action was performed. See http://wiki.eve-id.net/APIv2_Char_Notifications_XML for a list of ids
1430
+ # * sender_id ( Fixnum ) - TThe ID of the entity that sent the notification.
1431
+ # * send_date ( Time ) - The ID of the entity that sent the notification.
1432
+ # * read ( Boolean ) - Whether the notification has been read in the EVE client. This does not change when you get it through the API.
1433
+ class Notification
1434
+ attr_reader :id, :name, :notification_type_id, :sender_id, :send_date, :read
1435
+ def initialize(elem) #:nodoc:
1436
+ @id = elem['notificationID'].to_i
1437
+ @notification_type_id = elem['typeID'].to_i
1438
+ @sender_id = elem['senderID'].to_i
1439
+ @send_date = elem['sentDate'].to_time
1440
+ @read = elem['read'] == '1'
1441
+ end
1442
+ end
1340
1443
  end
1341
1444
  end
@@ -1,4 +1,4 @@
1
- require 'parsedate'
1
+ require 'time'
2
2
 
3
3
  module Reve #:nodoc:
4
4
  # All of these are shamelessly nicked from Ruby on Rails.
@@ -78,12 +78,11 @@ module Reve #:nodoc:
78
78
  cattr_writer(*syms)
79
79
  end
80
80
  end
81
-
82
81
  module String
83
82
  def to_time(form = :utc)
84
83
  begin
85
- ::Time.send(form, *ParseDate.parsedate(self))
86
- rescue Exception
84
+ return Time.parse(self + ' +00:00')
85
+ rescue Exception => e
87
86
  self
88
87
  end
89
88
  end
@@ -105,4 +104,16 @@ end
105
104
 
106
105
  class NilClass #:nodoc:
107
106
  include Reve::Extensions::NilClass
108
- end
107
+ end
108
+
109
+ class Object
110
+ def rsend(*args, &block)
111
+ obj = self
112
+ args.each do |a|
113
+ b = (a.is_a?(Array) && a.last.is_a?(Proc) ? a.pop : block)
114
+ obj = obj.__send__(*a, &b)
115
+ end
116
+ obj
117
+ end
118
+ alias_method :__rsend__, :rsend
119
+ end
data/lib/reve.rb CHANGED
@@ -63,6 +63,7 @@ module Reve
63
63
  @@starbasedetail_url = 'http://api.eve-online.com/corp/StarbaseDetail.xml.aspx'
64
64
  @@conqurable_outposts_url = 'http://api.eve-online.com/eve/ConquerableStationList.xml.aspx'
65
65
  @@corporation_sheet_url = 'http://api.eve-online.com/corp/CorporationSheet.xml.aspx'
66
+ @@corporation_member_security_url = 'http://api.eve-online.com/corp/MemberSecurity.xml.aspx'
66
67
  @@errors_url = 'http://api.eve-online.com/eve/ErrorList.xml.aspx'
67
68
  @@map_jumps_url = 'http://api.eve-online.com/map/Jumps.xml.aspx'
68
69
  @@map_kills_url = 'http://api.eve-online.com/map/Kills.xml.aspx'
@@ -86,7 +87,10 @@ module Reve
86
87
  @@corporate_medals_url = 'http://api.eve-online.com/corp/Medals.xml.aspx'
87
88
  @@corp_member_medals_url = 'http://api.eve-online.com/corp/MemberMedals.xml.aspx'
88
89
  @@server_status_url = 'http://api.eve-online.com/Server/ServerStatus.xml.aspx'
89
-
90
+ @@personal_notification_url = 'http://api.eve-online.com/char/Notifications.xml.aspx'
91
+ @@personal_mailing_lists_url = 'http://api.eve-online.com/char/mailinglists.xml.aspx'
92
+ @@personal_mail_messages_url = 'http://api.eve-online.com/char/MailMessages.xml.aspx'
93
+
90
94
  cattr_accessor :character_sheet_url, :training_skill_url, :characters_url, :personal_wallet_journal_url,
91
95
  :corporate_wallet_journal_url, :personal_wallet_trans_url, :corporate_wallet_trans_url,
92
96
  :personal_wallet_balance_url, :corporate_wallet_balance_url, :member_tracking_url,
@@ -98,7 +102,8 @@ module Reve
98
102
  :personal_faction_war_stats_url, :corporate_faction_war_stats_url,
99
103
  :general_faction_war_stats_url, :top_faction_war_stats_url, :faction_war_occupancy_url,
100
104
  :certificate_tree_url, :character_medals_url, :corporate_medals_url,
101
- :corp_member_medals_url, :server_status_url, :skill_queue_url
105
+ :corp_member_medals_url, :server_status_url, :skill_queue_url, :corporation_member_security_url,
106
+ :personal_notification_url, :personal_mailing_lists_url, :personal_mail_messages_url
102
107
 
103
108
 
104
109
  attr_accessor :key, :userid, :charid
@@ -750,6 +755,27 @@ module Reve
750
755
  Reve::Classes::CorporationSheet.new res, divisions, wallet_divisions, corporate_logo
751
756
  end
752
757
 
758
+ def corporate_member_security(opts = { :characterid => nil })
759
+ args = postfields(opts)
760
+ h = compute_hash(args.merge(:url => @@corporation_member_security_url))
761
+ return h if h
762
+ xml = process_query(nil,opts[:url] || @@corporation_member_security_url,true,args)
763
+
764
+ cmc = Reve::Classes::CorporationMemberSecurity.new
765
+ xml.search("/eveapi/result/member").each do |member|
766
+ mem = Reve::Classes::CorporationMember.new(member)
767
+ cmc.members << mem
768
+ [:roles, :grantableRoles, :rolesAtHQ, :grantableRolesAtHQ, :rolesAtBase, :grantableRolesAtBase, :rolesAtOther, :grantableRolesAtOther].each do |rowset|
769
+ member.search("/rowset[@name=#{rowset.to_s}]/row").each do |row|
770
+ mem.rsend(["#{rowset}"], [:push,Reve::Classes::CorporateRole.new(row)])
771
+ end
772
+ end
773
+ member.search("/rowset[@name=titles]/row").each do |row|
774
+ mem.rsend([:titles], [:push,Reve::Classes::CorporateTitle.new(row)])
775
+ end
776
+ end
777
+ cmc
778
+ end
753
779
 
754
780
  # Returns a Reve::Classes::CertificateTree object that contains the
755
781
  # Certificate tree structure. See the rdoc for Reve::Classes::CertificateTree
@@ -823,10 +849,7 @@ module Reve
823
849
  end
824
850
  [ :corporationRolesAtHQ, :corporationRoles, :corporationRolesAtBase, :corporationRolesAtOther ].each do |role_kind|
825
851
  xml.search("rowset[@name=#{role_kind.to_s}]/row").each do |elem|
826
- arry = []
827
- role = Reve::Classes::CorporateRole.new(elem)
828
- arry << role
829
- cs.send("#{role_kind}=".to_sym,arry)
852
+ cs.rsend(["#{role_kind}"], [:push,Reve::Classes::CorporateRole.new(elem)])
830
853
  end
831
854
  end
832
855
 
@@ -836,7 +859,42 @@ module Reve
836
859
 
837
860
  cs
838
861
  end
839
-
862
+
863
+ # Gets the characters notifications. Returns a list of
864
+ # Reve::Classes::Notification
865
+ # Expects:
866
+ # * characterid ( Integer | String ) - Get the Notifications for this Character
867
+ # See also: Reve::Classes::Notification
868
+ def personal_notifications(opts = { :characterid => nil })
869
+ args = postfields(opts)
870
+ h = compute_hash(args.merge(:url => @@personal_notification_url))
871
+ return h if h
872
+ process_query(Reve::Classes::Notification, opts[:url] || @@personal_notification_url,false,args)
873
+ end
874
+
875
+ # Gets the characters notifications. Returns a list of
876
+ # Reve::Classes::MailingList
877
+ # Expects:
878
+ # * characterid ( Integer | String ) - Get the MailingLists for this Character
879
+ # See also: Reve::Classes::MailingList
880
+ def personal_mailing_lists(opts = { :characterid => nil })
881
+ args = postfields(opts)
882
+ h = compute_hash(args.merge(:url => @@personal_mailing_lists_url))
883
+ return h if h
884
+ process_query(Reve::Classes::MailingList, opts[:url] || @@personal_mailing_lists_url,false,args)
885
+ end
886
+
887
+ # Gets the characters notifications. Returns a list of
888
+ # Reve::Classes::MailMessage
889
+ # Expects:
890
+ # * characterid ( Integer | String ) - Get the MailMessages for this Character
891
+ # See also: Reve::Classes::MailMessage
892
+ def personal_mail_messages(opts = { :characterid => nil })
893
+ args = postfields(opts)
894
+ h = compute_hash(args.merge(:url => @@personal_mail_messages_url))
895
+ return h if h
896
+ process_query(Reve::Classes::MailMessage, opts[:url] || @@personal_mail_messages_url,false,args)
897
+ end
840
898
 
841
899
  protected
842
900
  # Sets up the post fields for Net::HTTP::Get hash for process_query method.
data/test/test_reve.rb CHANGED
@@ -1,5 +1,6 @@
1
+ # Tests designed to run with autotest.
1
2
  require 'test/unit'
2
- require '../lib/reve'
3
+ require 'reve'
3
4
  require 'fileutils' # for saving downloaded XML
4
5
 
5
6
  XML_BASE = File.join(File.dirname(__FILE__),'xml/')
@@ -937,6 +938,22 @@ class TestReve < Test::Unit::TestCase
937
938
  end
938
939
  end
939
940
 
941
+ def test_corporate_member_security
942
+ Reve::API.corporation_member_security_url = XML_BASE + 'corp_membersecurity.xml'
943
+ members = nil
944
+ assert_nothing_raised do
945
+ members = @api.corporate_member_security
946
+ end
947
+ assert_equal 2, members.members.size
948
+ first = members.members.first
949
+ assert_equal "Test Pilot", first.name
950
+ assert_equal 194329244, first.id
951
+ assert_equal 0, first.grantableRoles.size
952
+ assert_equal 1, first.titles.size
953
+ last = members.members.last
954
+ assert_equal 5, last.titles.size
955
+ end
956
+
940
957
  def test_server_status
941
958
  Reve::API.server_status_url = XML_BASE + 'server_status.xml'
942
959
  status = nil
@@ -1054,6 +1071,63 @@ class TestReve < Test::Unit::TestCase
1054
1071
 
1055
1072
 
1056
1073
 
1074
+ end
1075
+
1076
+ def test_personal_notifications
1077
+ Reve::API.personal_notification_url = XML_BASE + 'notifications.xml'
1078
+ notifications = nil
1079
+ assert_nothing_raised do
1080
+ notifications = @api.personal_notifications(:characterid => 1)
1081
+ end
1082
+ assert_equal 2, notifications.length
1083
+ assert_equal Reve::Classes::Notification, notifications.first.class
1084
+ assert_equal 200076684, notifications.first.sender_id
1085
+ assert_equal 16, notifications.first.notification_type_id
1086
+ assert_equal Time.parse('2009-12-02 10:54:00 UTC'), notifications.first.send_date
1087
+ end
1088
+
1089
+ def test_personal_mailing_lists
1090
+ Reve::API.personal_mailing_lists_url = XML_BASE + 'mailing_lists.xml'
1091
+ lists = nil
1092
+ assert_nothing_raised do
1093
+ lists = @api.personal_mailing_lists(:characterid => 1)
1094
+ end
1095
+ assert_equal 3, lists.length
1096
+ assert_equal Reve::Classes::MailingList, lists.first.class
1097
+ assert_equal 128250439, lists.first.id
1098
+ assert_equal 'EVETycoonMail', lists.first.name
1099
+ assert_equal 141157801, lists.last.id
1100
+ end
1101
+
1102
+ def test_personal_mail_messages
1103
+ Reve::API.personal_mail_messages_url = XML_BASE + 'mail_messages.xml'
1104
+ mails = nil
1105
+ assert_nothing_raised do
1106
+ mails = @api.personal_mail_messages(:characterid => 1)
1107
+ end
1108
+ assert_equal 5, mails.length
1109
+ assert_equal Reve::Classes::MailMessage, mails.first.class
1110
+ # Corp Mail
1111
+ assert_equal 1, mails.first.sender_id
1112
+ assert_equal Time.parse('2009-12-01 01:04:00 UTC'), mails.first.send_date
1113
+ assert_equal "Corp mail", mails.first.title
1114
+ assert_equal 4, mails.first.to_corp_or_alliance_id
1115
+ assert_equal nil, mails.first.to_character_ids
1116
+ assert_equal nil, mails.first.to_list_ids
1117
+ assert_equal true, mails.first.read
1118
+ # Personal Mail
1119
+ assert_equal nil, mails[1].to_corp_or_alliance_id
1120
+ assert_equal [5], mails[1].to_character_ids
1121
+ assert_equal nil, mails[1].to_list_ids
1122
+ # list Mail
1123
+ assert_equal nil, mails[2].to_corp_or_alliance_id
1124
+ assert_equal nil, mails[2].to_character_ids
1125
+ assert_equal [128250439], mails[2].to_list_ids
1126
+ assert_equal false, mails[2].read
1127
+ # multi personal
1128
+ assert_equal [5,6,7], mails[3].to_character_ids
1129
+ # multi list
1130
+ assert_equal [128250439,141157801], mails[4].to_list_ids
1057
1131
  end
1058
1132
 
1059
1133
  # Can we reassign a URL?
@@ -1147,7 +1221,7 @@ class TestReve < Test::Unit::TestCase
1147
1221
  kills = @api.send(meth,{:url =>url})
1148
1222
  end
1149
1223
  assert_equal 25, kills.size
1150
- assert_equal 25, kills.collect { |k| k.victim.name }.nitems # i should have 10 good victim names to match with 10 kills
1224
+ assert_equal 25, kills.collect { |k| k.victim.name }.compact.length # i should have 10 good victim names to match with 10 kills
1151
1225
 
1152
1226
  # Process the Kills here to get the number of "Contained Losses" - KillLoss that are contained within another
1153
1227
  # KillLoss (like a Giant Secure Container); there should only be one contained loss and should be
@@ -1160,7 +1234,7 @@ class TestReve < Test::Unit::TestCase
1160
1234
  attacker_names = kills.collect { |k| k.attackers.collect { |a| a.name } }.flatten
1161
1235
  assert_equal 98, attacker_names.size # total of 25 attackers (24 players + 1 NPC)
1162
1236
  assert_equal 2, attacker_names.grep(nil).size # npc exists once
1163
- assert_equal 96, attacker_names.nitems # 24 player attackers
1237
+ assert_equal 96, attacker_names.compact.length # 24 player attackers
1164
1238
 
1165
1239
  assert_kind_of Integer, kills.first.victim.faction_id
1166
1240
  assert_kind_of String, kills.first.victim.faction_name
@@ -0,0 +1,15 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <eveapi version="2">
3
+ <currentTime>2009-12-02 00:46:10</currentTime>
4
+ <result>
5
+ <rowset name="mailMessages" key="messageID" columns="messageID,senderID,sentDate,title,toCorpOrAllianceID,toCharacterIDs,toListIDs,read">
6
+ <row messageID="290285276" senderID="1" sentDate="2009-12-01 01:04:00" title="Corp mail" toCorpOrAllianceID="4" toCharacterIDs="" toListIDs="" read="1" />
7
+ <row messageID="290285275" senderID="2" sentDate="2009-12-01 01:04:00" title="Personal mail" toCorpOrAllianceID="" toCharacterIDs="5" toListIDs="" read="1" />
8
+ <row messageID="290285274" senderID="2" sentDate="2009-12-01 01:04:00" title="Message to mailing list" toCorpOrAllianceID="" toCharacterIDs="" toListIDs="128250439" read="0" />
9
+ <row messageID="290285278" senderID="2" sentDate="2009-12-01 01:04:00" title="Multi Personal mail" toCorpOrAllianceID="" toCharacterIDs="5,6,7" toListIDs="" read="1" />
10
+ <row messageID="290285279" senderID="2" sentDate="2009-12-01 01:04:00" title="Multi Message to mailing list" toCorpOrAllianceID="" toCharacterIDs="" toListIDs="128250439,141157801" read="0" />
11
+ </rowset>
12
+ </result>
13
+ <cachedUntil>2009-12-02 01:16:10</cachedUntil>
14
+ </eveapi>
15
+
@@ -0,0 +1,12 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <eveapi version="2">
3
+ <currentTime>2009-12-02 06:29:32</currentTime>
4
+ <result>
5
+ <rowset name="mailingLists" key="listID" columns="listID,displayName">
6
+ <row listID="128250439" displayName="EVETycoonMail" />
7
+ <row listID="128783669" displayName="EveMarketScanner" />
8
+ <row listID="141157801" displayName="Exploration Wormholes" />
9
+ </rowset>
10
+ </result>
11
+ <cachedUntil>2009-12-02 12:29:32</cachedUntil>
12
+ </eveapi>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <eveapi version="2">
3
+ <currentTime>2009-12-03 20:34:09</currentTime>
4
+ <result>
5
+ <rowset name="notifications" key="notificationID" columns="notificationID,typeID,senderID,sentDate,read">
6
+ <row notificationID="290369614" typeID="16" senderID="200076684" sentDate="2009-12-02 10:54:00" read="1"/>
7
+ <row notificationID="289645395" typeID="1" senderID="1000064" sentDate="2009-11-26 01:34:00" read="0"/>
8
+ </rowset>
9
+ </result>
10
+ <cachedUntil>2009-12-03 21:04:09</cachedUntil>
11
+ </eveapi>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dsander-reve
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.116
4
+ version: 0.0.117
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lisa Seelye
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-11 00:00:00 -07:00
12
+ date: 2009-12-04 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -41,8 +41,10 @@ files:
41
41
  - reve.rb
42
42
  - tester.rb
43
43
  - ChangeLog
44
- has_rdoc: false
45
- homepage: http://revetrac.crudvision.com
44
+ has_rdoc: true
45
+ homepage: http://github.com/lisa/reve
46
+ licenses: []
47
+
46
48
  post_install_message:
47
49
  rdoc_options:
48
50
  - --charset=UTF-8
@@ -63,125 +65,128 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
65
  requirements: []
64
66
 
65
67
  rubyforge_project: reve
66
- rubygems_version: 1.2.0
68
+ rubygems_version: 1.3.5
67
69
  signing_key:
68
70
  specification_version: 3
69
71
  summary: Reve is a Ruby library to interface with the Eve Online API
70
72
  test_files:
71
73
  - test/test_reve.rb
72
- - test/xml/corp_membersecurity.xml
73
- - test/xml/corporate_wallet_transactions.xml
74
- - test/xml/starbase_fuel.xml
75
- - test/xml/corporate_assets_list.xml
76
- - test/xml/characters.xml
77
- - test/xml/mapjumps.xml
78
- - test/xml/wallet_balance.xml
79
- - test/xml/mapkills.xml
80
- - test/xml/server_status.xml
81
- - test/xml/skill_in_training-none.xml
82
- - test/xml/character_sheet.xml
83
- - test/xml/characterid.xml
84
- - test/xml/sovereignty.xml
85
- - test/xml/charactername.xml
86
- - test/xml/corporate_wallet_journal.xml
87
- - test/xml/assets.xml
88
- - test/xml/corp_member_medals.xml
89
- - test/xml/market_transactions.xml
90
- - test/xml/eve_facwartopstats.xml
91
- - test/xml/corporate_market_orders.xml
74
+ - test/xml/map_facwarsystems.xml
75
+ - test/xml/skill_queue.xml
76
+ - test/xml/errors/error_213.xml
77
+ - test/xml/errors/error_521.xml
78
+ - test/xml/errors/error_203.xml
79
+ - test/xml/errors/error_507.xml
80
+ - test/xml/errors/error_112.xml
81
+ - test/xml/errors/error_202.xml
82
+ - test/xml/errors/error_210.xml
92
83
  - test/xml/errors/error_100.xml
93
- - test/xml/errors/error_101.xml
94
- - test/xml/errors/error_102.xml
95
- - test/xml/errors/error_103.xml
96
- - test/xml/errors/error_104.xml
97
- - test/xml/errors/error_105.xml
98
- - test/xml/errors/error_106.xml
99
- - test/xml/errors/error_107.xml
100
- - test/xml/errors/error_108.xml
101
- - test/xml/errors/error_109.xml
102
- - test/xml/errors/error_110.xml
84
+ - test/xml/errors/error_209.xml
85
+ - test/xml/errors/error_518.xml
103
86
  - test/xml/errors/error_111.xml
104
- - test/xml/errors/error_112.xml
105
- - test/xml/errors/error_113.xml
106
- - test/xml/errors/error_114.xml
107
- - test/xml/errors/error_115.xml
108
- - test/xml/errors/error_116.xml
109
- - test/xml/errors/error_117.xml
110
- - test/xml/errors/error_118.xml
111
- - test/xml/errors/error_119.xml
87
+ - test/xml/errors/error_520.xml
88
+ - test/xml/errors/error_104.xml
112
89
  - test/xml/errors/error_120.xml
90
+ - test/xml/errors/error_514.xml
91
+ - test/xml/errors/error_517.xml
92
+ - test/xml/errors/error_117.xml
93
+ - test/xml/errors/error_516.xml
94
+ - test/xml/errors/error_204.xml
95
+ - test/xml/errors/error_509.xml
96
+ - test/xml/errors/error_523.xml
113
97
  - test/xml/errors/error_121.xml
114
- - test/xml/errors/error_122.xml
115
- - test/xml/errors/error_123.xml
98
+ - test/xml/errors/error_515.xml
99
+ - test/xml/errors/error_510.xml
100
+ - test/xml/errors/error_999.xml
101
+ - test/xml/errors/error_103.xml
102
+ - test/xml/errors/error_525.xml
103
+ - test/xml/errors/error_106.xml
104
+ - test/xml/errors/error_205.xml
105
+ - test/xml/errors/error_212.xml
116
106
  - test/xml/errors/error_124.xml
107
+ - test/xml/errors/error_512.xml
108
+ - test/xml/errors/error_122.xml
109
+ - test/xml/errors/error_119.xml
117
110
  - test/xml/errors/error_125.xml
111
+ - test/xml/errors/error_500.xml
112
+ - test/xml/errors/error_902.xml
118
113
  - test/xml/errors/error_200.xml
119
- - test/xml/errors/error_201.xml
120
- - test/xml/errors/error_202.xml
121
- - test/xml/errors/error_203.xml
122
- - test/xml/errors/error_204.xml
123
- - test/xml/errors/error_205.xml
124
- - test/xml/errors/error_206.xml
125
114
  - test/xml/errors/error_207.xml
126
- - test/xml/errors/error_208.xml
127
- - test/xml/errors/error_209.xml
128
- - test/xml/errors/error_210.xml
129
- - test/xml/errors/error_211.xml
130
- - test/xml/errors/error_212.xml
131
- - test/xml/errors/error_900.xml
132
- - test/xml/errors/error_213.xml
133
- - test/xml/errors/error_901.xml
115
+ - test/xml/errors/error_118.xml
116
+ - test/xml/errors/error_101.xml
134
117
  - test/xml/errors/error_214.xml
135
- - test/xml/errors/error_902.xml
118
+ - test/xml/errors/error_102.xml
136
119
  - test/xml/errors/error_903.xml
137
- - test/xml/errors/error_999.xml
138
- - test/xml/errors/error_500.xml
139
- - test/xml/errors/error_501.xml
140
- - test/xml/errors/error_502.xml
141
- - test/xml/errors/error_503.xml
142
- - test/xml/errors/error_504.xml
120
+ - test/xml/errors/error_511.xml
121
+ - test/xml/errors/error_105.xml
143
122
  - test/xml/errors/error_505.xml
144
- - test/xml/errors/error_506.xml
145
- - test/xml/errors/error_507.xml
146
123
  - test/xml/errors/error_508.xml
147
- - test/xml/errors/error_509.xml
148
- - test/xml/errors/error_510.xml
149
- - test/xml/errors/error_511.xml
150
- - test/xml/errors/error_512.xml
124
+ - test/xml/errors/error_506.xml
125
+ - test/xml/errors/error_114.xml
126
+ - test/xml/errors/error_108.xml
127
+ - test/xml/errors/error_208.xml
151
128
  - test/xml/errors/error_513.xml
152
- - test/xml/errors/error_514.xml
153
- - test/xml/errors/error_515.xml
154
- - test/xml/errors/error_516.xml
155
- - test/xml/errors/error_517.xml
156
- - test/xml/errors/error_518.xml
157
- - test/xml/errors/error_519.xml
158
- - test/xml/errors/error_520.xml
159
- - test/xml/errors/error_521.xml
160
- - test/xml/errors/error_522.xml
161
- - test/xml/errors/error_523.xml
129
+ - test/xml/errors/error_123.xml
130
+ - test/xml/errors/error_501.xml
162
131
  - test/xml/errors/error_524.xml
163
- - test/xml/errors/error_525.xml
164
- - test/xml/corporate_wallet_balance.xml
165
- - test/xml/industryjobs.xml
166
- - test/xml/member_tracking.xml
132
+ - test/xml/errors/error_502.xml
133
+ - test/xml/errors/error_503.xml
134
+ - test/xml/errors/error_900.xml
135
+ - test/xml/errors/error_110.xml
136
+ - test/xml/errors/error_109.xml
137
+ - test/xml/errors/error_113.xml
138
+ - test/xml/errors/error_211.xml
139
+ - test/xml/errors/error_522.xml
140
+ - test/xml/errors/error_201.xml
141
+ - test/xml/errors/error_206.xml
142
+ - test/xml/errors/error_115.xml
143
+ - test/xml/errors/error_519.xml
144
+ - test/xml/errors/error_107.xml
145
+ - test/xml/errors/error_116.xml
146
+ - test/xml/errors/error_504.xml
147
+ - test/xml/errors/error_901.xml
148
+ - test/xml/corporate_wallet_transactions.xml
149
+ - test/xml/wallet_journal.xml
167
150
  - test/xml/certificate_tree.xml
151
+ - test/xml/corp_medals.xml
152
+ - test/xml/industryjobs.xml
153
+ - test/xml/characterid.xml
154
+ - test/xml/alliances.xml
155
+ - test/xml/corporate_wallet_balance.xml
156
+ - test/xml/mailing_lists.xml
157
+ - test/xml/mapjumps.xml
158
+ - test/xml/skill_in_training-none.xml
159
+ - test/xml/corp_facwarstats.xml
160
+ - test/xml/starbases.xml
161
+ - test/xml/errors.xml
168
162
  - test/xml/marketorders.xml
169
- - test/xml/eve_facwarstats.xml
163
+ - test/xml/wallet_balance.xml
164
+ - test/xml/characters.xml
170
165
  - test/xml/nonmember_corpsheet.xml
171
- - test/xml/errors.xml
172
- - test/xml/skilltree.xml
173
- - test/xml/map_facwarsystems.xml
174
- - test/xml/corporation_sheet.xml
175
- - test/xml/alliances.xml
176
- - test/xml/char_facwarstats.xml
166
+ - test/xml/member_tracking.xml
177
167
  - test/xml/char_medals.xml
178
- - test/xml/starbases.xml
179
- - test/xml/corp_facwarstats.xml
168
+ - test/xml/sovereignty.xml
180
169
  - test/xml/skill_in_training-amarr-titan.xml
170
+ - test/xml/mapkills.xml
171
+ - test/xml/corp_member_medals.xml
172
+ - test/xml/skilltree.xml
173
+ - test/xml/eve_facwartopstats.xml
174
+ - test/xml/server_status.xml
175
+ - test/xml/char_facwarstats.xml
176
+ - test/xml/charactername.xml
177
+ - test/xml/notifications.xml
178
+ - test/xml/kills.xml
179
+ - test/xml/market_transactions.xml
180
+ - test/xml/eve_facwarstats.xml
181
+ - test/xml/corporate_wallet_journal.xml
182
+ - test/xml/assets.xml
183
+ - test/xml/corporation_sheet.xml
184
+ - test/xml/mail_messages.xml
181
185
  - test/xml/reftypes.xml
182
- - test/xml/corp_medals.xml
186
+ - test/xml/corporate_assets_list.xml
187
+ - test/xml/character_sheet.xml
183
188
  - test/xml/badxml.xml
184
- - test/xml/skill_queue.xml
185
- - test/xml/wallet_journal.xml
186
- - test/xml/kills.xml
189
+ - test/xml/starbase_fuel.xml
190
+ - test/xml/corp_membersecurity.xml
187
191
  - test/xml/conqurable_stations.xml
192
+ - test/xml/corporate_market_orders.xml