mailchimp_api_v3 0.2.1 → 0.2.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b1defa3bc88fd22214ea8fc775fcca81f4b91f9
4
- data.tar.gz: bb86a874d5bb6ecadd5fbab3459f8977dc4f7804
3
+ metadata.gz: 1dab92eb4645ef0146c63e4a18b2dafd1a996c73
4
+ data.tar.gz: 54b25de985d17c12a96c9968258392217c59ce7e
5
5
  SHA512:
6
- metadata.gz: e5e166d8894d5cf0992fcbac31a48ab2167d63b90e446adefafd799174b557cab218169818c397b5869827b3d3c67dc21f712595b0a69f673a7b8272d0fa6b30
7
- data.tar.gz: 129ffa0e7dda961bbe9a4f838f360fecbc418d173d69a480a326656d7dc206c79beba8772d50c6e7aaa3f9b3d3b88803cb22cc1b4be7ed7ec09d92c7d49355f9
6
+ metadata.gz: 38015076b51956f2139b0b823b65b3c3565e733e5a6d1334371905a780ebdb1836b7a1c83ff9a68a6daca7a21e59b31e1fdf5e12f700c3b4d61fe4060fcfdce7
7
+ data.tar.gz: 84e3e2fd2613ec42191cacc779b36bdc99b1f2e1d433ebac772fcc87c7bb73a7010d7942a4a715658ffb5999ab24b80f05feee0bbd9051b1a59b9d63adf1f0b8
@@ -3,6 +3,11 @@ AllCops:
3
3
  Exclude:
4
4
  - 'tmp/**/*'
5
5
 
6
+ Metrics/BlockLength:
7
+ CountComments: false # count full line comments?
8
+ Exclude:
9
+ - '**/*_spec.rb'
10
+
6
11
  StringLiterals:
7
12
  EnforcedStyle: single_quotes
8
13
  Enabled: true
@@ -0,0 +1,6 @@
1
+ ---
2
+ language: ruby
3
+ rvm:
4
+ - 2.4.0
5
+ script:
6
+ - rspec
data/Gemfile CHANGED
@@ -1,3 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
  source 'https://rubygems.org'
3
3
  gemspec
4
+
5
+ group :development do
6
+ gem 'bundler'
7
+ gem 'gem-release'
8
+ gem 'guard'
9
+ gem 'guard-rspec'
10
+ gem 'guard-rubocop'
11
+ end
12
+
13
+ group :test do
14
+ gem 'coveralls'
15
+ gem 'fuubar'
16
+ gem 'rake' # Workaround for a bug in Rainbow 2.2.1 https://github.com/sickill/rainbow/issues/44
17
+ gem 'rspec'
18
+ gem 'rspec_junit_formatter'
19
+ gem 'simplecov', '~> 0.13'
20
+ gem 'vcr'
21
+ gem 'webmock'
22
+ end
data/HISTORY.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### v0.2.13
2
+ * Refreshed Rubocop and ensured the code is still compliant
3
+ * Changed copyright to me
4
+
1
5
  ### v0.2.0
2
6
  * Updated the dependency on rest-client to 2.0.0 because of the known vulnerabilities in earlier versions
3
7
  * The corollary of this is that Ruby versions < 2.0 are no longer supported
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2015, Xenapto
1
+ Copyright (c) 2017 Dominic Sayers
2
2
  Some code copyright (c) 2015, The Rocket Science Group, LLC
3
3
  All rights reserved.
4
4
 
data/README.md CHANGED
@@ -1,14 +1,17 @@
1
1
  ## Mailchimp API v3
