gibbon 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of gibbon might be problematic. Click here for more details.
- data/Gemfile +0 -1
- data/README.markdown +0 -6
- data/VERSION +1 -1
- data/gibbon.gemspec +2 -5
- data/lib/gibbon.rb +3 -4
- data/test/test_gibbon.rb +6 -6
- metadata +35 -46
data/Gemfile
CHANGED
data/README.markdown
CHANGED
@@ -98,12 +98,6 @@ information about the error, and "code", the numeric code of the error.
|
|
98
98
|
If you set the `throws_exceptions` boolean attribute for a given instance then
|
99
99
|
Gibbon will attempt to intercept the errors and raise an exception.
|
100
100
|
|
101
|
-
### Notes
|
102
|
-
|
103
|
-
As of 0.1.6, gibbon uses ActiveSupport::JSON.decode(). This means code that checked for weird API responses (like "true"
|
104
|
-
on a successful call to "listSubscribe" or similar) will need to be tweaked to handle the boolean JSON.decode() returns
|
105
|
-
as opposed to the string the MailChimp API returns. I understand the extra dependency might be a pain for some.
|
106
|
-
|
107
101
|
##Thanks
|
108
102
|
|
109
103
|
* [Justin Ip](https://github.com/ippy04)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.4
|
data/gibbon.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "gibbon"
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Amro Mousa"]
|
12
|
-
s.date = "2011-12-
|
12
|
+
s.date = "2011-12-09"
|
13
13
|
s.description = "Gibbon is a simple API wrapper for interacting with MailChimp API version 1.3."
|
14
14
|
s.email = "amromousa@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -45,7 +45,6 @@ Gem::Specification.new do |s|
|
|
45
45
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
46
46
|
s.add_runtime_dependency(%q<json>, ["> 1.4.0"])
|
47
47
|
s.add_runtime_dependency(%q<httparty>, ["> 0.6.0"])
|
48
|
-
s.add_runtime_dependency(%q<activesupport>, [">= 2.3.14"])
|
49
48
|
s.add_runtime_dependency(%q<rdoc>, [">= 0"])
|
50
49
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
51
50
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -63,7 +62,6 @@ Gem::Specification.new do |s|
|
|
63
62
|
else
|
64
63
|
s.add_dependency(%q<json>, ["> 1.4.0"])
|
65
64
|
s.add_dependency(%q<httparty>, ["> 0.6.0"])
|
66
|
-
s.add_dependency(%q<activesupport>, [">= 2.3.14"])
|
67
65
|
s.add_dependency(%q<rdoc>, [">= 0"])
|
68
66
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
69
67
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -82,7 +80,6 @@ Gem::Specification.new do |s|
|
|
82
80
|
else
|
83
81
|
s.add_dependency(%q<json>, ["> 1.4.0"])
|
84
82
|
s.add_dependency(%q<httparty>, ["> 0.6.0"])
|
85
|
-
s.add_dependency(%q<activesupport>, [">= 2.3.14"])
|
86
83
|
s.add_dependency(%q<rdoc>, [">= 0"])
|
87
84
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
88
85
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
data/lib/gibbon.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'active_support'
|
2
1
|
require 'httparty'
|
3
2
|
require 'json'
|
4
3
|
require 'cgi'
|
@@ -37,9 +36,9 @@ protected
|
|
37
36
|
response = self.class.post(api_url, :body => CGI::escape(params.to_json), :timeout => @timeout)
|
38
37
|
|
39
38
|
begin
|
40
|
-
response =
|
39
|
+
response = JSON.parse(response.body)
|
41
40
|
rescue
|
42
|
-
response =
|
41
|
+
response = JSON.parse('['+response.body+']').first
|
43
42
|
end
|
44
43
|
|
45
44
|
if @throws_exceptions && response.is_a?(Hash) && response["error"]
|
@@ -88,7 +87,7 @@ protected
|
|
88
87
|
|
89
88
|
lines = response.body.lines
|
90
89
|
if @throws_exceptions
|
91
|
-
first_line_object =
|
90
|
+
first_line_object = JSON.parse(lines.first) if lines.first
|
92
91
|
raise "Error from MailChimp Export API: #{first_line_object["error"]} (code #{first_line_object["code"]})" if first_line_object.is_a?(Hash) && first_line_object["error"]
|
93
92
|
end
|
94
93
|
|
data/test/test_gibbon.rb
CHANGED
@@ -121,7 +121,7 @@ class TestGibbon < Test::Unit::TestCase
|
|
121
121
|
@gibbon = Gibbon.new(@key)
|
122
122
|
@url = "https://us1.api.mailchimp.com/1.3/?method=sayHello"
|
123
123
|
@body = {"apikey" => @key}
|
124
|
-
@returns = Struct.new(:body).new(
|
124
|
+
@returns = Struct.new(:body).new(["array", "entries"].to_json)
|
125
125
|
end
|
126
126
|
|
127
127
|
should "produce a good exporter" do
|
@@ -130,7 +130,7 @@ class TestGibbon < Test::Unit::TestCase
|
|
130
130
|
end
|
131
131
|
|
132
132
|
should "throw exception if configured to and the API replies with a JSON hash containing a key called 'error'" do
|
133
|
-
Gibbon.stubs(:post).returns(Struct.new(:body).new(
|
133
|
+
Gibbon.stubs(:post).returns(Struct.new(:body).new({'error' => 'bad things'}.to_json))
|
134
134
|
assert_nothing_raised do
|
135
135
|
result = @gibbon.say_hello
|
136
136
|
end
|
@@ -140,7 +140,7 @@ class TestGibbon < Test::Unit::TestCase
|
|
140
140
|
|
141
141
|
should "throw exception if configured to and the API replies with a JSON hash containing a key called 'error'" do
|
142
142
|
@gibbon.throws_exceptions = true
|
143
|
-
Gibbon.stubs(:post).returns(Struct.new(:body).new(
|
143
|
+
Gibbon.stubs(:post).returns(Struct.new(:body).new({'error' => 'bad things'}.to_json))
|
144
144
|
assert_raise RuntimeError do
|
145
145
|
@gibbon.say_hello
|
146
146
|
end
|
@@ -153,7 +153,7 @@ class TestGibbon < Test::Unit::TestCase
|
|
153
153
|
@gibbon = GibbonExport.new(@key)
|
154
154
|
@url = "http://us1.api.mailchimp.com/export/1.0/"
|
155
155
|
@body = {:apikey => @key, :id => "listid"}
|
156
|
-
@returns = Struct.new(:body).new(
|
156
|
+
@returns = Struct.new(:body).new(["array", "entries"].to_json)
|
157
157
|
end
|
158
158
|
|
159
159
|
should "handle api key with dc" do
|
@@ -168,7 +168,7 @@ class TestGibbon < Test::Unit::TestCase
|
|
168
168
|
end
|
169
169
|
|
170
170
|
should "not throw exception if the Export API replies with a JSON hash containing a key called 'error'" do
|
171
|
-
GibbonExport.stubs(:post).returns(Struct.new(:body).new(
|
171
|
+
GibbonExport.stubs(:post).returns(Struct.new(:body).new({'error' => 'bad things'}.to_json))
|
172
172
|
|
173
173
|
assert_nothing_raised do
|
174
174
|
@gibbon.say_hello(@body)
|
@@ -178,7 +178,7 @@ class TestGibbon < Test::Unit::TestCase
|
|
178
178
|
should "throw exception if configured to and the Export API replies with a JSON hash containing a key called 'error'" do
|
179
179
|
@gibbon.throws_exceptions = true
|
180
180
|
params = {:body => @body, :timeout => nil}
|
181
|
-
GibbonExport.stubs(:post).returns(Struct.new(:body).new(
|
181
|
+
GibbonExport.stubs(:post).returns(Struct.new(:body).new({'error' => 'bad things', 'code' => '123'}.to_json))
|
182
182
|
|
183
183
|
assert_raise RuntimeError do
|
184
184
|
@gibbon.say_hello(@body)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gibbon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-09 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &70209928894840 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>'
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.4.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70209928894840
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: httparty
|
27
|
-
requirement: &
|
27
|
+
requirement: &70209928894340 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>'
|
@@ -32,21 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.6.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: activesupport
|
38
|
-
requirement: &70126630927080 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
|
-
requirements:
|
41
|
-
- - ! '>='
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: 2.3.14
|
44
|
-
type: :runtime
|
45
|
-
prerelease: false
|
46
|
-
version_requirements: *70126630927080
|
35
|
+
version_requirements: *70209928894340
|
47
36
|
- !ruby/object:Gem::Dependency
|
48
37
|
name: rdoc
|
49
|
-
requirement: &
|
38
|
+
requirement: &70209928893760 !ruby/object:Gem::Requirement
|
50
39
|
none: false
|
51
40
|
requirements:
|
52
41
|
- - ! '>='
|
@@ -54,10 +43,10 @@ dependencies:
|
|
54
43
|
version: '0'
|
55
44
|
type: :runtime
|
56
45
|
prerelease: false
|
57
|
-
version_requirements: *
|
46
|
+
version_requirements: *70209928893760
|
58
47
|
- !ruby/object:Gem::Dependency
|
59
48
|
name: shoulda
|
60
|
-
requirement: &
|
49
|
+
requirement: &70209928893220 !ruby/object:Gem::Requirement
|
61
50
|
none: false
|
62
51
|
requirements:
|
63
52
|
- - ! '>='
|
@@ -65,10 +54,10 @@ dependencies:
|
|
65
54
|
version: '0'
|
66
55
|
type: :development
|
67
56
|
prerelease: false
|
68
|
-
version_requirements: *
|
57
|
+
version_requirements: *70209928893220
|
69
58
|
- !ruby/object:Gem::Dependency
|
70
59
|
name: bundler
|
71
|
-
requirement: &
|
60
|
+
requirement: &70209928892680 !ruby/object:Gem::Requirement
|
72
61
|
none: false
|
73
62
|
requirements:
|
74
63
|
- - ~>
|
@@ -76,10 +65,10 @@ dependencies:
|
|
76
65
|
version: 1.0.0
|
77
66
|
type: :development
|
78
67
|
prerelease: false
|
79
|
-
version_requirements: *
|
68
|
+
version_requirements: *70209928892680
|
80
69
|
- !ruby/object:Gem::Dependency
|
81
70
|
name: jeweler
|
82
|
-
requirement: &
|
71
|
+
requirement: &70209928892100 !ruby/object:Gem::Requirement
|
83
72
|
none: false
|
84
73
|
requirements:
|
85
74
|
- - ~>
|
@@ -87,10 +76,10 @@ dependencies:
|
|
87
76
|
version: 1.5.1
|
88
77
|
type: :development
|
89
78
|
prerelease: false
|
90
|
-
version_requirements: *
|
79
|
+
version_requirements: *70209928892100
|
91
80
|
- !ruby/object:Gem::Dependency
|
92
81
|
name: rcov
|
93
|
-
requirement: &
|
82
|
+
requirement: &70209928891500 !ruby/object:Gem::Requirement
|
94
83
|
none: false
|
95
84
|
requirements:
|
96
85
|
- - ! '>='
|
@@ -98,10 +87,10 @@ dependencies:
|
|
98
87
|
version: '0'
|
99
88
|
type: :development
|
100
89
|
prerelease: false
|
101
|
-
version_requirements: *
|
90
|
+
version_requirements: *70209928891500
|
102
91
|
- !ruby/object:Gem::Dependency
|
103
92
|
name: mocha
|
104
|
-
requirement: &
|
93
|
+
requirement: &70209928890980 !ruby/object:Gem::Requirement
|
105
94
|
none: false
|
106
95
|
requirements:
|
107
96
|
- - ! '>'
|
@@ -109,10 +98,10 @@ dependencies:
|
|
109
98
|
version: 0.9.11
|
110
99
|
type: :development
|
111
100
|
prerelease: false
|
112
|
-
version_requirements: *
|
101
|
+
version_requirements: *70209928890980
|
113
102
|
- !ruby/object:Gem::Dependency
|
114
103
|
name: ruby-debug19
|
115
|
-
requirement: &
|
104
|
+
requirement: &70209928890360 !ruby/object:Gem::Requirement
|
116
105
|
none: false
|
117
106
|
requirements:
|
118
107
|
- - ! '>='
|
@@ -120,10 +109,10 @@ dependencies:
|
|
120
109
|
version: '0'
|
121
110
|
type: :development
|
122
111
|
prerelease: false
|
123
|
-
version_requirements: *
|
112
|
+
version_requirements: *70209928890360
|
124
113
|
- !ruby/object:Gem::Dependency
|
125
114
|
name: ruby-debug
|
126
|
-
requirement: &
|
115
|
+
requirement: &70209928889800 !ruby/object:Gem::Requirement
|
127
116
|
none: false
|
128
117
|
requirements:
|
129
118
|
- - ! '>='
|
@@ -131,10 +120,10 @@ dependencies:
|
|
131
120
|
version: '0'
|
132
121
|
type: :development
|
133
122
|
prerelease: false
|
134
|
-
version_requirements: *
|
123
|
+
version_requirements: *70209928889800
|
135
124
|
- !ruby/object:Gem::Dependency
|
136
125
|
name: httparty
|
137
|
-
requirement: &
|
126
|
+
requirement: &70209928889240 !ruby/object:Gem::Requirement
|
138
127
|
none: false
|
139
128
|
requirements:
|
140
129
|
- - ! '>'
|
@@ -142,10 +131,10 @@ dependencies:
|
|
142
131
|
version: 0.6.0
|
143
132
|
type: :runtime
|
144
133
|
prerelease: false
|
145
|
-
version_requirements: *
|
134
|
+
version_requirements: *70209928889240
|
146
135
|
- !ruby/object:Gem::Dependency
|
147
136
|
name: activesupport
|
148
|
-
requirement: &
|
137
|
+
requirement: &70209928888660 !ruby/object:Gem::Requirement
|
149
138
|
none: false
|
150
139
|
requirements:
|
151
140
|
- - ! '>='
|
@@ -153,10 +142,10 @@ dependencies:
|
|
153
142
|
version: 2.3.14
|
154
143
|
type: :runtime
|
155
144
|
prerelease: false
|
156
|
-
version_requirements: *
|
145
|
+
version_requirements: *70209928888660
|
157
146
|
- !ruby/object:Gem::Dependency
|
158
147
|
name: json
|
159
|
-
requirement: &
|
148
|
+
requirement: &70209928888140 !ruby/object:Gem::Requirement
|
160
149
|
none: false
|
161
150
|
requirements:
|
162
151
|
- - ! '>'
|
@@ -164,10 +153,10 @@ dependencies:
|
|
164
153
|
version: 1.4.0
|
165
154
|
type: :runtime
|
166
155
|
prerelease: false
|
167
|
-
version_requirements: *
|
156
|
+
version_requirements: *70209928888140
|
168
157
|
- !ruby/object:Gem::Dependency
|
169
158
|
name: httparty
|
170
|
-
requirement: &
|
159
|
+
requirement: &70209928887640 !ruby/object:Gem::Requirement
|
171
160
|
none: false
|
172
161
|
requirements:
|
173
162
|
- - ! '>'
|
@@ -175,10 +164,10 @@ dependencies:
|
|
175
164
|
version: 0.6.0
|
176
165
|
type: :development
|
177
166
|
prerelease: false
|
178
|
-
version_requirements: *
|
167
|
+
version_requirements: *70209928887640
|
179
168
|
- !ruby/object:Gem::Dependency
|
180
169
|
name: json
|
181
|
-
requirement: &
|
170
|
+
requirement: &70209928887100 !ruby/object:Gem::Requirement
|
182
171
|
none: false
|
183
172
|
requirements:
|
184
173
|
- - ! '>'
|
@@ -186,10 +175,10 @@ dependencies:
|
|
186
175
|
version: 1.4.0
|
187
176
|
type: :development
|
188
177
|
prerelease: false
|
189
|
-
version_requirements: *
|
178
|
+
version_requirements: *70209928887100
|
190
179
|
- !ruby/object:Gem::Dependency
|
191
180
|
name: mocha
|
192
|
-
requirement: &
|
181
|
+
requirement: &70209928886620 !ruby/object:Gem::Requirement
|
193
182
|
none: false
|
194
183
|
requirements:
|
195
184
|
- - ! '>'
|
@@ -197,7 +186,7 @@ dependencies:
|
|
197
186
|
version: 0.9.11
|
198
187
|
type: :development
|
199
188
|
prerelease: false
|
200
|
-
version_requirements: *
|
189
|
+
version_requirements: *70209928886620
|
201
190
|
description: Gibbon is a simple API wrapper for interacting with MailChimp API version
|
202
191
|
1.3.
|
203
192
|
email: amromousa@gmail.com
|
@@ -233,7 +222,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
222
|
version: '0'
|
234
223
|
segments:
|
235
224
|
- 0
|
236
|
-
hash:
|
225
|
+
hash: 2040332817665345079
|
237
226
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
227
|
none: false
|
239
228
|
requirements:
|