eroi 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +2 -0
- data/README.rdoc +2 -0
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/eroi.gemspec +8 -3
- data/lib/eroi/client.rb +14 -39
- data/lib/eroi/request.rb +28 -0
- data/lib/eroi/response.rb +11 -5
- data/lib/eroi.rb +2 -1
- data/test/eroi/client_test.rb +65 -25
- data/test/fixtures.yml.sample +7 -0
- data/test/remote/client_test.rb +110 -0
- data/test/test_helper.rb +8 -52
- metadata +7 -2
data/.gitignore
ADDED
data/README.rdoc
CHANGED
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/eroi.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{eroi}
|
8
|
-
s.version = "0.0
|
8
|
+
s.version = "0.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["CardPlayer"]
|
12
|
-
s.date = %q{2009-12-
|
12
|
+
s.date = %q{2009-12-04}
|
13
13
|
s.description = %q{API interface to eROI.}
|
14
14
|
s.email = %q{techteam@cardplayer.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -17,7 +17,8 @@ Gem::Specification.new do |s|
|
|
17
17
|
"README.rdoc"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
|
-
"
|
20
|
+
".gitignore",
|
21
|
+
"LICENSE",
|
21
22
|
"Manifest",
|
22
23
|
"README.rdoc",
|
23
24
|
"Rakefile",
|
@@ -25,9 +26,12 @@ Gem::Specification.new do |s|
|
|
25
26
|
"eroi.gemspec",
|
26
27
|
"lib/eroi.rb",
|
27
28
|
"lib/eroi/client.rb",
|
29
|
+
"lib/eroi/request.rb",
|
28
30
|
"lib/eroi/response.rb",
|
29
31
|
"lib/eroi/version.rb",
|
30
32
|
"test/eroi/client_test.rb",
|
33
|
+
"test/fixtures.yml.sample",
|
34
|
+
"test/remote/client_test.rb",
|
31
35
|
"test/test_helper.rb"
|
32
36
|
]
|
33
37
|
s.homepage = %q{http://github.com/cardplayer/eroi}
|
@@ -37,6 +41,7 @@ Gem::Specification.new do |s|
|
|
37
41
|
s.summary = %q{API interface to eROI.}
|
38
42
|
s.test_files = [
|
39
43
|
"test/eroi/client_test.rb",
|
44
|
+
"test/remote/client_test.rb",
|
40
45
|
"test/test_helper.rb"
|
41
46
|
]
|
42
47
|
|
data/lib/eroi/client.rb
CHANGED
@@ -4,71 +4,46 @@ module EROI
|
|
4
4
|
end
|
5
5
|
|
6
6
|
class Client
|
7
|
-
|
8
|
-
GET_API_URL = 'http://emailer.emailroi.com/dbadmin/xml_retrieve2.pl'
|
7
|
+
attr_reader :user_token, :api_password
|
9
8
|
|
10
9
|
def initialize(user_token, api_password)
|
11
10
|
@user_token = user_token
|
12
11
|
@api_password = api_password
|
13
12
|
end
|
14
13
|
|
14
|
+
def contact(email, options = {})
|
15
|
+
Request::Get.send(self,
|
16
|
+
{ :contact => email }.merge(options))
|
17
|
+
end
|
18
|
+
|
15
19
|
def add_contact(fields)
|
16
|
-
|
20
|
+
Request::Post.send(self, build_contact_record(fields))
|
17
21
|
end
|
18
22
|
|
19
23
|
alias :update_contact :add_contact
|
20
24
|
|
21
25
|
def change_contact_email(current_email, new_email)
|
22
|
-
|
23
|
-
:email => current_email,
|
26
|
+
Request::Post.send(self, build_contact_record(
|
27
|
+
:email => current_email,
|
28
|
+
:change_email => new_email))
|
24
29
|
end
|
25
30
|
|
26
31
|
def remove_contact(email)
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
def user_field_definitions
|
31
|
-
response = send_get(:getUserFieldDefinitions => 1)
|
32
|
-
|
33
|
-
if response.success?
|
34
|
-
fields = {}
|
35
|
-
response.data['UserFieldDefinitions']['UserField'].each_with_index do |field,i|
|
36
|
-
fields[field] = "User#{i + 1}"
|
37
|
-
end
|
38
|
-
[ response, fields ]
|
39
|
-
else
|
40
|
-
[ response, {} ]
|
41
|
-
end
|
32
|
+
Request::Post.send(self, build_contact_record(
|
33
|
+
:email => email,
|
34
|
+
:clear_record => 1 ))
|
42
35
|
end
|
43
36
|
|
44
37
|
private
|
45
38
|
|
46
39
|
def build_contact_record(fields)
|
47
40
|
xml = Builder::XmlMarkup.new
|
48
|
-
xml.
|
41
|
+
xml.tag!('Record') do |r|
|
49
42
|
fields.each do |k,v|
|
50
43
|
r.tag!(k.to_s.camelize, v)
|
51
44
|
end
|
52
45
|
end
|
53
46
|
xml
|
54
47
|
end
|
55
|
-
|
56
|
-
def send_get(fields)
|
57
|
-
uri = URI.parse(GET_API_URL)
|
58
|
-
uri.query = fields.merge({
|
59
|
-
:user_token => @user_token,
|
60
|
-
:api_password => @api_password }).collect { |k,v| "#{k}=#{v}" }.join('&')
|
61
|
-
|
62
|
-
Response::Get.new(Crack::XML.parse(Net::HTTP.get(uri))['Retrieve'])
|
63
|
-
end
|
64
|
-
|
65
|
-
def send_post(xml)
|
66
|
-
response = Net::HTTP.post_form(
|
67
|
-
URI.parse(POST_API_URL),
|
68
|
-
{ :user_token => @user_token,
|
69
|
-
:api_password => @api_password,
|
70
|
-
:body => xml }).body
|
71
|
-
Response::Post.new(Crack::XML.parse("<Response>#{response}</Response>")['Response'])
|
72
|
-
end
|
73
48
|
end
|
74
49
|
end
|
data/lib/eroi/request.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
module EROI
|
2
|
+
module Request
|
3
|
+
class Get
|
4
|
+
API_URL = 'http://emailer.emailroi.com/dbadmin/xml_retrieve2.pl'
|
5
|
+
|
6
|
+
def self.send(client, fields)
|
7
|
+
uri = URI.parse(API_URL)
|
8
|
+
uri.query = fields.merge({
|
9
|
+
:user_token => client.user_token,
|
10
|
+
:api_password => client.api_password }).collect { |k,v| "#{k}=#{v}" }.join('&')
|
11
|
+
Response::Get.new(Crack::XML.parse(Net::HTTP.get(uri)))
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Post
|
16
|
+
API_URL = 'http://emailer.emailroi.com/dbadmin/xml_post.pl'
|
17
|
+
|
18
|
+
def self.send(client, xml)
|
19
|
+
response = Net::HTTP.post_form(
|
20
|
+
URI.parse(API_URL),
|
21
|
+
{ :user_token => client.user_token,
|
22
|
+
:api_password => client.api_password,
|
23
|
+
:xml_body => xml }).body
|
24
|
+
Response::Post.new(Crack::XML.parse("<Response>#{response}</Response>"))
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/eroi/response.rb
CHANGED
@@ -12,9 +12,15 @@ module EROI
|
|
12
12
|
|
13
13
|
class Get < Base
|
14
14
|
def success?
|
15
|
-
|
15
|
+
(@data['ErrorCode'] || @data['xml']) ? false : true
|
16
16
|
end
|
17
17
|
|
18
|
+
def contact
|
19
|
+
@data['Retrieve']['Record']
|
20
|
+
end
|
21
|
+
|
22
|
+
alias :contacts :contact
|
23
|
+
|
18
24
|
def error_message
|
19
25
|
case @data['ErrorCode'].to_i
|
20
26
|
when 1
|
@@ -29,13 +35,13 @@ module EROI
|
|
29
35
|
|
30
36
|
class Post < Base
|
31
37
|
def success?
|
32
|
-
@data['Compiled'] == 'Yes' &&
|
33
|
-
@data['DBConnect'] == 'OK' &&
|
34
|
-
@data['XMLUpload'] == 'Complete'
|
38
|
+
@data['Response']['Compiled'] == 'Yes' &&
|
39
|
+
@data['Response']['DBConnect'] == 'OK' &&
|
40
|
+
@data['Response']['XMLUpload'] == 'Complete'
|
35
41
|
end
|
36
42
|
|
37
43
|
def number_of_records
|
38
|
-
@data['ImportRecords'].to_i
|
44
|
+
@data['Response']['ImportRecords'].to_i
|
39
45
|
end
|
40
46
|
end
|
41
47
|
end
|
data/lib/eroi.rb
CHANGED
data/test/eroi/client_test.rb
CHANGED
@@ -3,17 +3,31 @@ require File.join(File.dirname(__FILE__), '..', 'test_helper.rb')
|
|
3
3
|
class TestClient < Test::Unit::TestCase
|
4
4
|
context "client module" do
|
5
5
|
should "create a new eroi client" do
|
6
|
-
|
6
|
+
credentials = fixture(:test)
|
7
|
+
client = EROI.new(credentials[:user_token], credentials[:api_password])
|
7
8
|
assert_equal EROI::Client, client.class
|
8
9
|
end
|
9
10
|
end
|
10
11
|
|
11
12
|
context "using the eroi client" do
|
12
13
|
setup do
|
13
|
-
|
14
|
+
credentials = fixture(:test)
|
15
|
+
@client = EROI.new(credentials[:user_token], credentials[:api_password])
|
14
16
|
FakeWeb.register_uri(
|
15
|
-
:post, EROI::
|
17
|
+
:post, EROI::Request::Post::API_URL,
|
16
18
|
:body => successful_post_response)
|
19
|
+
FakeWeb.register_uri(
|
20
|
+
:get, /#{EROI::Request::Get::API_URL}*/,
|
21
|
+
:body => successful_get_response)
|
22
|
+
end
|
23
|
+
|
24
|
+
context "when finding a contact" do
|
25
|
+
should "respond with a success" do
|
26
|
+
response = @client.contact('longbob@longbob.com', :mailing_lists => 'TestList')
|
27
|
+
|
28
|
+
assert_equal true, response.success?
|
29
|
+
assert_equal 'longbob@longbob.com', response.contact['Email']
|
30
|
+
end
|
17
31
|
end
|
18
32
|
|
19
33
|
context "when adding a contact" do
|
@@ -22,7 +36,7 @@ class TestClient < Test::Unit::TestCase
|
|
22
36
|
:email => 'longbob@longbob.com',
|
23
37
|
:firstname => 'Longbob',
|
24
38
|
:lastname => 'Longson',
|
25
|
-
:mailing_lists => '
|
39
|
+
:mailing_lists => 'TestList')
|
26
40
|
|
27
41
|
assert_equal true, response.success?
|
28
42
|
assert_equal 1, response.number_of_records
|
@@ -45,7 +59,7 @@ class TestClient < Test::Unit::TestCase
|
|
45
59
|
:email => 'longbob@longbob.com',
|
46
60
|
:firstname => 'Longbob',
|
47
61
|
:lastname => 'Longson',
|
48
|
-
:mailing_lists => '
|
62
|
+
:mailing_lists => 'TestList')
|
49
63
|
|
50
64
|
assert_equal true, response.success?
|
51
65
|
assert_equal 1, response.number_of_records
|
@@ -61,36 +75,62 @@ class TestClient < Test::Unit::TestCase
|
|
61
75
|
end
|
62
76
|
end
|
63
77
|
|
64
|
-
context "when retreiving user field definitions" do
|
65
|
-
setup do
|
66
|
-
FakeWeb.register_uri(
|
67
|
-
:get, /#{EROI::Client::GET_API_URL}*/,
|
68
|
-
:body => successful_get_response)
|
69
|
-
end
|
70
|
-
|
71
|
-
should "respond with a success" do
|
72
|
-
response, user_fields = @client.user_field_definitions
|
73
|
-
|
74
|
-
expected_fields = { 'State' => 'User1', 'City' => 'User2' }
|
75
|
-
|
76
|
-
assert_equal true, response.success?
|
77
|
-
assert_equal expected_fields, user_fields
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
78
|
context "when there is an error" do
|
82
79
|
setup do
|
83
80
|
FakeWeb.register_uri(
|
84
|
-
:get, /#{EROI::
|
81
|
+
:get, /#{EROI::Request::Get::API_URL}*/,
|
85
82
|
:body => unsuccessful_get_response(1))
|
86
83
|
end
|
87
84
|
|
88
85
|
should "respond with a failure" do
|
89
|
-
response, fields = @client.
|
86
|
+
response, fields = @client.contact('longbob@longbob.com')
|
90
87
|
|
91
88
|
assert_equal false, response.success?
|
92
|
-
assert /Invalid/ =~ response.error_message
|
93
89
|
end
|
94
90
|
end
|
95
91
|
end
|
92
|
+
|
93
|
+
def successful_post_response
|
94
|
+
<<-EOF
|
95
|
+
<Compiled>Yes</Compiled>
|
96
|
+
<DBConnect>OK</DBConnect>
|
97
|
+
<EditionSuccess>MailingListName_someEditionName</EditionSuccess>
|
98
|
+
<ImportRecords>1</ImportRecords>
|
99
|
+
<ExistingRecords>1526</ExistingRecords>
|
100
|
+
<FinalCompleted>1</FinalCompleted>
|
101
|
+
<Duplicates>1</Duplicates>
|
102
|
+
<InvalidLists>0</InvalidLists>
|
103
|
+
<Triggers></Triggers>
|
104
|
+
<XMLUpload>Complete</XMLUpload>
|
105
|
+
EOF
|
106
|
+
end
|
107
|
+
|
108
|
+
def successful_get_response
|
109
|
+
<<-EOF
|
110
|
+
<Retrieve>
|
111
|
+
<Record>
|
112
|
+
<rec>523</rec>
|
113
|
+
<Email>longbob@longbob.com</Email>
|
114
|
+
<Firstname>Joe</Firstname>
|
115
|
+
<Lastname>Somebody</Lastname>
|
116
|
+
<Company>Some Company</Company>
|
117
|
+
<User1>some data here</User1>
|
118
|
+
<User2>We'll put more data here</User2>
|
119
|
+
<Notes>And we'll put more notes here</Notes>
|
120
|
+
<Edition Name='SomeEdition'>
|
121
|
+
<Sent Format='YYYYMMDDhhmm'>20030913143010</Sent>
|
122
|
+
<Read>5</Read>
|
123
|
+
<Click URL='http://www.somelink.com'>3</Click>
|
124
|
+
<Click URL='http://www.anotherlink.com/page.htm'>1</Click>
|
125
|
+
<S2F>2</S2F>
|
126
|
+
</Edition>
|
127
|
+
<Event id='1' ListEdition='somelist_someedition' Date='2003-Nov-11'>Sent</Event>
|
128
|
+
</Record>
|
129
|
+
</Retrieve>
|
130
|
+
EOF
|
131
|
+
end
|
132
|
+
|
133
|
+
def unsuccessful_get_response(code = 1)
|
134
|
+
"<xml><error>Unable to authorize supplied username and password</error></xml>"
|
135
|
+
end
|
96
136
|
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', 'test_helper.rb')
|
2
|
+
|
3
|
+
class TestClient < Test::Unit::TestCase
|
4
|
+
context "using the eroi client" do
|
5
|
+
context "against a remote server" do
|
6
|
+
setup do
|
7
|
+
FakeWeb.allow_net_connect = true
|
8
|
+
credentials = fixture(:remote)
|
9
|
+
@client = EROI.new(credentials[:user_token], credentials[:api_password])
|
10
|
+
end
|
11
|
+
|
12
|
+
context "when finding a contact" do
|
13
|
+
should "respond with a success" do
|
14
|
+
@client.add_contact(
|
15
|
+
:email => 'longbob@longbob.com',
|
16
|
+
:firstname => 'Longbob',
|
17
|
+
:lastname => 'Longson',
|
18
|
+
:mailing_lists => 'MainList')
|
19
|
+
|
20
|
+
response = @client.contact('longbob@longbob.com', :mailing_lists => 'MainList')
|
21
|
+
|
22
|
+
assert_equal true, response.success?
|
23
|
+
assert_equal 'longbob@longbob.com', response.contact['Email']
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "when adding a contact" do
|
28
|
+
teardown do
|
29
|
+
@client.remove_contact('longbob@boblong.com')
|
30
|
+
end
|
31
|
+
|
32
|
+
should "respond with a success" do
|
33
|
+
response = @client.add_contact(
|
34
|
+
:email => 'longbob@longbob.com',
|
35
|
+
:firstname => 'Longbob',
|
36
|
+
:lastname => 'Longson',
|
37
|
+
:mailing_lists => 'MainList')
|
38
|
+
|
39
|
+
assert_equal true, response.success?
|
40
|
+
assert_equal 1, response.number_of_records
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "when changing a contact's email" do
|
45
|
+
teardown do
|
46
|
+
@client.remove_contact('longbob@longbob.com')
|
47
|
+
@client.remove_contact('longbob@boblong.com')
|
48
|
+
end
|
49
|
+
|
50
|
+
should "respond with a success" do
|
51
|
+
@client.add_contact(
|
52
|
+
:email => 'longbob@longbob.com',
|
53
|
+
:firstname => 'Longbob',
|
54
|
+
:lastname => 'Longson',
|
55
|
+
:mailing_lists => 'MainList')
|
56
|
+
|
57
|
+
response = @client.change_contact_email(
|
58
|
+
'longbob@longbob.com', 'longbob@boblong.com')
|
59
|
+
|
60
|
+
assert_equal true, response.success?
|
61
|
+
assert_equal 1, response.number_of_records
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "when updating a contact" do
|
66
|
+
teardown do
|
67
|
+
@client.remove_contact('longbob@longbob.com')
|
68
|
+
end
|
69
|
+
|
70
|
+
should "respond with a success" do
|
71
|
+
@client.add_contact(
|
72
|
+
:email => 'longbob@longbob.com',
|
73
|
+
:firstname => 'Longbob',
|
74
|
+
:lastname => 'Longson',
|
75
|
+
:mailing_lists => 'MainList')
|
76
|
+
|
77
|
+
response = @client.update_contact(
|
78
|
+
:email => 'longbob@longbob.com',
|
79
|
+
:firstname => 'Longbob',
|
80
|
+
:lastname => 'Longson',
|
81
|
+
:mailing_lists => 'MainList')
|
82
|
+
|
83
|
+
assert_equal true, response.success?
|
84
|
+
assert_equal 1, response.number_of_records
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
context "when removing a contact" do
|
89
|
+
should "respond with a success" do
|
90
|
+
response = @client.remove_contact('longbob@longbob.com')
|
91
|
+
|
92
|
+
assert_equal true, response.success?
|
93
|
+
assert_equal 1, response.number_of_records
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context "when there is an error" do
|
98
|
+
setup do
|
99
|
+
@client = EROI.new('wrong', 'credentials')
|
100
|
+
end
|
101
|
+
|
102
|
+
should "respond with a failure" do
|
103
|
+
response, fields = @client.contact('longbob@longbob.com')
|
104
|
+
|
105
|
+
assert_equal false, response.success?
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -21,58 +21,14 @@ def stub_get(url, filename, status=nil)
|
|
21
21
|
FakeWeb.register_uri(:get, url, options)
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
'
|
24
|
+
def fixture(key)
|
25
|
+
yaml_data = YAML.load(File.read(File.join(File.dirname(__FILE__), 'fixtures.yml')))
|
26
|
+
symbolize_keys(yaml_data)
|
27
|
+
yaml_data[key]
|
26
28
|
end
|
27
29
|
|
28
|
-
def
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
def successful_post_response
|
33
|
-
<<-EOF
|
34
|
-
<Compiled>Yes</Compiled>
|
35
|
-
<DBConnect>OK</DBConnect>
|
36
|
-
<EditionSuccess>MailingListName_someEditionName</EditionSuccess>
|
37
|
-
<ImportRecords>1</ImportRecords>
|
38
|
-
<ExistingRecords>1526</ExistingRecords>
|
39
|
-
<FinalCompleted>1</FinalCompleted>
|
40
|
-
<Duplicates>1</Duplicates>
|
41
|
-
<InvalidLists>0</InvalidLists>
|
42
|
-
<Triggers></Triggers>
|
43
|
-
<XMLUpload>Complete</XMLUpload>
|
44
|
-
EOF
|
45
|
-
end
|
46
|
-
|
47
|
-
def successful_get_response
|
48
|
-
<<-EOF
|
49
|
-
<Retrieve>
|
50
|
-
<Record>
|
51
|
-
<rec>523</rec>
|
52
|
-
<Email>someone@somecompany.com</Email>
|
53
|
-
<Firstname>Joe</Firstname>
|
54
|
-
<Lastname>Somebody</Lastname>
|
55
|
-
<Company>Some Company</Company>
|
56
|
-
<User1>some data here</User1>
|
57
|
-
<User2>We'll put more data here</User2>
|
58
|
-
<Notes>And we'll put more notes here</Notes>
|
59
|
-
<Edition Name="SomeEdition">
|
60
|
-
<Sent Format="YYYYMMDDhhmm">20030913143010</Sent>
|
61
|
-
<Read>5</Read>
|
62
|
-
<Click URL="http://www.somelink.com">3</Click>
|
63
|
-
<Click URL="http://www.anotherlink.com/page.htm">1</Click>
|
64
|
-
<S2F>2</S2F>
|
65
|
-
</Edition>
|
66
|
-
<Event id="1" ListEdition="somelist_someedition" Date="2003-Nov-11">Sent</Event>
|
67
|
-
</Record>
|
68
|
-
<UserFieldDefinitions>
|
69
|
-
<UserField Field="User1" Type="Text">State</UserField>
|
70
|
-
<UserField Field="User2" Type="Text">City</UserField>
|
71
|
-
</UserFieldDefinitions>
|
72
|
-
</Retrieve>
|
73
|
-
EOF
|
74
|
-
end
|
75
|
-
|
76
|
-
def unsuccessful_get_response(code = 1)
|
77
|
-
"<Retrieve><ErrorCode>#{code}</ErrorCode></Retrieve>"
|
30
|
+
def symbolize_keys(hash)
|
31
|
+
return unless hash.is_a?(Hash)
|
32
|
+
hash.symbolize_keys!
|
33
|
+
hash.each{|k,v| symbolize_keys(v)}
|
78
34
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eroi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CardPlayer
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-04 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -23,6 +23,7 @@ extra_rdoc_files:
|
|
23
23
|
- LICENSE
|
24
24
|
- README.rdoc
|
25
25
|
files:
|
26
|
+
- .gitignore
|
26
27
|
- LICENSE
|
27
28
|
- Manifest
|
28
29
|
- README.rdoc
|
@@ -31,9 +32,12 @@ files:
|
|
31
32
|
- eroi.gemspec
|
32
33
|
- lib/eroi.rb
|
33
34
|
- lib/eroi/client.rb
|
35
|
+
- lib/eroi/request.rb
|
34
36
|
- lib/eroi/response.rb
|
35
37
|
- lib/eroi/version.rb
|
36
38
|
- test/eroi/client_test.rb
|
39
|
+
- test/fixtures.yml.sample
|
40
|
+
- test/remote/client_test.rb
|
37
41
|
- test/test_helper.rb
|
38
42
|
has_rdoc: true
|
39
43
|
homepage: http://github.com/cardplayer/eroi
|
@@ -65,4 +69,5 @@ specification_version: 3
|
|
65
69
|
summary: API interface to eROI.
|
66
70
|
test_files:
|
67
71
|
- test/eroi/client_test.rb
|
72
|
+
- test/remote/client_test.rb
|
68
73
|
- test/test_helper.rb
|