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 +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
|