createsend 3.4.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.travis.yml +1 -7
- data/CONTRIBUTING.md +2 -2
- data/HISTORY.md +42 -0
- data/LICENSE +1 -1
- data/RELEASE.md +2 -6
- data/createsend.gemspec +1 -0
- data/lib/createsend/campaign.rb +4 -4
- data/lib/createsend/client.rb +2 -2
- data/lib/createsend/createsend.rb +1 -11
- data/lib/createsend/list.rb +8 -10
- data/lib/createsend/segment.rb +10 -11
- data/lib/createsend/template.rb +2 -2
- data/lib/createsend/version.rb +1 -1
- data/test/createsend_test.rb +0 -13
- data/test/fixtures/segment_details.json +11 -7
- data/test/helper.rb +1 -1
- data/test/segment_test.rb +10 -10
- metadata +5 -7
- data/Gemfile.lock +0 -64
- data/test/fixtures/apikey.json +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da211cead45e0ca1c6b083f7b53c535212885abe
|
4
|
+
data.tar.gz: b27340d9c34db21fc2cf3aa12886c482854b75f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0d99c593cd1beb56782bca4664d51ad8794ef4445e4953a47f200977d8ce186b64ec63e4616b7a22fb18fd394e4e1a73c52ed9ef88801db32468df5602ca8a5
|
7
|
+
data.tar.gz: 84c93a100fcb6fff17e48d6fe00ccd332252dd4f8f54467452b1b7a20ddb4324b51902878b3c59840f08446cf3fe79377434931ff1a64856f728fbc4763ab00f
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CONTRIBUTING.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Guidelines for contributing
|
2
2
|
|
3
3
|
1. [Fork the repository](https://help.github.com/articles/fork-a-repo).
|
4
|
-
2.
|
4
|
+
2. Create a topic branch.
|
5
5
|
3. Make your changes, including tests for your changes which maintain [coverage](https://coveralls.io/r/campaignmonitor/createsend-ruby).
|
6
|
-
4. Ensure that all tests pass, by running `bundle exec rake`.
|
6
|
+
4. Ensure that all tests pass, by running `bundle exec rake`.
|
7
7
|
5. It should go without saying, but do not increment the version number in your commits.
|
8
8
|
6. [Submit a pull request](https://help.github.com/articles/using-pull-requests).
|
data/HISTORY.md
CHANGED
@@ -1,5 +1,47 @@
|
|
1
1
|
# createsend-ruby history
|
2
2
|
|
3
|
+
## v4.0.0 - 19 Feb, 2014
|
4
|
+
|
5
|
+
* Removed `CreateSend::CreateSend#apikey` to promote using OAuth rather than basic auth with an API key.
|
6
|
+
* Started using the `https://api.createsend.com/api/v3.1/` API endpoint.
|
7
|
+
* Added support for new segments structure.
|
8
|
+
* Create and Update calls now require the new `rule_groups` structure, instead of a `rules` structure.
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
CreateSend::Segment.create(auth, list_id, title, rule_groups)
|
12
|
+
CreateSend::Segment.update(title, rule_groups)
|
13
|
+
```
|
14
|
+
|
15
|
+
So for example, when you _previously_ would have created an argument like so:
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
rules = [ { :Subject => "EmailAddress", :Clauses => [ "CONTAINS example.com" ] } ]
|
19
|
+
```
|
20
|
+
|
21
|
+
You would _now_ do this:
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
rule_groups = [ { :Rules => [ { :RuleType => "EmailAddress", :Clause => "CONTAINS example.com" } ] } ]
|
25
|
+
```
|
26
|
+
|
27
|
+
* The Add Rule call is now Add Rule Group, taking a collection of rules in a single `rule_group` argument instead of separate `subject` & `clauses` arguments.
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
CreateSend::Segment.add_rule_group(rule_group)
|
31
|
+
```
|
32
|
+
|
33
|
+
So for example, when you _previously_ would have added a rule like so:
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
@segment.add_rule "EmailAddress", [ "CONTAINS example.com" ]
|
37
|
+
```
|
38
|
+
|
39
|
+
You would _now_ do this:
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
@segment.add_rule_group [ { :RuleType => "EmailAddress", :Clause => "CONTAINS @hello.com" } ]
|
43
|
+
```
|
44
|
+
|
3
45
|
## v3.4.0 - 5 Jul, 2013
|
4
46
|
|
5
47
|
* Added support for validating SSL certificates to avoid man-in-the-middle attacks.
|
data/LICENSE
CHANGED
data/RELEASE.md
CHANGED
@@ -14,12 +14,6 @@
|
|
14
14
|
|
15
15
|
- Increment the `VERSION` constant in the `lib/createsend/version.rb` file, ensuring that you use [Semantic Versioning](http://semver.org/).
|
16
16
|
- Add an entry to `HISTORY.md` which clearly explains the new release.
|
17
|
-
- Ensure that the `Gemfile.lock` file is updated correctly by running:
|
18
|
-
|
19
|
-
```
|
20
|
-
bundle install
|
21
|
-
```
|
22
|
-
|
23
17
|
- Commit your changes:
|
24
18
|
|
25
19
|
```
|
@@ -40,6 +34,8 @@
|
|
40
34
|
|
41
35
|
- Ensure that all [tests](https://travis-ci.org/campaignmonitor/createsend-ruby) pass, and that [coverage](https://coveralls.io/r/campaignmonitor/createsend-ruby) is maintained or improved.
|
42
36
|
|
37
|
+
- Add a new [GitHub Release](https://github.com/campaignmonitor/createsend-ruby/releases) using the newly created tag.
|
38
|
+
|
43
39
|
## Build the gem
|
44
40
|
|
45
41
|
```
|
data/createsend.gemspec
CHANGED
data/lib/createsend/campaign.rb
CHANGED
@@ -84,7 +84,7 @@ module CreateSend
|
|
84
84
|
:PreviewRecipients => recipients.kind_of?(String) ?
|
85
85
|
[ recipients ] : recipients,
|
86
86
|
:Personalize => personalize }.to_json }
|
87
|
-
|
87
|
+
post "sendpreview", options
|
88
88
|
end
|
89
89
|
|
90
90
|
# Sends this campaign.
|
@@ -92,18 +92,18 @@ module CreateSend
|
|
92
92
|
options = { :body => {
|
93
93
|
:ConfirmationEmail => confirmation_email,
|
94
94
|
:SendDate => send_date }.to_json }
|
95
|
-
|
95
|
+
post "send", options
|
96
96
|
end
|
97
97
|
|
98
98
|
# Unschedules this campaign if it is currently scheduled.
|
99
99
|
def unschedule
|
100
100
|
options = { :body => "" }
|
101
|
-
|
101
|
+
post "unschedule", options
|
102
102
|
end
|
103
103
|
|
104
104
|
# Deletes this campaign.
|
105
105
|
def delete
|
106
|
-
|
106
|
+
super "/campaigns/#{campaign_id}.json", {}
|
107
107
|
end
|
108
108
|
|
109
109
|
# Gets a summary of this campaign
|
data/lib/createsend/client.rb
CHANGED
@@ -97,14 +97,14 @@ module CreateSend
|
|
97
97
|
options = { :body => {
|
98
98
|
:EmailAddresses => emails.kind_of?(String) ?
|
99
99
|
[ emails ] : emails }.to_json }
|
100
|
-
|
100
|
+
post "suppress", options
|
101
101
|
end
|
102
102
|
|
103
103
|
# Unsuppresses an email address by removing it from the the client's
|
104
104
|
# suppression list
|
105
105
|
def unsuppress(email)
|
106
106
|
options = { :query => { :email => email }, :body => '' }
|
107
|
-
|
107
|
+
put "unsuppress", options
|
108
108
|
end
|
109
109
|
|
110
110
|
# Gets the templates belonging to this client.
|
@@ -109,7 +109,7 @@ module CreateSend
|
|
109
109
|
end
|
110
110
|
end
|
111
111
|
|
112
|
-
@@base_uri = "https://api.createsend.com/api/v3"
|
112
|
+
@@base_uri = "https://api.createsend.com/api/v3.1"
|
113
113
|
@@oauth_base_uri = "https://api.createsend.com/oauth"
|
114
114
|
@@oauth_token_uri = "#{@@oauth_base_uri}/token"
|
115
115
|
headers({
|
@@ -139,16 +139,6 @@ module CreateSend
|
|
139
139
|
[access_token, expires_in, refresh_token]
|
140
140
|
end
|
141
141
|
|
142
|
-
# Gets your CreateSend API key, given your site url, username and password.
|
143
|
-
def apikey(site_url, username, password)
|
144
|
-
site_url = CGI.escape(site_url)
|
145
|
-
options = {:basic_auth => {:username => username, :password => password}}
|
146
|
-
response = get("/apikey.json?SiteUrl=#{site_url}", options)
|
147
|
-
result = Hashie::Mash.new(response)
|
148
|
-
auth({:api_key => result.ApiKey}) if not @auth_details
|
149
|
-
result
|
150
|
-
end
|
151
|
-
|
152
142
|
# Gets your clients.
|
153
143
|
def clients
|
154
144
|
response = get('/clients.json')
|
data/lib/createsend/list.rb
CHANGED
@@ -36,7 +36,7 @@ module CreateSend
|
|
36
36
|
|
37
37
|
# Deletes this list.
|
38
38
|
def delete
|
39
|
-
|
39
|
+
super "/lists/#{list_id}.json", {}
|
40
40
|
end
|
41
41
|
|
42
42
|
# Creates a new custom field for this list.
|
@@ -77,8 +77,7 @@ module CreateSend
|
|
77
77
|
# Deletes a custom field associated with this list.
|
78
78
|
def delete_custom_field(custom_field_key)
|
79
79
|
custom_field_key = CGI.escape(custom_field_key)
|
80
|
-
|
81
|
-
"/lists/#{list_id}/customfields/#{custom_field_key}.json", {})
|
80
|
+
cs_delete("/lists/#{list_id}/customfields/#{custom_field_key}.json", {})
|
82
81
|
end
|
83
82
|
|
84
83
|
# Updates the options of a multi-optioned custom field on this list.
|
@@ -88,7 +87,7 @@ module CreateSend
|
|
88
87
|
options = { :body => {
|
89
88
|
:Options => new_options,
|
90
89
|
:KeepExistingOptions => keep_existing_options }.to_json }
|
91
|
-
|
90
|
+
put "customfields/#{custom_field_key}/options", options
|
92
91
|
end
|
93
92
|
|
94
93
|
# Gets the details of this list.
|
@@ -178,7 +177,7 @@ module CreateSend
|
|
178
177
|
:UnsubscribeSetting => unsubscribe_setting,
|
179
178
|
:AddUnsubscribesToSuppList => add_unsubscribes_to_supp_list,
|
180
179
|
:ScrubActiveWithSuppList => scrub_active_with_supp_list }.to_json }
|
181
|
-
|
180
|
+
cs_put "/lists/#{list_id}.json", options
|
182
181
|
end
|
183
182
|
|
184
183
|
# Gets the webhooks for this list.
|
@@ -202,26 +201,25 @@ module CreateSend
|
|
202
201
|
# Tests that a post can be made to the endpoint specified for the webhook
|
203
202
|
# identified by webhook_id.
|
204
203
|
def test_webhook(webhook_id)
|
205
|
-
|
204
|
+
get "webhooks/#{webhook_id}/test"
|
206
205
|
true # An exception will be raised if any error occurs
|
207
206
|
end
|
208
207
|
|
209
208
|
# Deletes a webhook associated with this list.
|
210
209
|
def delete_webhook(webhook_id)
|
211
|
-
|
212
|
-
"/lists/#{list_id}/webhooks/#{webhook_id}.json", {})
|
210
|
+
cs_delete("/lists/#{list_id}/webhooks/#{webhook_id}.json", {})
|
213
211
|
end
|
214
212
|
|
215
213
|
# Activates a webhook associated with this list.
|
216
214
|
def activate_webhook(webhook_id)
|
217
215
|
options = { :body => '' }
|
218
|
-
|
216
|
+
put "webhooks/#{webhook_id}/activate", options
|
219
217
|
end
|
220
218
|
|
221
219
|
# De-activates a webhook associated with this list.
|
222
220
|
def deactivate_webhook(webhook_id)
|
223
221
|
options = { :body => '' }
|
224
|
-
|
222
|
+
put "webhooks/#{webhook_id}/deactivate", options
|
225
223
|
end
|
226
224
|
|
227
225
|
private
|
data/lib/createsend/segment.rb
CHANGED
@@ -9,29 +9,28 @@ module CreateSend
|
|
9
9
|
end
|
10
10
|
|
11
11
|
# Creates a new segment.
|
12
|
-
def self.create(auth, list_id, title,
|
12
|
+
def self.create(auth, list_id, title, rule_groups)
|
13
13
|
options = { :body => {
|
14
14
|
:Title => title,
|
15
|
-
:
|
15
|
+
:RuleGroups => rule_groups }.to_json }
|
16
16
|
cs = CreateSend.new auth
|
17
17
|
response = cs.post "/segments/#{list_id}.json", options
|
18
18
|
response.parsed_response
|
19
19
|
end
|
20
20
|
|
21
21
|
# Updates this segment.
|
22
|
-
def update(title,
|
22
|
+
def update(title, rule_groups)
|
23
23
|
options = { :body => {
|
24
24
|
:Title => title,
|
25
|
-
:
|
26
|
-
|
25
|
+
:RuleGroups => rule_groups }.to_json }
|
26
|
+
cs_put "/segments/#{segment_id}.json", options
|
27
27
|
end
|
28
28
|
|
29
29
|
# Adds a rule to this segment.
|
30
|
-
def
|
30
|
+
def add_rule_group(rule_group)
|
31
31
|
options = { :body => {
|
32
|
-
:
|
33
|
-
|
34
|
-
response = post "rules", options
|
32
|
+
:Rules => rule_group }.to_json }
|
33
|
+
post "rules", options
|
35
34
|
end
|
36
35
|
|
37
36
|
# Gets the active subscribers in this segment.
|
@@ -55,12 +54,12 @@ module CreateSend
|
|
55
54
|
|
56
55
|
# Clears all rules of this segment.
|
57
56
|
def clear_rules
|
58
|
-
|
57
|
+
cs_delete "/segments/#{segment_id}/rules.json", {}
|
59
58
|
end
|
60
59
|
|
61
60
|
# Deletes this segment.
|
62
61
|
def delete
|
63
|
-
|
62
|
+
super "/segments/#{segment_id}.json", {}
|
64
63
|
end
|
65
64
|
|
66
65
|
private
|
data/lib/createsend/template.rb
CHANGED
@@ -31,12 +31,12 @@ module CreateSend
|
|
31
31
|
:Name => name,
|
32
32
|
:HtmlPageURL => html_url,
|
33
33
|
:ZipFileURL => zip_url }.to_json }
|
34
|
-
|
34
|
+
put "/templates/#{template_id}.json", options
|
35
35
|
end
|
36
36
|
|
37
37
|
# Deletes this email template.
|
38
38
|
def delete
|
39
|
-
|
39
|
+
super "/templates/#{template_id}.json", {}
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
data/lib/createsend/version.rb
CHANGED
data/test/createsend_test.rb
CHANGED
@@ -100,19 +100,6 @@ class CreateSendTest < Test::Unit::TestCase
|
|
100
100
|
FakeWeb.last_request.body.should == "grant_type=refresh_token&refresh_token=#{CGI.escape(refresh_token)}"
|
101
101
|
end
|
102
102
|
|
103
|
-
should "get a person's api key" do
|
104
|
-
base_uri = "https://api.createsend.com/api/v3"
|
105
|
-
uri = URI.parse(base_uri)
|
106
|
-
site_url = "http://iamadesigner.createsend.com/"
|
107
|
-
username = "myusername"
|
108
|
-
password = "mypassword"
|
109
|
-
cs = CreateSend::CreateSend.new
|
110
|
-
stub_get(nil, "https://#{username}:#{password}@#{uri.host}#{uri.path}/apikey.json?SiteUrl=#{CGI.escape(site_url)}", "apikey.json")
|
111
|
-
apikey = cs.apikey(site_url, username, password).ApiKey
|
112
|
-
apikey.should == "981298u298ue98u219e8u2e98u2"
|
113
|
-
cs.auth_details.should == {:api_key => apikey}
|
114
|
-
end
|
115
|
-
|
116
103
|
end
|
117
104
|
|
118
105
|
context "when an api caller is authenticated using oauth" do
|
@@ -1,16 +1,20 @@
|
|
1
1
|
{
|
2
2
|
"ActiveSubscribers": 0,
|
3
|
-
"
|
3
|
+
"RuleGroups": [
|
4
4
|
{
|
5
|
-
"
|
6
|
-
|
7
|
-
|
5
|
+
"Rules": [
|
6
|
+
{
|
7
|
+
"RuleType": "EmailAddress",
|
8
|
+
"Clause": "CONTAINS @hello.com"
|
9
|
+
}
|
8
10
|
]
|
9
11
|
},
|
10
12
|
{
|
11
|
-
"
|
12
|
-
|
13
|
-
|
13
|
+
"Rules": [
|
14
|
+
{
|
15
|
+
"RuleType": "Name",
|
16
|
+
"Clause": "PROVIDED"
|
17
|
+
}
|
14
18
|
]
|
15
19
|
}
|
16
20
|
],
|
data/test/helper.rb
CHANGED
@@ -30,7 +30,7 @@ def createsend_url(auth, url)
|
|
30
30
|
if not url =~ /^http/
|
31
31
|
auth_section = ''
|
32
32
|
auth_section = "#{auth[:api_key]}:x@" if auth and auth.has_key? :api_key
|
33
|
-
result = "https://#{auth_section}api.createsend.com/api/v3/#{url}"
|
33
|
+
result = "https://#{auth_section}api.createsend.com/api/v3.1/#{url}"
|
34
34
|
else
|
35
35
|
result = url
|
36
36
|
end
|
data/test/segment_test.rb
CHANGED
@@ -8,22 +8,22 @@ class SegmentTest < Test::Unit::TestCase
|
|
8
8
|
|
9
9
|
should "create a new segment" do
|
10
10
|
list_id = "2983492834987394879837498"
|
11
|
-
|
11
|
+
rule_groups = [ { :Rules => [ { :RuleType => "EmailAddress", :Clause => "CONTAINS example.com" } ] } ]
|
12
12
|
stub_post(@auth, "segments/#{list_id}.json", "create_segment.json")
|
13
|
-
res = CreateSend::Segment.create @auth, list_id, "new segment title",
|
13
|
+
res = CreateSend::Segment.create @auth, list_id, "new segment title", rule_groups
|
14
14
|
res.should == "0246c2aea610a3545d9780bf6ab89006"
|
15
15
|
end
|
16
16
|
|
17
17
|
should "update a segment" do
|
18
|
-
rules = [ { :
|
18
|
+
rules = [ { :Rules => [ { :RuleType => "Name", :Clause => "PROVIDED" } ] } ]
|
19
19
|
stub_put(@auth, "segments/#{@segment.segment_id}.json", nil)
|
20
20
|
@segment.update "new title for segment", rules
|
21
21
|
end
|
22
22
|
|
23
|
-
should "add a rule to a segment" do
|
24
|
-
|
23
|
+
should "add a rule group to a segment" do
|
24
|
+
rule_group = [ { :RuleType => "EmailAddress", :Clause => "CONTAINS @hello.com" } ]
|
25
25
|
stub_post(@auth, "segments/#{@segment.segment_id}/rules.json", nil)
|
26
|
-
@segment.
|
26
|
+
@segment.add_rule_group rule_group
|
27
27
|
end
|
28
28
|
|
29
29
|
should "get the active subscribers for a particular segment in the list" do
|
@@ -55,10 +55,10 @@ class SegmentTest < Test::Unit::TestCase
|
|
55
55
|
stub_get(@auth, "segments/#{@segment.segment_id}.json", "segment_details.json")
|
56
56
|
res = @segment.details
|
57
57
|
res.ActiveSubscribers.should == 0
|
58
|
-
res.
|
59
|
-
res.
|
60
|
-
res.Rules.first.
|
61
|
-
res.
|
58
|
+
res.RuleGroups.size.should == 2
|
59
|
+
res.RuleGroups.first.Rules.size.should == 1
|
60
|
+
res.RuleGroups.first.Rules.first.RuleType.should == "EmailAddress"
|
61
|
+
res.RuleGroups.first.Rules.first.Clause.should == "CONTAINS @hello.com"
|
62
62
|
res.ListID.should == "2bea949d0bf96148c3e6a209d2e82060"
|
63
63
|
res.SegmentID.should == "dba84a225d5ce3d19105d7257baac46f"
|
64
64
|
res.Title.should == "My Segment"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: createsend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Dennes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -154,7 +154,6 @@ files:
|
|
154
154
|
- .travis.yml
|
155
155
|
- CONTRIBUTING.md
|
156
156
|
- Gemfile
|
157
|
-
- Gemfile.lock
|
158
157
|
- HISTORY.md
|
159
158
|
- LICENSE
|
160
159
|
- README.md
|
@@ -185,7 +184,6 @@ files:
|
|
185
184
|
- test/fixtures/admin_get_primary_contact.json
|
186
185
|
- test/fixtures/admin_set_primary_contact.json
|
187
186
|
- test/fixtures/administrators.json
|
188
|
-
- test/fixtures/apikey.json
|
189
187
|
- test/fixtures/billingdetails.json
|
190
188
|
- test/fixtures/bounced_subscribers.json
|
191
189
|
- test/fixtures/campaign_bounces.json
|
@@ -253,7 +251,8 @@ files:
|
|
253
251
|
- test/subscriber_test.rb
|
254
252
|
- test/template_test.rb
|
255
253
|
homepage: http://campaignmonitor.github.io/createsend-ruby/
|
256
|
-
licenses:
|
254
|
+
licenses:
|
255
|
+
- MIT
|
257
256
|
metadata: {}
|
258
257
|
post_install_message:
|
259
258
|
rdoc_options: []
|
@@ -271,7 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
271
270
|
version: 1.3.6
|
272
271
|
requirements: []
|
273
272
|
rubyforge_project:
|
274
|
-
rubygems_version: 2.0.
|
273
|
+
rubygems_version: 2.0.3
|
275
274
|
signing_key:
|
276
275
|
specification_version: 4
|
277
276
|
summary: A library which implements the complete functionality of the Campaign Monitor
|
@@ -289,7 +288,6 @@ test_files:
|
|
289
288
|
- test/fixtures/admin_get_primary_contact.json
|
290
289
|
- test/fixtures/admin_set_primary_contact.json
|
291
290
|
- test/fixtures/administrators.json
|
292
|
-
- test/fixtures/apikey.json
|
293
291
|
- test/fixtures/billingdetails.json
|
294
292
|
- test/fixtures/bounced_subscribers.json
|
295
293
|
- test/fixtures/campaign_bounces.json
|
data/Gemfile.lock
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
createsend (3.4.0)
|
5
|
-
hashie (>= 1.2, < 3)
|
6
|
-
httparty (~> 0.10)
|
7
|
-
json
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
activesupport (3.2.11)
|
13
|
-
i18n (~> 0.6)
|
14
|
-
multi_json (~> 1.0)
|
15
|
-
bourne (1.1.2)
|
16
|
-
mocha (= 0.10.5)
|
17
|
-
colorize (0.5.8)
|
18
|
-
coveralls (0.6.3)
|
19
|
-
colorize
|
20
|
-
multi_json (~> 1.3)
|
21
|
-
rest-client
|
22
|
-
simplecov (>= 0.7)
|
23
|
-
thor
|
24
|
-
fakeweb (1.3.0)
|
25
|
-
hashie (2.0.4)
|
26
|
-
httparty (0.11.0)
|
27
|
-
multi_json (~> 1.0)
|
28
|
-
multi_xml (>= 0.5.2)
|
29
|
-
i18n (0.6.1)
|
30
|
-
jnunemaker-matchy (0.4.0)
|
31
|
-
json (1.7.7)
|
32
|
-
metaclass (0.0.1)
|
33
|
-
mime-types (1.21)
|
34
|
-
mocha (0.10.5)
|
35
|
-
metaclass (~> 0.0.1)
|
36
|
-
multi_json (1.5.0)
|
37
|
-
multi_xml (0.5.3)
|
38
|
-
rake (10.0.3)
|
39
|
-
rest-client (1.6.7)
|
40
|
-
mime-types (>= 1.16)
|
41
|
-
shoulda (3.3.2)
|
42
|
-
shoulda-context (~> 1.0.1)
|
43
|
-
shoulda-matchers (~> 1.4.1)
|
44
|
-
shoulda-context (1.0.2)
|
45
|
-
shoulda-matchers (1.4.2)
|
46
|
-
activesupport (>= 3.0.0)
|
47
|
-
bourne (~> 1.1.2)
|
48
|
-
simplecov (0.7.1)
|
49
|
-
multi_json (~> 1.0)
|
50
|
-
simplecov-html (~> 0.7.1)
|
51
|
-
simplecov-html (0.7.1)
|
52
|
-
thor (0.18.0)
|
53
|
-
|
54
|
-
PLATFORMS
|
55
|
-
ruby
|
56
|
-
|
57
|
-
DEPENDENCIES
|
58
|
-
coveralls
|
59
|
-
createsend!
|
60
|
-
fakeweb (~> 1.3)
|
61
|
-
jnunemaker-matchy (~> 0.4)
|
62
|
-
rake (~> 10.0)
|
63
|
-
shoulda (~> 3.3)
|
64
|
-
simplecov
|
data/test/fixtures/apikey.json
DELETED