dsander-reve 0.0.116 → 0.0.117
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/Rakefile +15 -2
- data/init.rb +1 -0
- data/lib/reve/classes.rb +104 -1
- data/lib/reve/extensions.rb +16 -5
- data/lib/reve.rb +65 -7
- data/test/test_reve.rb +77 -3
- data/test/xml/mail_messages.xml +15 -0
- data/test/xml/mailing_lists.xml +12 -0
- data/test/xml/notifications.xml +11 -0
- metadata +104 -99
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://
|
|
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
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
|
data/lib/reve/extensions.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require '
|
|
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
|
-
|
|
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
|
-
|
|
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 '
|
|
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 }.
|
|
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.
|
|
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.
|
|
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-
|
|
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:
|
|
45
|
-
homepage: http://
|
|
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.
|
|
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/
|
|
73
|
-
- test/xml/
|
|
74
|
-
- test/xml/
|
|
75
|
-
- test/xml/
|
|
76
|
-
- test/xml/
|
|
77
|
-
- test/xml/
|
|
78
|
-
- test/xml/
|
|
79
|
-
- test/xml/
|
|
80
|
-
- test/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/
|
|
94
|
-
- test/xml/errors/
|
|
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/
|
|
105
|
-
- test/xml/errors/
|
|
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/
|
|
115
|
-
- test/xml/errors/
|
|
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/
|
|
127
|
-
- test/xml/errors/
|
|
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/
|
|
118
|
+
- test/xml/errors/error_102.xml
|
|
136
119
|
- test/xml/errors/error_903.xml
|
|
137
|
-
- test/xml/errors/
|
|
138
|
-
- test/xml/errors/
|
|
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/
|
|
148
|
-
- test/xml/errors/
|
|
149
|
-
- test/xml/errors/
|
|
150
|
-
- test/xml/errors/
|
|
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/
|
|
153
|
-
- test/xml/errors/
|
|
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/
|
|
164
|
-
- test/xml/
|
|
165
|
-
- test/xml/
|
|
166
|
-
- test/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/
|
|
163
|
+
- test/xml/wallet_balance.xml
|
|
164
|
+
- test/xml/characters.xml
|
|
170
165
|
- test/xml/nonmember_corpsheet.xml
|
|
171
|
-
- test/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/
|
|
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/
|
|
186
|
+
- test/xml/corporate_assets_list.xml
|
|
187
|
+
- test/xml/character_sheet.xml
|
|
183
188
|
- test/xml/badxml.xml
|
|
184
|
-
- test/xml/
|
|
185
|
-
- test/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
|