2
- [![Gem Version](https://badge.fury.io/rb/mailchimp_api_v3.svg)](https://rubygems.org/gems/mailchimp_api_v3)
2
+ [![Gem Version 0.2.15](https://badge.fury.io/rb/mailchimp_api_v3.svg)](https://rubygems.org/gems/mailchimp_api_v3)
3
3
  [![Gem downloads](https://img.shields.io/gem/dt/mailchimp_api_v3.svg)](https://rubygems.org/gems/mailchimp_api_v3)
4
- [![Build status](https://img.shields.io/circleci/project/Xenapto/mailchimp_api_v3/develop.svg)](https://circleci.com/gh/Xenapto/mailchimp_api_v3)
5
- [![Code quality](http://img.shields.io/codeclimate/github/Xenapto/mailchimp_api_v3.svg?style=flat)](https://codeclimate.com/github/Xenapto/mailchimp_api_v3)
6
- [![Coverage](https://img.shields.io/coveralls/Xenapto/mailchimp_api_v3/develop.svg?style=flat)](https://coveralls.io/r/Xenapto/mailchimp_api_v3?branch=develop)
7
- [![Dependency Status](https://dependencyci.com/github/Xenapto/mailchimp_api_v3/badge)](https://dependencyci.com/github/Xenapto/mailchimp_api_v3)
8
- [![Security](https://hakiri.io/github/Xenapto/mailchimp_api_v3/develop.svg)](https://hakiri.io/github/Xenapto/mailchimp_api_v3/develop)
9
- [![Join the chat at https://gitter.im/Xenapto/mailchimp_api_v3](https://badges.gitter.im/Xenapto/mailchimp_api_v3.svg)](https://gitter.im/Xenapto/mailchimp_api_v3?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4
+ [![Build status](https://img.shields.io/circleci/project/dominicsayers/mailchimp_api_v3/develop.svg)](https://circleci.com/gh/dominicsayers/mailchimp_api_v3)
5
+ [![Code quality](http://img.shields.io/codeclimate/github/dominicsayers/mailchimp_api_v3.svg?style=flat)](https://codeclimate.com/github/dominicsayers/mailchimp_api_v3)
6
+ [![Coverage Status](https://coveralls.io/repos/github/dominicsayers/mailchimp_api_v3/badge.svg?branch=develop)](https://coveralls.io/github/dominicsayers/mailchimp_api_v3?branch=develop)
7
+ [![Dependency Status](https://dependencyci.com/github/dominicsayers/mailchimp_api_v3/badge)](https://dependencyci.com/github/dominicsayers/mailchimp_api_v3)
8
+ [![Security](https://hakiri.io/github/dominicsayers/mailchimp_api_v3/develop.svg)](https://hakiri.io/github/dominicsayers/mailchimp_api_v3/develop)
10
9
 
11
- A simple gem to interact with Mailchimp through the Mailchimp API v3
10
+ A simple gem to interact with Mailchimp through the Mailchimp API v3.
11
+
12
+ ### A note on Gibbon
13
+
14
+ I wrote this gem when [Gibbon](https://github.com/amro/gibbon) did not support Mailchimp's API v3. I believe it now does, and is a more regularly-maintained gem. You are welcome to use my gem but I don't have a great deal of time to deal with issues or enhance it further.
12
15
 
13
16
  ### Project status
14
17
 
@@ -87,7 +90,7 @@ end
87
90
 
88
91
  ### Contributing
89
92
 
90
- [![Developer](http://img.shields.io/badge/developer-awesome-brightgreen.svg?style=flat)](http://xenapto.com)
93
+ [![Developer](http://img.shields.io/badge/developer-awesome-brightgreen.svg?style=flat)](https://www.dominicsayers.com)
91
94
 
92
95
  1. Fork it
93
96
  1. Create your feature branch (`git checkout -b my-new-feature`)
data/circle.yml CHANGED
@@ -1,7 +1,14 @@
1
1
  ---
2
2
  machine:
3
3
  ruby:
4
- version: 2.3.1
4
+ version: 2.4.0
5
+ dependencies:
6
+ pre:
7
+ - echo "export rvm_ignore_gemsets_flag=1" >> ~/.rvmrc
8
+ - gem update --system
9
+ - gem install bundler
10
+ override:
11
+ - bundle check --path=vendor/bundle || bundle install --path=vendor/bundle --jobs=4 --retry=3 --full-index
5
12
  test:
6
13
  override:
7
14
  - RAILS_ENV=test bundle exec rspec -r rspec_junit_formatter --format RspecJunitFormatter -o $CIRCLE_TEST_REPORTS/rspec/junit.xml:
@@ -24,10 +24,12 @@ module Mailchimp
24
24
  def initialize(api_key = nil, extra_headers = {})
25
25
  @api_key = api_key || ENV['MAILCHIMP_API_KEY']
26
26
 
27
- raise(
28
- Mailchimp::Exception::APIKeyError,
29
- 'detail' => "Invalid API key format: #{@api_key}"
30
- ) unless api_key_valid?
27
+ unless api_key_valid?
28
+ raise(
29
+ Mailchimp::Exception::APIKeyError,
30
+ 'detail' => "Invalid API key format: #{@api_key}"
31
+ )
32
+ end
31
33
 
32
34
  @extra_headers = extra_headers
33
35
  super self, { 'id' => '3.0' }
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require 'json'
2
3
  require 'yaml'
3
4
  require 'restclient'
4
5
 
@@ -27,7 +28,7 @@ module Mailchimp
27
28
 
28
29
  def managed_remote(path, method = :get, options = {}, payload = nil)
29
30
  headers_and_params = headers.merge params_from(options)
30
- YAML.load(naked_remote("#{url_stub}#{path}", method, headers_and_params, payload) || '')
31
+ YAML.safe_load(naked_remote("#{url_stub}#{path}", method, headers_and_params, payload) || '')
31
32
  rescue *RETRY_EXCEPTIONS => e
32
33
  @retries ||= 0
33
34
  raise e if (@retries += 1) > 3
@@ -37,16 +38,18 @@ module Mailchimp
37
38
  end
38
39
 
39
40
  def managed_remote_exception(e)
40
- data = YAML.load(e.http_body) if e.respond_to? :http_body
41
+ data = YAML.safe_load(e.http_body) if e.respond_to? :http_body
41
42
  exception_class_name = e.class.to_s
42
43
 
43
44
  if Mailchimp::Exception::MAPPED_EXCEPTIONS.key? exception_class_name
44
45
  raise Mailchimp::Exception::MAPPED_EXCEPTIONS[exception_class_name], data
45
- elsif exception_class_name == 'RestClient::BadRequest'
46
- Mailchimp::Exception.parse_invalid_resource_exception data
47
- else
48
- raise e
49
46
  end
47
+
48
+ if exception_class_name == Mailchimp::Exception::BAD_REQUEST
49
+ return Mailchimp::Exception.parse_invalid_resource_exception data
50
+ end
51
+
52
+ raise e
50
53
  end
51
54
 
52
55
  def naked_remote(url, method, headers_and_params, payload = nil)
@@ -37,5 +37,7 @@ module Mailchimp
37
37
  'RestClient::ResourceNotFound' => NotFound,
38
38
  'RestClient::Unauthorized' => APIKeyError
39
39
  }.freeze
40
+
41
+ BAD_REQUEST = 'RestClient::BadRequest'.freeze
40
42
  end
41
43
  end
@@ -5,7 +5,7 @@ module Mailchimp
5
5
  Interest = Class.new(Instance)
6
6
 
7
7
  class Interests < Collection
8
- PATH_KEY = DATA_KEY = 'interests'
8
+ PATH_KEY = DATA_KEY = 'interests'.freeze
9
9
  CHILD_CLASS = Interest
10
10
  end
11
11
  end
@@ -10,9 +10,9 @@ module Mailchimp
10
10
  end
11
11
 
12
12
  class InterestCategories < Collection
13
- NAME_FIELD = 'title'
14
- PATH_KEY = 'interest-categories'
15
- DATA_KEY = 'categories'
13
+ NAME_FIELD = 'title'.freeze
14
+ PATH_KEY = 'interest-categories'.freeze
15
+ DATA_KEY = 'categories'.freeze
16
16
  CHILD_CLASS = InterestCategory
17
17
  end
18
18
  end
@@ -16,7 +16,7 @@ module Mailchimp
16
16
  end
17
17
 
18
18
  class Lists < Collection
19
- PATH_KEY = DATA_KEY = 'lists'
19
+ PATH_KEY = DATA_KEY = 'lists'.freeze
20
20
  CHILD_CLASS = List
21
21
  end
22
22
  end
@@ -57,7 +57,7 @@ module Mailchimp
57
57
  end
58
58
 
59
59
  class Members < Collection
60
- PATH_KEY = DATA_KEY = 'members'
60
+ PATH_KEY = DATA_KEY = 'members'.freeze
61
61
  CHILD_CLASS = Member
62
62
 
63
63
  def create(data)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Mailchimp
3
- VERSION = '0.2.1'
3
+ VERSION = '0.2.15'.freeze
4
4
  end
@@ -6,11 +6,11 @@ require 'mailchimp_api_v3/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'mailchimp_api_v3'
8
8
  spec.version = Mailchimp::VERSION
9
- spec.authors = ['Xenapto']
10
- spec.email = ['developers@xenapto.com']
9
+ spec.authors = ['Dominic Sayers']
10
+ spec.email = ['dominic@sayers.cc']
11
11
  spec.description = 'A simple gem to interact with Mailchimp through their API v3'
12
12
  spec.summary = 'Example: mailchimp.lists("My first list").member("ann@example.com")'
13
- spec.homepage = 'https://github.com/Xenapto/mailchimp_api_v3'
13
+ spec.homepage = 'https://github.com/dominicsayers/mailchimp_api_v3'
14
14
  spec.license = 'BSD-2-Clause'
15
15
 
16
16
  spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
@@ -19,18 +19,4 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ['lib']
20
20
 
21
21
  spec.add_runtime_dependency 'rest-client', '~> 2' # https://github.com/rest-client/rest-client/issues/369
22
-
23
- spec.add_development_dependency 'bundler', '~> 1'
24
- spec.add_development_dependency 'rspec', '~> 3'
25
- spec.add_development_dependency 'fuubar', '~> 2'
26
- spec.add_development_dependency 'rspec_junit_formatter', '~> 0'
27
- spec.add_development_dependency 'simplecov', '~> 0'
28
- spec.add_development_dependency 'coveralls', '~> 0'
29
- spec.add_development_dependency 'vcr', '~> 3'
30
- spec.add_development_dependency 'webmock', '~> 2'
31
- spec.add_development_dependency 'listen', '~> 3.0', '< 3.1' # Dependency of guard, 3.1 requires Ruby 2.2+
32
- spec.add_development_dependency 'guard', '~> 2'
33
- spec.add_development_dependency 'guard-rspec', '~> 4'
34
- spec.add_development_dependency 'guard-rubocop', '~> 1'
35
- spec.add_development_dependency 'gem-release', '~> 0'
36
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailchimp_api_v3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.15
5
5
  platform: ruby
6
6
  authors:
7
- - Xenapto
7
+ - Dominic Sayers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-04 00:00:00.000000000 Z
11
+ date: 2017-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -24,206 +24,18 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '1'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '1'
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '3'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '3'
55
- - !ruby/object:Gem::Dependency
56
- name: fuubar
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '2'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '2'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec_junit_formatter
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
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: simplecov
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
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: coveralls
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
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: vcr
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '3'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '3'
125
- - !ruby/object:Gem::Dependency
126
- name: webmock
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '2'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '2'
139
- - !ruby/object:Gem::Dependency
140
- name: listen
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '3.0'
146
- - - "<"
147
- - !ruby/object:Gem::Version
148
- version: '3.1'
149
- type: :development
150
- prerelease: false
151
- version_requirements: !ruby/object:Gem::Requirement
152
- requirements:
153
- - - "~>"
154
- - !ruby/object:Gem::Version
155
- version: '3.0'
156
- - - "<"
157
- - !ruby/object:Gem::Version
158
- version: '3.1'
159
- - !ruby/object:Gem::Dependency
160
- name: guard
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - "~>"
164
- - !ruby/object:Gem::Version
165
- version: '2'
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - "~>"
171
- - !ruby/object:Gem::Version
172
- version: '2'
173
- - !ruby/object:Gem::Dependency
174
- name: guard-rspec
175
- requirement: !ruby/object:Gem::Requirement
176
- requirements:
177
- - - "~>"
178
- - !ruby/object:Gem::Version
179
- version: '4'
180
- type: :development
181
- prerelease: false
182
- version_requirements: !ruby/object:Gem::Requirement
183
- requirements:
184
- - - "~>"
185
- - !ruby/object:Gem::Version
186
- version: '4'
187
- - !ruby/object:Gem::Dependency
188
- name: guard-rubocop
189
- requirement: !ruby/object:Gem::Requirement
190
- requirements:
191
- - - "~>"
192
- - !ruby/object:Gem::Version
193
- version: '1'
194
- type: :development
195
- prerelease: false
196
- version_requirements: !ruby/object:Gem::Requirement
197
- requirements:
198
- - - "~>"
199
- - !ruby/object:Gem::Version
200
- version: '1'
201
- - !ruby/object:Gem::Dependency
202
- name: gem-release
203
- requirement: !ruby/object:Gem::Requirement
204
- requirements:
205
- - - "~>"
206
- - !ruby/object:Gem::Version
207
- version: '0'
208
- type: :development
209
- prerelease: false
210
- version_requirements: !ruby/object:Gem::Requirement
211
- requirements:
212
- - - "~>"
213
- - !ruby/object:Gem::Version
214
- version: '0'
215
27
  description: A simple gem to interact with Mailchimp through their API v3
216
28
  email:
217
- - developers@xenapto.com
29
+ - dominic@sayers.cc
218
30
  executables: []
219
31
  extensions: []
220
32
  extra_rdoc_files: []
221
33
  files:
222
- - ".coveralls.yml"
223
34
  - ".gitignore"
224
35
  - ".hound.yml"
225
36
  - ".rspec"
226
37
  - ".rubocop.yml"
38
+ - ".travis.yml"
227
39
  - CODE_OF_CONDUCT.md
228
40
  - Gemfile
229
41
  - Guardfile
@@ -274,7 +86,7 @@ files:
274
86
  - spec/spec_helper.rb
275
87
  - spec/support/api_key.rb
276
88
  - spec/support/vcr_setup.rb
277
- homepage: https://github.com/Xenapto/mailchimp_api_v3
89
+ homepage: https://github.com/dominicsayers/mailchimp_api_v3
278
90
  licenses:
279
91
  - BSD-2-Clause
280
92
  metadata: {}
@@ -294,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
294
106
  version: '0'
295
107
  requirements: []
296
108
  rubyforge_project:
297
- rubygems_version: 2.6.4
109
+ rubygems_version: 2.6.10
298
110
  signing_key:
299
111
  specification_version: 4
300
112
  summary: 'Example: mailchimp.lists("My first list").member("ann@example.com")'
@@ -1,4 +0,0 @@
1
- notify:
2
- webhooks:
3
- # A list of hook hashes, containing the url field
4
- - url: https://coveralls.io/webhook?repo_token=SFdYC8cgEnwclAC8K7dzccQ5e16ZBDlPj