streamsend 1.0.0.rc1 → 1.0.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +1 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile.lock +17 -16
- data/Rakefile +8 -1
- data/config/.keep +0 -0
- data/lib/streamsend/api/base/create.rb +2 -0
- data/lib/streamsend/api/base/index.rb +2 -0
- data/lib/streamsend/api/exception.rb +3 -0
- data/lib/streamsend/api/person.rb +31 -8
- data/lib/streamsend/version.rb +1 -1
- data/spec/lib/streamsend/api/integration/email_spec.rb +1 -1
- data/spec/lib/streamsend/api/integration/from_email_address_spec.rb +2 -1
- data/spec/lib/streamsend/api/integration/import_spec.rb +1 -1
- data/spec/lib/streamsend/api/integration/person_spec.rb +75 -14
- data/spec/lib/streamsend/api/integration/upload_spec.rb +1 -0
- data/spec/lib/streamsend/api/unit/base/create_spec.rb +7 -4
- data/spec/lib/streamsend/api/unit/base/index_spec.rb +10 -5
- data/spec/lib/streamsend/api/unit/base/show_spec.rb +10 -5
- data/spec/lib/streamsend/api/unit/base/update_spec.rb +0 -5
- data/spec/lib/streamsend/api/unit/blast_spec.rb +3 -4
- data/spec/lib/streamsend/api/unit/bounce_spec.rb +3 -3
- data/spec/lib/streamsend/api/unit/click_spec.rb +2 -2
- data/spec/lib/streamsend/api/unit/field_option_spec.rb +3 -5
- data/spec/lib/streamsend/api/unit/link_spec.rb +3 -2
- data/spec/lib/streamsend/api/unit/list_spec.rb +4 -2
- data/spec/lib/streamsend/api/unit/membership_spec.rb +3 -3
- data/spec/lib/streamsend/api/unit/person_spec.rb +14 -19
- data/spec/lib/streamsend/api/unit/session_spec.rb +1 -0
- data/spec/lib/streamsend/api/unit/unsubscribe_spec.rb +2 -2
- data/spec/lib/streamsend/api/unit/user_spec.rb +4 -4
- data/streamsend.gemspec +3 -2
- metadata +135 -144
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZWU3MmE4MDU0OGZiMTE3NjUzMWNmZDU0NDI1YzA5NjlmOGJlNjFjYQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NTE5MTQ4OTNmOGUwNzVlN2RhOGY1MWZmNzVmYjM0NDNhZTczOTg5ZA==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZTFiODlkNDVkN2RkZjhjZjJjYjk5MzY1ZTQ1ZWQzZTg4MzQzODdlYWMxNmM2
|
10
|
+
NDBlZDY3OTljZTkzOTI3OGRkM2I4ZWMxYzAyMWE1ZGI5YzAxMjZmM2M0MjBh
|
11
|
+
OTc3ZjkyMGRhMTA4ZjA1ZDI5YThjOGRkYjY1YTA2ZDZjMjVmMmQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZTVmMGZiOTMwYjM5NDU2MWFjYzU1ODFhNmQ1OThmN2M1ZmQ2NDIxYTAyMzgx
|
14
|
+
ZmQ5YjhjYzFmZmJjY2MyZmFmYjM3MmI3NjhhMGMyYjFhZjQzMjk3MjVkMTQ5
|
15
|
+
NTc4MTUwZmU3MmQ0YTUxOTdhYzNjMThiMzNkNTBiOTljM2IwMzE=
|
data/.gitignore
CHANGED
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
streamsend-ruby
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.9.3-p448
|
data/Gemfile.lock
CHANGED
@@ -15,24 +15,29 @@ GEM
|
|
15
15
|
addressable (2.3.5)
|
16
16
|
builder (3.2.2)
|
17
17
|
columnize (0.3.6)
|
18
|
-
crack (0.4.
|
18
|
+
crack (0.4.1)
|
19
19
|
safe_yaml (~> 0.9.0)
|
20
|
+
debugger (1.6.2)
|
21
|
+
columnize (>= 0.3.1)
|
22
|
+
debugger-linecache (~> 1.2.0)
|
23
|
+
debugger-ruby_core_source (~> 1.2.3)
|
24
|
+
debugger-linecache (1.2.0)
|
25
|
+
debugger-ruby_core_source (1.2.3)
|
20
26
|
diff-lcs (1.2.4)
|
21
27
|
git-commit-story (0.1.5)
|
22
28
|
httmultiparty (0.3.10)
|
23
29
|
httparty (>= 0.7.3)
|
24
30
|
multipart-post
|
25
|
-
httparty (0.
|
26
|
-
|
31
|
+
httparty (0.12.0)
|
32
|
+
json (~> 1.8)
|
27
33
|
multi_xml (>= 0.5.2)
|
28
34
|
i18n (0.6.5)
|
29
|
-
|
30
|
-
|
31
|
-
multi_json (1.8.1)
|
35
|
+
json (1.8.0)
|
36
|
+
multi_json (1.8.2)
|
32
37
|
multi_xml (0.5.5)
|
33
38
|
multipart-post (1.2.0)
|
34
39
|
pair-salad (0.1.1)
|
35
|
-
|
40
|
+
rake (10.1.0)
|
36
41
|
rspec (2.14.1)
|
37
42
|
rspec-core (~> 2.14.0)
|
38
43
|
rspec-expectations (~> 2.14.0)
|
@@ -41,13 +46,8 @@ GEM
|
|
41
46
|
rspec-expectations (2.14.3)
|
42
47
|
diff-lcs (>= 1.1.3, < 2.0)
|
43
48
|
rspec-mocks (2.14.3)
|
44
|
-
|
45
|
-
|
46
|
-
ruby-debug-base (~> 0.10.4.0)
|
47
|
-
ruby-debug-base (0.10.4)
|
48
|
-
linecache (>= 0.3)
|
49
|
-
safe_yaml (0.9.3)
|
50
|
-
webmock (1.12.3)
|
49
|
+
safe_yaml (0.9.7)
|
50
|
+
webmock (1.15.0)
|
51
51
|
addressable (>= 2.2.7)
|
52
52
|
crack (>= 0.3.2)
|
53
53
|
|
@@ -55,9 +55,10 @@ PLATFORMS
|
|
55
55
|
ruby
|
56
56
|
|
57
57
|
DEPENDENCIES
|
58
|
+
debugger
|
58
59
|
git-commit-story
|
59
60
|
pair-salad
|
61
|
+
rake
|
60
62
|
rspec
|
61
|
-
ruby-debug
|
62
63
|
streamsend!
|
63
|
-
webmock
|
64
|
+
webmock
|
data/Rakefile
CHANGED
data/config/.keep
ADDED
File without changes
|
@@ -8,6 +8,8 @@ module StreamSend
|
|
8
8
|
case response.code
|
9
9
|
when 200
|
10
10
|
response.parsed_response[namespace].collect { |data| StreamSend::Api::Result.new(data) }
|
11
|
+
when 401
|
12
|
+
raise StreamSend::Api::UnauthorizedException.new("Please check your credentials and host: " + session.base_uri)
|
11
13
|
else
|
12
14
|
raise StreamSend::Api::Exception.new("Could not find any #{namespace}. (#{response.code})")
|
13
15
|
end
|
@@ -14,17 +14,40 @@ module StreamSend
|
|
14
14
|
end
|
15
15
|
|
16
16
|
class Index < StreamSend::Api::Call::AudienceIndex
|
17
|
-
def execute(
|
18
|
-
@
|
19
|
-
|
20
|
-
super(options)
|
17
|
+
def execute(list_id = nil, index_options = {})
|
18
|
+
@list_id = list_id
|
19
|
+
super(index_options)
|
21
20
|
end
|
22
21
|
|
23
22
|
def uri
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
return "#{base_audience_only}/lists/#{@list_id}/people.xml" if @list_id
|
24
|
+
"#{super}#{paging_query_string}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class EmailAddress < StreamSend::Api::Call::AudienceIndex
|
29
|
+
def execute(email_address, owner_id = nil, index_options = {})
|
30
|
+
index_options.merge!(:query => { :email_address => email_address })
|
31
|
+
index_options[:query][:owner_id] = owner_id if owner_id
|
32
|
+
super(index_options)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class TrackingHash < StreamSend::Api::Call::AudienceIndex
|
37
|
+
def execute(tracking_hash, index_options = {})
|
38
|
+
index_options.merge!(:query => { :tracking_hash => tracking_hash })
|
39
|
+
super(index_options)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class Owner < StreamSend::Api::Call::AudienceIndex
|
44
|
+
def execute(owner_id, index_options = {})
|
45
|
+
index_options.merge!(:query => { :owner_id => owner_id })
|
46
|
+
super(index_options)
|
47
|
+
end
|
48
|
+
|
49
|
+
def uri
|
50
|
+
"#{super}#{paging_query_string}"
|
28
51
|
end
|
29
52
|
end
|
30
53
|
|
data/lib/streamsend/version.rb
CHANGED
@@ -17,7 +17,7 @@ module StreamSend
|
|
17
17
|
|
18
18
|
describe Index do
|
19
19
|
it "returns an array of emails" do
|
20
|
-
pending "This is a resource hog right now -- returns everything"
|
20
|
+
# pending "This is a resource hog right now -- returns everything"
|
21
21
|
indexer = Index.new(session)
|
22
22
|
emails = indexer.execute
|
23
23
|
expect(emails.count).to be > 0
|
@@ -5,7 +5,8 @@ module StreamSend
|
|
5
5
|
module FromEmailAddress
|
6
6
|
describe "FromEmailAddress calls" do
|
7
7
|
let(:session){ StreamSend::Api::Session.new() }
|
8
|
-
let(:
|
8
|
+
let(:randomish){ DateTime.now.to_i.to_s }
|
9
|
+
let(:email_hash){ { :from_email_address => { :email_address => "testing+#{randomish}@badd.address" } } }
|
9
10
|
|
10
11
|
before do
|
11
12
|
WebMock.disable!
|
@@ -5,6 +5,9 @@ module StreamSend
|
|
5
5
|
module Person
|
6
6
|
describe "Person calls" do
|
7
7
|
let(:session){ StreamSend::Api::Session.new() }
|
8
|
+
let(:creator){ Create.new(session) }
|
9
|
+
let(:indexer){ Index.new(session) }
|
10
|
+
let(:shower){ Show.new(session) }
|
8
11
|
let(:randomish){ DateTime.now.to_i.to_s }
|
9
12
|
let(:person_hash){ { :person => { :email_address => "joe+#{randomish}@some.place" } } }
|
10
13
|
|
@@ -16,17 +19,71 @@ module StreamSend
|
|
16
19
|
WebMock.enable!
|
17
20
|
end
|
18
21
|
|
22
|
+
describe Create do
|
23
|
+
context "with valid email address" do
|
24
|
+
it "returns the created person's id" do
|
25
|
+
id = creator.execute(person_hash)
|
26
|
+
expect(id).to be > 0
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "with invalid email address" do
|
31
|
+
let(:bogus_email){ { :person => { :email_address => "bogus" } } }
|
32
|
+
|
33
|
+
it "receives a SemanticException" do
|
34
|
+
expect do
|
35
|
+
creator.execute(bogus_email)
|
36
|
+
end.to raise_error ::StreamSend::Api::SemanticException
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
19
41
|
describe Index do
|
20
42
|
it "returns an array of people" do
|
21
|
-
creator = Create.new(session)
|
22
43
|
id = creator.execute(person_hash)
|
23
44
|
|
24
|
-
indexer = Index.new(session)
|
25
45
|
people = indexer.execute
|
26
46
|
expect(people.count).to be > 0
|
27
47
|
|
28
|
-
|
29
|
-
|
48
|
+
destroyer = Destroy.new(session)
|
49
|
+
destroyer.execute(id)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "returns an index by email address" do
|
53
|
+
id = creator.execute(person_hash)
|
54
|
+
emailer = EmailAddress.new(session)
|
55
|
+
results = emailer.execute(person_hash[:person][:email_address])
|
56
|
+
expect(results.count).to be > 0
|
57
|
+
end
|
58
|
+
|
59
|
+
it "returns an index by email address and owner id" do
|
60
|
+
# pending "Owner is not accessible via API -- relies on owner fixture in account"
|
61
|
+
owner_id = "ID 1373999841"
|
62
|
+
person_hash[:person][:owner_id] = owner_id
|
63
|
+
id = creator.execute(person_hash)
|
64
|
+
person = shower.execute(id)
|
65
|
+
emailer = EmailAddress.new(session)
|
66
|
+
results = emailer.execute(person_hash[:person][:email_address], owner_id)
|
67
|
+
expect(results.count).to be > 0
|
68
|
+
end
|
69
|
+
|
70
|
+
it "returns an index by tracking hash" do
|
71
|
+
id = creator.execute(person_hash)
|
72
|
+
person = shower.execute(id)
|
73
|
+
tracker = TrackingHash.new(session)
|
74
|
+
results = tracker.execute(person.tracking_hash)
|
75
|
+
expect(results.count).to be > 0
|
76
|
+
end
|
77
|
+
|
78
|
+
it "returns an index by owner id" do
|
79
|
+
# pending "Owner is not accessible via API -- relies on owner fixture in account"
|
80
|
+
owner_id = "ID 1373999841"
|
81
|
+
person_hash[:person][:owner_id] = owner_id
|
82
|
+
id = creator.execute(person_hash)
|
83
|
+
person = shower.execute(id)
|
84
|
+
owner_index = Owner.new(session)
|
85
|
+
people = owner_index.execute(owner_id)
|
86
|
+
expect(people.count).to be > 0
|
30
87
|
end
|
31
88
|
end
|
32
89
|
|
@@ -56,7 +113,6 @@ module StreamSend
|
|
56
113
|
|
57
114
|
describe Activate do
|
58
115
|
it "activates a new user" do
|
59
|
-
creator = Create.new(session)
|
60
116
|
id = creator.execute(person_hash)
|
61
117
|
activator = Activate.new(session)
|
62
118
|
expect(activator.execute(id).code).to eq(200)
|
@@ -76,16 +132,13 @@ module StreamSend
|
|
76
132
|
|
77
133
|
describe Show do
|
78
134
|
it "returns a person by id" do
|
79
|
-
creator = Create.new(session)
|
80
135
|
id = creator.execute(person_hash)
|
81
|
-
|
82
|
-
shower = Show.new(session)
|
83
136
|
person = shower.execute(id)
|
84
137
|
expect(person.email_address).to eq(person_hash[:person][:email_address])
|
85
138
|
expect(person.id).to eq(id)
|
86
139
|
|
87
|
-
|
88
|
-
|
140
|
+
destroyer = Destroy.new(session)
|
141
|
+
destroyer.execute(id)
|
89
142
|
end
|
90
143
|
end
|
91
144
|
|
@@ -94,7 +147,6 @@ module StreamSend
|
|
94
147
|
creator = Create.new(session)
|
95
148
|
id = creator.execute(person_hash)
|
96
149
|
|
97
|
-
shower = Show.new(session)
|
98
150
|
person = shower.execute(id)
|
99
151
|
person.email_address = "me+#{randomish}@you.too"
|
100
152
|
updater = Update.new(session)
|
@@ -103,14 +155,23 @@ module StreamSend
|
|
103
155
|
expect(person_updated.email_address).to eq(person_hash[:person][:email_address])
|
104
156
|
expect(person_updated.id).to eq(id)
|
105
157
|
|
106
|
-
|
107
|
-
|
158
|
+
destroyer = Destroy.new(session)
|
159
|
+
destroyer.execute(id)
|
108
160
|
end
|
109
161
|
end
|
110
162
|
|
111
163
|
describe Destroy do
|
112
164
|
it "removes the specified person" do
|
113
|
-
|
165
|
+
creator = Create.new(session)
|
166
|
+
id = creator.execute(person_hash)
|
167
|
+
|
168
|
+
destroyer = Destroy.new(session)
|
169
|
+
destroyer.execute(id)
|
170
|
+
|
171
|
+
expect do
|
172
|
+
shower = Show.new(session)
|
173
|
+
person = shower.execute(id)
|
174
|
+
end.to raise_exception(StreamSend::Api::Exception, "Could not find any people with the specified id. (404)")
|
114
175
|
end
|
115
176
|
end
|
116
177
|
end
|
@@ -8,16 +8,21 @@ module StreamSend
|
|
8
8
|
let(:session){ StreamSend::Api::Session.new("test", "password", "http://default.base") }
|
9
9
|
let(:creator){ Create.new(session) }
|
10
10
|
|
11
|
+
it "Recognized unauthorized exceptions" do
|
12
|
+
stub_request(:post, "http://test:password@default.base/calls.xml").to_return(:status => 401, :body => "" )
|
13
|
+
expect do
|
14
|
+
creator.execute({})
|
15
|
+
end.to raise_error(UnauthorizedException)
|
16
|
+
end
|
17
|
+
|
11
18
|
it "parses the header to return the id of the object" do
|
12
19
|
stub_request(:post, "http://test:password@default.base/calls.xml").
|
13
|
-
with(:body => "name=testing&id=123").
|
14
20
|
to_return(:status => 201, :body => "", :headers => {'Location' => 'something/something/101'})
|
15
21
|
expect(creator.execute(obj_hash)).to eq(101)
|
16
22
|
end
|
17
23
|
|
18
24
|
it "builds an error message with the namespace name if the status is not a 200" do
|
19
25
|
stub_request(:post, "http://test:password@default.base/calls.xml").
|
20
|
-
with(:body => "name=testing&id=123").
|
21
26
|
to_return(:status => 404, :body => "")
|
22
27
|
expect do
|
23
28
|
creator.execute(obj_hash)
|
@@ -41,7 +46,6 @@ module StreamSend
|
|
41
46
|
XML
|
42
47
|
stub_request(:get, "http://test:password@default.base/audiences.xml").to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
43
48
|
stub_request(:post, "http://test:password@default.base/audiences/1/calls.xml").
|
44
|
-
with(:body => "name=testing&id=123").
|
45
49
|
to_return(:status => 201, :body => "", :headers => {'Location' => 'something/something/101'})
|
46
50
|
creator.execute(obj_hash)
|
47
51
|
expect(creator.uri).to eq("http://default.base/audiences/1/calls.xml")
|
@@ -56,7 +60,6 @@ module StreamSend
|
|
56
60
|
|
57
61
|
it "overrides uri and provides a blast uri" do
|
58
62
|
stub_request(:post, "http://test:password@default.base/blasts/1234/calls.xml").
|
59
|
-
with(:body => "name=testing&id=123").
|
60
63
|
to_return(:status => 201, :body => "", :headers => {'Location' => 'something/something/101'})
|
61
64
|
creator.execute(blast_id, obj_hash)
|
62
65
|
expect(creator.uri).to eq("http://default.base/blasts/1234/calls.xml")
|
@@ -11,7 +11,8 @@ module StreamSend
|
|
11
11
|
|
12
12
|
describe "Uris" do
|
13
13
|
before do
|
14
|
-
stub_request(:get, "http://test:password@default.base/calls.xml").
|
14
|
+
stub_request(:get, "http://test:password@default.base/calls.xml").
|
15
|
+
to_return(:status => 200, :body => xml, headers: { 'Accept' => 'text/xml', 'Content-type' => 'text/xml' })
|
15
16
|
end
|
16
17
|
|
17
18
|
it "builds a index uri" do
|
@@ -34,7 +35,8 @@ module StreamSend
|
|
34
35
|
|
35
36
|
describe "#execute" do
|
36
37
|
it "creates an array of Result objects" do
|
37
|
-
stub_request(:get, "http://test:password@default.base/calls.xml").
|
38
|
+
stub_request(:get, "http://test:password@default.base/calls.xml").
|
39
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-type' => 'application/xml'})
|
38
40
|
expect(indexer.execute[0].test).to eq(1)
|
39
41
|
end
|
40
42
|
|
@@ -61,8 +63,10 @@ module StreamSend
|
|
61
63
|
</audience>
|
62
64
|
</audiences>
|
63
65
|
XML
|
64
|
-
stub_request(:get, "http://test:password@default.base/audiences.xml").
|
65
|
-
|
66
|
+
stub_request(:get, "http://test:password@default.base/audiences.xml").
|
67
|
+
to_return(:status => 200, :body => xml, headers: { 'Accept' => 'text/xml', 'Content-type' => 'text/xml' })
|
68
|
+
stub_request(:get, "http://test:password@default.base/audiences/1/calls.xml").
|
69
|
+
to_return(:status => 200, :body => call_xml, headers: { 'Accept' => 'text/xml', 'Content-type' => 'text/xml' })
|
66
70
|
indexer.execute
|
67
71
|
expect(indexer.uri).to eq("http://default.base/audiences/1/calls.xml")
|
68
72
|
end
|
@@ -75,7 +79,8 @@ module StreamSend
|
|
75
79
|
let(:blast_id){ 1432 }
|
76
80
|
|
77
81
|
it "overrides uri and returns a uri based on the provided blast_id and appends paging" do
|
78
|
-
stub_request(:get, "http://test:password@default.base/blasts/1432/calls.xml?page=1&per_page=100").
|
82
|
+
stub_request(:get, "http://test:password@default.base/blasts/1432/calls.xml?page=1&per_page=100").
|
83
|
+
to_return(:status => 200, :body => xml, headers: { 'Accept' => 'text/xml', 'Content-type' => 'text/xml' })
|
79
84
|
indexer.execute(blast_id)
|
80
85
|
expect(indexer.uri).to eq("http://default.base/blasts/1432/calls.xml?page=1&per_page=100")
|
81
86
|
end
|
@@ -10,19 +10,22 @@ module StreamSend
|
|
10
10
|
let(:xml){ "<?xml version=\"1.0\" encoding=\"UTF-8\"?><call><test type=\"integer\">1</test></call>" }
|
11
11
|
|
12
12
|
it "returns a Result object if the object is found" do
|
13
|
-
stub_request(:get, "http://test:password@default.base/calls/1.xml").
|
13
|
+
stub_request(:get, "http://test:password@default.base/calls/1.xml").
|
14
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
14
15
|
expect(shower.execute(id).test).to eq(1)
|
15
16
|
end
|
16
17
|
|
17
18
|
it "throws an exception if the object is not found" do
|
18
|
-
stub_request(:get, "http://test:password@default.base/calls/1.xml").
|
19
|
+
stub_request(:get, "http://test:password@default.base/calls/1.xml").
|
20
|
+
to_return(:status => 404, :body => xml, :headers => {})
|
19
21
|
expect do
|
20
22
|
shower.execute(id)
|
21
23
|
end.to raise_error(StreamSend::Api::Exception, "Could not find any calls with the specified id. (404)")
|
22
24
|
end
|
23
25
|
|
24
26
|
it "creates a uri including the specified id" do
|
25
|
-
stub_request(:get, "http://test:password@default.base/calls/1.xml").
|
27
|
+
stub_request(:get, "http://test:password@default.base/calls/1.xml").
|
28
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
26
29
|
shower.execute(id)
|
27
30
|
expect(shower.uri).to eq("http://default.base/calls/1.xml")
|
28
31
|
end
|
@@ -44,7 +47,8 @@ module StreamSend
|
|
44
47
|
</audiences>
|
45
48
|
XML
|
46
49
|
stub_request(:get, "http://test:password@default.base/audiences.xml").to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
47
|
-
stub_request(:get, "http://test:password@default.base/audiences/1/calls/1.xml").
|
50
|
+
stub_request(:get, "http://test:password@default.base/audiences/1/calls/1.xml").
|
51
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
48
52
|
shower.execute(id)
|
49
53
|
expect(shower.uri).to eq("http://default.base/audiences/1/calls/1.xml")
|
50
54
|
end
|
@@ -58,7 +62,8 @@ module StreamSend
|
|
58
62
|
let(:blast_id){ 55 }
|
59
63
|
|
60
64
|
it "creates a uri using the blast id provided" do
|
61
|
-
stub_request(:get, "http://test:password@default.base/blasts/55/calls/4321.xml").
|
65
|
+
stub_request(:get, "http://test:password@default.base/blasts/55/calls/4321.xml").
|
66
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
62
67
|
shower.execute(blast_id, id)
|
63
68
|
expect(shower.uri).to eq("http://default.base/blasts/55/calls/4321.xml")
|
64
69
|
end
|
@@ -11,21 +11,18 @@ module StreamSend
|
|
11
11
|
|
12
12
|
it "returns true when the object is updated successfully" do
|
13
13
|
stub_request(:put, "http://test:password@default.base/calls/123.xml").
|
14
|
-
with(:body => "name=testing&id=123").
|
15
14
|
to_return(:status => 200, :body => "", :headers => {})
|
16
15
|
expect(updater.execute(id, obj_hash)).to eq(true)
|
17
16
|
end
|
18
17
|
|
19
18
|
it "returns true when the object is updated successfully" do
|
20
19
|
stub_request(:put, "http://test:password@default.base/calls/123.xml").
|
21
|
-
with(:body => "name=testing&id=123").
|
22
20
|
to_return(:status => 404, :body => "", :headers => {})
|
23
21
|
expect(updater.execute(id, obj_hash)).to eq(false)
|
24
22
|
end
|
25
23
|
|
26
24
|
it "creates a uri for updating using the id" do
|
27
25
|
stub_request(:put, "http://test:password@default.base/calls/123.xml").
|
28
|
-
with(:body => "name=testing&id=123").
|
29
26
|
to_return(:status => 200, :body => "", :headers => {})
|
30
27
|
updater.execute(id, obj_hash)
|
31
28
|
expect(updater.uri).to eq("http://default.base/calls/123.xml")
|
@@ -49,7 +46,6 @@ module StreamSend
|
|
49
46
|
XML
|
50
47
|
stub_request(:get, "http://test:password@default.base/audiences.xml").to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
51
48
|
stub_request(:put, "http://test:password@default.base/audiences/1/calls/123.xml").
|
52
|
-
with(:body => "name=testing&id=123").
|
53
49
|
to_return(:status => 200, :body => "", :headers => {})
|
54
50
|
updater.execute(id, obj_hash)
|
55
51
|
expect(updater.uri).to eq("http://default.base/audiences/1/calls/123.xml")
|
@@ -65,7 +61,6 @@ module StreamSend
|
|
65
61
|
|
66
62
|
it "overrides uri and provides a blast uri" do
|
67
63
|
stub_request(:put, "http://test:password@default.base/blasts/1234/calls/123.xml").
|
68
|
-
with(:body => "name=testing&id=123").
|
69
64
|
to_return(:status => 200, :body => "", :headers => {})
|
70
65
|
updater.execute(blast_id, id, obj_hash)
|
71
66
|
expect(updater.uri).to eq("http://default.base/blasts/1234/calls/123.xml")
|
@@ -13,7 +13,7 @@ module StreamSend
|
|
13
13
|
it "returns the scheduled blast uri" do
|
14
14
|
session.stub(:audience_id).and_return(1)
|
15
15
|
stub_request(:get, "http://test:password@default.base/audiences/1/blasts.xml?page=1&per_page=100").
|
16
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
16
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
17
17
|
indexer.execute
|
18
18
|
expect(indexer.uri).to eq("http://default.base/audiences/1/blasts.xml?page=1&per_page=100")
|
19
19
|
end
|
@@ -25,7 +25,7 @@ module StreamSend
|
|
25
25
|
before do
|
26
26
|
session.stub(:audience_id).and_return(1)
|
27
27
|
stub_request(:get, "http://test:password@default.base/audiences/1/blasts/scheduled.xml?page=1&per_page=100").
|
28
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
28
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
29
29
|
scheduler.execute
|
30
30
|
end
|
31
31
|
|
@@ -40,7 +40,7 @@ module StreamSend
|
|
40
40
|
before do
|
41
41
|
session.stub(:audience_id).and_return(1)
|
42
42
|
stub_request(:get, "http://test:password@default.base/audiences/1/blasts/sent.xml?page=1&per_page=100").
|
43
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
43
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
44
44
|
scheduler.execute
|
45
45
|
end
|
46
46
|
|
@@ -56,7 +56,6 @@ module StreamSend
|
|
56
56
|
before do
|
57
57
|
session.stub(:audience_id).and_return(1)
|
58
58
|
stub_request(:post, "http://test:password@default.base/audiences/1/blasts/test.xml").
|
59
|
-
with(:body => "name=testing&id=123").
|
60
59
|
to_return(:status => 200, :body => "", :headers => {'Location' => 'something/something/101'})
|
61
60
|
end
|
62
61
|
|
@@ -8,13 +8,13 @@ module StreamSend
|
|
8
8
|
let(:blast_id){ 15 }
|
9
9
|
let(:soft_bounce){ Soft.new(session) }
|
10
10
|
let(:hard_bounce){ Hard.new(session) }
|
11
|
-
let(:xml){ "<?xml version=\"1.0\" encoding=\"UTF-8\"?><bounces type=\"array\"><bounce><test type=\"integer\">1
|
11
|
+
let(:xml){ "<?xml version=\"1.0\" encoding=\"UTF-8\"?><bounces type=\"array\"><bounce><test type=\"integer\">1</test></bounce></bounces>" }
|
12
12
|
|
13
13
|
before do
|
14
14
|
stub_request(:get, "http://test:password@default.base/blasts/15/bounces/soft.xml?page=1&per_page=100").
|
15
|
-
|
15
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
16
16
|
stub_request(:get, "http://test:password@default.base/blasts/15/bounces/hard.xml?page=1&per_page=100").
|
17
|
-
|
17
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
18
18
|
soft_bounce.execute(blast_id)
|
19
19
|
hard_bounce.execute(blast_id)
|
20
20
|
end
|
@@ -12,9 +12,9 @@ module StreamSend
|
|
12
12
|
|
13
13
|
before do
|
14
14
|
stub_request(:get, "https://test:pass@default.base/blasts/1/links/1/clicks.xml?page=1&per_page=100").
|
15
|
-
|
15
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
16
16
|
stub_request(:get, "https://test:pass@default.base/blasts/1/clicks.xml?page=1&per_page=100").
|
17
|
-
|
17
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
18
18
|
end
|
19
19
|
|
20
20
|
describe Index do
|
@@ -17,7 +17,7 @@ module StreamSend
|
|
17
17
|
|
18
18
|
before do
|
19
19
|
stub_request(:get, "https://test:pass@default.base/audiences/1/fields/221/options.xml").
|
20
|
-
|
20
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
21
21
|
session.stub(:audience_id).and_return(1)
|
22
22
|
end
|
23
23
|
|
@@ -31,7 +31,7 @@ module StreamSend
|
|
31
31
|
describe Show do
|
32
32
|
it "returns a uri for field option show" do
|
33
33
|
stub_request(:get, "https://test:pass@default.base/audiences/1/fields/221/options/1.xml").
|
34
|
-
|
34
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
35
35
|
shower.execute(field_id, option_id)
|
36
36
|
expect(shower.uri).to eq("https://default.base/audiences/1/fields/221/options/1.xml")
|
37
37
|
end
|
@@ -40,8 +40,7 @@ module StreamSend
|
|
40
40
|
describe Update do
|
41
41
|
it "returns a uri for field option update" do
|
42
42
|
stub_request(:put, "https://test:pass@default.base/audiences/1/fields/221/options/1.xml").
|
43
|
-
|
44
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
43
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
45
44
|
updater.execute(field_id, option_id, obj_hash)
|
46
45
|
expect(updater.uri).to eq("https://default.base/audiences/1/fields/221/options/1.xml")
|
47
46
|
end
|
@@ -50,7 +49,6 @@ module StreamSend
|
|
50
49
|
describe Create do
|
51
50
|
it "returns a uri for field option create" do
|
52
51
|
stub_request(:post, "https://test:pass@default.base/audiences/1/fields/221/options.xml").
|
53
|
-
with(:body => "name=testing&id=123").
|
54
52
|
to_return(:status => 201, :body => "", :headers => {'Location' => 'something/something/101'})
|
55
53
|
creator.execute(field_id, obj_hash)
|
56
54
|
expect(creator.uri).to eq("https://default.base/audiences/1/fields/221/options.xml")
|
@@ -14,7 +14,7 @@ module StreamSend
|
|
14
14
|
describe Index do
|
15
15
|
it "creates a uri for blast links" do
|
16
16
|
stub_request(:get, "https://test:password@default.base/blasts/1/links.xml?page=1&per_page=100").
|
17
|
-
|
17
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
18
18
|
indexer.execute(blast_id)
|
19
19
|
expect(indexer.uri).to eq("https://default.base/blasts/#{blast_id}/links.xml?page=1&per_page=100")
|
20
20
|
end
|
@@ -22,7 +22,8 @@ module StreamSend
|
|
22
22
|
|
23
23
|
describe Show do
|
24
24
|
it "creates a uri for a specific blast link" do
|
25
|
-
stub_request(:get, "https://test:password@default.base/blasts/1/links/1.xml").
|
25
|
+
stub_request(:get, "https://test:password@default.base/blasts/1/links/1.xml").
|
26
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
26
27
|
shower.execute(blast_id, link_id)
|
27
28
|
expect(shower.uri).to eq("https://default.base/blasts/#{blast_id}/links/#{link_id}.xml")
|
28
29
|
end
|
@@ -16,13 +16,15 @@ module StreamSend
|
|
16
16
|
|
17
17
|
describe Index do
|
18
18
|
it "creates a uri for lists" do
|
19
|
-
stub_request(:get, "https://test:password@default.base/audiences/1/lists.xml").
|
19
|
+
stub_request(:get, "https://test:password@default.base/audiences/1/lists.xml").
|
20
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
20
21
|
indexer.execute
|
21
22
|
expect(indexer.uri).to eq("https://default.base/audiences/#{audience_id}/lists.xml")
|
22
23
|
end
|
23
24
|
|
24
25
|
it "creates a uri for a persons lists" do
|
25
|
-
stub_request(:get, "https://test:password@default.base/audiences/1/people/543/lists.xml").
|
26
|
+
stub_request(:get, "https://test:password@default.base/audiences/1/people/543/lists.xml").
|
27
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
26
28
|
indexer.execute(person_id)
|
27
29
|
expect(indexer.uri).to eq("https://default.base/audiences/#{audience_id}/people/#{person_id}/lists.xml")
|
28
30
|
end
|
@@ -18,7 +18,7 @@ module StreamSend
|
|
18
18
|
describe Index do
|
19
19
|
it "returns a uri for an index of memberships" do
|
20
20
|
stub_request(:get, "https://test:password@default.base/audiences/1/people/123/memberships.xml?page=1&per_page=100").
|
21
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
21
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
22
22
|
indexer = Index.new(session)
|
23
23
|
indexer.execute(person_id)
|
24
24
|
expect(indexer.uri).to eq("https://default.base/audiences/#{audience_id}/people/#{person_id}/memberships.xml?page=1&per_page=100")
|
@@ -26,7 +26,7 @@ module StreamSend
|
|
26
26
|
|
27
27
|
it "returns a uri for an index of memberships with custom paging" do
|
28
28
|
stub_request(:get, "https://test:password@default.base/audiences/1/people/123/memberships.xml?page=12&per_page=200").
|
29
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
29
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
30
30
|
indexer = Index.new(session)
|
31
31
|
indexer.execute(person_id, nil, options)
|
32
32
|
expect(indexer.uri).to eq("https://default.base/audiences/#{audience_id}/people/#{person_id}/memberships.xml?page=12&per_page=200")
|
@@ -34,7 +34,7 @@ module StreamSend
|
|
34
34
|
|
35
35
|
it "returns a uri for an index of memberships by list id" do
|
36
36
|
stub_request(:get, "https://test:password@default.base/audiences/1/people/123/lists/456/memberships.xml?page=1&per_page=100").
|
37
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
37
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
38
38
|
indexer = Index.new(session)
|
39
39
|
indexer.execute(person_id, list_id)
|
40
40
|
expect(indexer.uri).to eq("https://default.base/audiences/#{audience_id}/people/#{person_id}/lists/#{list_id}/memberships.xml?page=1&per_page=100")
|
@@ -14,45 +14,40 @@ module StreamSend
|
|
14
14
|
let(:person_id){ 421 }
|
15
15
|
let(:blast_id){ 1 }
|
16
16
|
let(:link_id){ 1 }
|
17
|
+
let(:list_id){ 213 }
|
17
18
|
|
18
19
|
before do
|
19
20
|
session.stub(:audience_id).and_return(audience_id)
|
20
21
|
end
|
22
|
+
|
21
23
|
describe Index do
|
22
24
|
it "returns a uri for a person index" do
|
23
25
|
stub_request(:get, "https://test:password@default.base/audiences/1/people.xml?page=1&per_page=100").
|
24
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
26
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
25
27
|
indexer.execute
|
26
28
|
expect(indexer.uri).to eq("https://default.base/audiences/1/people.xml?page=1&per_page=100")
|
27
29
|
end
|
28
30
|
|
29
|
-
it "returns a uri for a person index by email address" do
|
30
|
-
stub_request(:get, "https://test:password@default.base/audiences/1/people.xml?email_address=myemail@address.none&page=1&per_page=100").
|
31
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
32
|
-
indexer.execute("myemail@address.none", nil, {})
|
33
|
-
expect(indexer.uri).to eq("https://default.base/audiences/1/people.xml?page=1&per_page=100&email_address=myemail@address.none")
|
34
|
-
end
|
35
|
-
|
36
|
-
it "returns a uri for a person index by tracking hash" do
|
37
|
-
stub_request(:get, "https://test:password@default.base/audiences/1/people.xml?page=1&per_page=100&tracking_hash=xyz").
|
38
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
39
|
-
indexer.execute(nil, "xyz", {})
|
40
|
-
expect(indexer.uri).to eq("https://default.base/audiences/1/people.xml?page=1&per_page=100&tracking_hash=xyz")
|
41
|
-
end
|
42
|
-
|
43
31
|
it "returns a uri with custom paging" do
|
44
32
|
stub_request(:get, "https://test:password@default.base/audiences/1/people.xml?page=12&per_page=222").
|
45
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
46
|
-
indexer.execute(nil,
|
33
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
34
|
+
indexer.execute(nil, options)
|
47
35
|
expect(indexer.uri).to eq("https://default.base/audiences/1/people.xml?page=12&per_page=222")
|
48
36
|
end
|
37
|
+
|
38
|
+
it "returns a uri with a scoping by list" do
|
39
|
+
stub_request(:get, "https://test:password@default.base/audiences/1/lists/213/people.xml").
|
40
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
41
|
+
indexer.execute(list_id, {})
|
42
|
+
expect(indexer.uri).to eq("https://default.base/audiences/1/lists/#{list_id}/people.xml")
|
43
|
+
end
|
49
44
|
end
|
50
45
|
|
51
46
|
describe Click do
|
52
47
|
let(:clicker){ StreamSend::Api::Person::Click.new(session) }
|
53
48
|
it "creates a uri for blast click people" do
|
54
49
|
stub_request(:get, "https://test:password@default.base/blasts/1/clicks/people.xml?page=1&per_page=100").
|
55
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
50
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
56
51
|
clicker.execute(blast_id)
|
57
52
|
expect(clicker.uri).to eq("https://default.base/blasts/#{blast_id}/clicks/people.xml?page=1&per_page=100")
|
58
53
|
end
|
@@ -73,7 +68,7 @@ module StreamSend
|
|
73
68
|
|
74
69
|
it "creates a uri for blast view people" do
|
75
70
|
stub_request(:get, "https://test:password@default.base/blasts/1/views/people.xml?page=1&per_page=100").
|
76
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
71
|
+
to_return(:status => 200, :body => xml, :headers => {"Content-type" => "text/xml"})
|
77
72
|
peopler.execute(blast_id)
|
78
73
|
expect(peopler.uri).to eq("https://default.base/blasts/#{blast_id}/views/people.xml?page=1&per_page=100")
|
79
74
|
end
|
@@ -6,6 +6,7 @@ module StreamSend
|
|
6
6
|
let(:session){ Session.new("test", "password", "http://default.base") }
|
7
7
|
|
8
8
|
it "uses the default base_uri if none is provided" do
|
9
|
+
StreamSend::Api::Configuration.stub(:base_uri).and_return nil
|
9
10
|
no_base_session = Session.new("test", "password")
|
10
11
|
expect(no_base_session.base_uri).to eq("http://app.streamsend.com")
|
11
12
|
end
|
@@ -13,7 +13,7 @@ module StreamSend
|
|
13
13
|
describe Manual do
|
14
14
|
it "creates a uri for manual blast unsubscribes" do
|
15
15
|
stub_request(:get, "https://test:password@default.base/blasts/231/unsubscribes/manual.xml?page=1&per_page=100").
|
16
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
16
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
17
17
|
manual.execute(blast_id)
|
18
18
|
expect(manual.uri).to eq("https://default.base/blasts/#{blast_id}/unsubscribes/manual.xml?page=1&per_page=100")
|
19
19
|
end
|
@@ -22,7 +22,7 @@ module StreamSend
|
|
22
22
|
describe Complaint do
|
23
23
|
it "creates a uri for complaint blast unsubscribes" do
|
24
24
|
stub_request(:get, "https://test:password@default.base/blasts/231/unsubscribes/complaint.xml?page=1&per_page=100").
|
25
|
-
to_return(:status => 200, :body => xml, :headers => {})
|
25
|
+
to_return(:status => 200, :body => xml, :headers => {'Content-Type' => 'text/xml'})
|
26
26
|
complainer.execute(blast_id)
|
27
27
|
expect(complainer.uri).to eq("https://default.base/blasts/#{blast_id}/unsubscribes/complaint.xml?page=1&per_page=100")
|
28
28
|
end
|
@@ -20,14 +20,14 @@ module StreamSend
|
|
20
20
|
describe Index do
|
21
21
|
it "returns a user index uri with account id" do
|
22
22
|
stub_request(:get, "https://test:password@default.base/accounts/543/users.xml").
|
23
|
-
to_return(:status => 200, :body => xml, :
|
23
|
+
to_return(:status => 200, :body => xml, headers: { 'Accept' => 'text/xml', 'Content-type' => 'text/xml' })
|
24
24
|
indexer.execute(account_id)
|
25
25
|
expect(indexer.uri).to eq("https://default.base/accounts/543/users.xml")
|
26
26
|
end
|
27
27
|
|
28
28
|
it "returns a index uri wihtout account id" do
|
29
29
|
stub_request(:get, "https://test:password@default.base/users.xml").
|
30
|
-
to_return(:status => 200, :body => xml, :
|
30
|
+
to_return(:status => 200, :body => xml, headers: { 'Accept' => 'text/xml', 'Content-type' => 'text/xml' })
|
31
31
|
indexer.execute()
|
32
32
|
expect(indexer.uri).to eq("https://default.base/users.xml")
|
33
33
|
end
|
@@ -36,14 +36,14 @@ module StreamSend
|
|
36
36
|
describe Show do
|
37
37
|
it "returns a user show uri with account id" do
|
38
38
|
stub_request(:get, "https://test:password@default.base/accounts/543/users/12.xml").
|
39
|
-
to_return(:status => 200, :body => xml, :
|
39
|
+
to_return(:status => 200, :body => xml, headers: { 'Accept' => 'text/xml', 'Content-type' => 'text/xml' })
|
40
40
|
shower.execute(user_id, account_id)
|
41
41
|
expect(shower.uri).to eq("https://default.base/accounts/543/users/12.xml")
|
42
42
|
end
|
43
43
|
|
44
44
|
it "returns a show uri wihtout account id" do
|
45
45
|
stub_request(:get, "https://test:password@default.base/users/12.xml").
|
46
|
-
to_return(:status => 200, :body => xml, :
|
46
|
+
to_return(:status => 200, :body => xml, headers: { 'Accept' => 'text/xml', 'Content-type' => 'text/xml' })
|
47
47
|
shower.execute(user_id)
|
48
48
|
expect(shower.uri).to eq("https://default.base/users/12.xml")
|
49
49
|
end
|
data/streamsend.gemspec
CHANGED
@@ -14,11 +14,12 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.add_dependency "httmultiparty"
|
15
15
|
s.add_dependency "activesupport", "~>3.2"
|
16
16
|
s.add_dependency "builder"
|
17
|
+
s.add_development_dependency "rake"
|
17
18
|
s.add_development_dependency "rspec"
|
18
19
|
s.add_development_dependency "git-commit-story"
|
19
|
-
s.add_development_dependency "webmock"
|
20
|
+
s.add_development_dependency "webmock"
|
20
21
|
s.add_development_dependency "pair-salad"
|
21
|
-
s.add_development_dependency "
|
22
|
+
s.add_development_dependency "debugger"
|
22
23
|
|
23
24
|
s.files = `git ls-files`.split("\n")
|
24
25
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
metadata
CHANGED
@@ -1,154 +1,157 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: streamsend
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: 6
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 0
|
10
|
-
- rc
|
11
|
-
- 1
|
12
|
-
version: 1.0.0.rc1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0.rc2
|
13
5
|
platform: ruby
|
14
|
-
authors:
|
6
|
+
authors:
|
15
7
|
- Bob Yeo
|
16
8
|
autorequire:
|
17
9
|
bindir: bin
|
18
10
|
cert_chain: []
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2013-10-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
23
14
|
name: httmultiparty
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 3
|
31
|
-
segments:
|
32
|
-
- 0
|
33
|
-
version: "0"
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
34
20
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: activesupport
|
38
21
|
prerelease: false
|
39
|
-
|
40
|
-
|
41
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
42
31
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
segments:
|
46
|
-
- 3
|
47
|
-
- 2
|
48
|
-
version: "3.2"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.2'
|
49
34
|
type: :runtime
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: builder
|
53
35
|
prerelease: false
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: builder
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
63
48
|
type: :runtime
|
64
|
-
version_requirements: *id003
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
|
-
name: rspec
|
67
49
|
prerelease: false
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
77
76
|
type: :development
|
78
|
-
version_requirements: *id004
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: git-commit-story
|
81
77
|
prerelease: false
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: git-commit-story
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
91
90
|
type: :development
|
92
|
-
version_requirements: *id005
|
93
|
-
- !ruby/object:Gem::Dependency
|
94
|
-
name: webmock
|
95
91
|
prerelease: false
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: webmock
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
106
104
|
type: :development
|
107
|
-
version_requirements: *id006
|
108
|
-
- !ruby/object:Gem::Dependency
|
109
|
-
name: pair-salad
|
110
105
|
prerelease: false
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pair-salad
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
120
118
|
type: :development
|
121
|
-
version_requirements: *id007
|
122
|
-
- !ruby/object:Gem::Dependency
|
123
|
-
name: ruby-debug
|
124
119
|
prerelease: false
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: debugger
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
134
132
|
type: :development
|
135
|
-
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ! '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
136
139
|
description: Ruby wrapper for the StreamSend API.
|
137
|
-
email:
|
140
|
+
email:
|
138
141
|
- ryeo@ezpublishing.com
|
139
142
|
executables: []
|
140
|
-
|
141
143
|
extensions: []
|
142
|
-
|
143
144
|
extra_rdoc_files: []
|
144
|
-
|
145
|
-
files:
|
145
|
+
files:
|
146
146
|
- .gitignore
|
147
147
|
- .rspec
|
148
|
+
- .ruby-gemset
|
149
|
+
- .ruby-version
|
148
150
|
- Gemfile
|
149
151
|
- Gemfile.lock
|
150
152
|
- README.md
|
151
153
|
- Rakefile
|
154
|
+
- config/.keep
|
152
155
|
- lib/streamsend.rb
|
153
156
|
- lib/streamsend/api/account.rb
|
154
157
|
- lib/streamsend/api/audience.rb
|
@@ -221,42 +224,30 @@ files:
|
|
221
224
|
- spec/lib/streamsend/api/unit/user_spec.rb
|
222
225
|
- spec/spec_helper.rb
|
223
226
|
- streamsend.gemspec
|
224
|
-
homepage:
|
227
|
+
homepage: ''
|
225
228
|
licenses: []
|
226
|
-
|
229
|
+
metadata: {}
|
227
230
|
post_install_message:
|
228
231
|
rdoc_options: []
|
229
|
-
|
230
|
-
require_paths:
|
232
|
+
require_paths:
|
231
233
|
- lib
|
232
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
242
|
-
none: false
|
243
|
-
requirements:
|
244
|
-
- - ">"
|
245
|
-
- !ruby/object:Gem::Version
|
246
|
-
hash: 25
|
247
|
-
segments:
|
248
|
-
- 1
|
249
|
-
- 3
|
250
|
-
- 1
|
234
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
235
|
+
requirements:
|
236
|
+
- - ! '>='
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
version: '0'
|
239
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ! '>'
|
242
|
+
- !ruby/object:Gem::Version
|
251
243
|
version: 1.3.1
|
252
244
|
requirements: []
|
253
|
-
|
254
245
|
rubyforge_project:
|
255
|
-
rubygems_version: 1.
|
246
|
+
rubygems_version: 2.1.9
|
256
247
|
signing_key:
|
257
|
-
specification_version:
|
248
|
+
specification_version: 4
|
258
249
|
summary: Ruby wrapper for the StreamSend API.
|
259
|
-
test_files:
|
250
|
+
test_files:
|
260
251
|
- spec/lib/streamsend/api/integration/account_spec.rb
|
261
252
|
- spec/lib/streamsend/api/integration/audience_spec.rb
|
262
253
|
- spec/lib/streamsend/api/integration/blast_spec.rb
|