mailerlite 1.10.0 → 1.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +11 -0
- data/.github/workflows/test.yml +9 -14
- data/.rubocop.yml +7 -0
- data/LICENSE +1 -1
- data/README.md +6 -2
- data/examples/subscribers.md +1 -1
- data/lib/mailerlite/client.rb +3 -0
- data/lib/mailerlite/configuration.rb +1 -1
- data/lib/mailerlite/connection.rb +18 -13
- data/lib/mailerlite/middleware/fix_unparsed_json.rb +3 -3
- data/lib/mailerlite/middleware/raise_error.rb +0 -2
- data/lib/mailerlite/middleware/underscore_keys.rb +2 -2
- data/lib/mailerlite/version.rb +1 -1
- data/mailerlite.gemspec +7 -7
- metadata +20 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22139fe497a0ae5c7b362b0ac073b7f438ee2f3f5a6b6066c9f32b7eb3e49fb7
|
4
|
+
data.tar.gz: d69c1973ac5749db3da284f7b0b192498c339e05451f6a180e7107d9f66c5ec8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84263464b713fe7b1c70b3fd6f300feeeddc9329f68e7444e7fed91433d38948763114c1c8e0f17c2a8512586db6a23b062692bf6a1137152e0d878928a94428
|
7
|
+
data.tar.gz: a9f42133f73b09c8256edc5c859fc6d08e5deef03643b2b17b2b7a59c8e342e421908c5fa7e69d5cf33d50f33e8a79eea5ccf850dc611c6c16972065480933f4
|
data/.github/workflows/test.yml
CHANGED
@@ -7,20 +7,18 @@ jobs:
|
|
7
7
|
name: Test
|
8
8
|
strategy:
|
9
9
|
matrix:
|
10
|
-
ruby: [2.5, 2.6, 2.7]
|
10
|
+
ruby: [2.5, 2.6, 2.7, '3.0', head, truffleruby]
|
11
11
|
|
12
12
|
runs-on: ubuntu-latest
|
13
13
|
|
14
14
|
steps:
|
15
|
-
- uses: actions/checkout@
|
15
|
+
- uses: actions/checkout@v2
|
16
16
|
- name: Set up Ruby ${{ matrix.ruby }}
|
17
|
-
uses:
|
17
|
+
uses: ruby/setup-ruby@v1
|
18
18
|
with:
|
19
19
|
ruby-version: ${{ matrix.ruby }}
|
20
|
-
|
21
|
-
|
22
|
-
gem install bundler
|
23
|
-
bundle install --jobs 4 --retry 3
|
20
|
+
bundler-cache: true
|
21
|
+
|
24
22
|
- name: RSpec
|
25
23
|
env:
|
26
24
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
@@ -32,15 +30,12 @@ jobs:
|
|
32
30
|
runs-on: ubuntu-latest
|
33
31
|
|
34
32
|
steps:
|
35
|
-
- uses: actions/checkout@
|
33
|
+
- uses: actions/checkout@v2
|
36
34
|
- name: Set up Ruby
|
37
|
-
uses:
|
35
|
+
uses: ruby/setup-ruby@v1
|
38
36
|
with:
|
39
|
-
ruby-version:
|
40
|
-
|
41
|
-
run: |
|
42
|
-
gem install bundler
|
43
|
-
bundle install --jobs 4 --retry 3
|
37
|
+
ruby-version: '3.0'
|
38
|
+
bundler-cache: true
|
44
39
|
- name: RuboCop
|
45
40
|
run: |
|
46
41
|
bundle exec rubocop
|
data/.rubocop.yml
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
AllCops:
|
2
2
|
TargetRubyVersion: 2.5
|
3
|
+
NewCops: enable
|
3
4
|
|
4
5
|
Layout/ParameterAlignment:
|
5
6
|
Enabled: true
|
@@ -31,7 +32,13 @@ Style/DoubleNegation:
|
|
31
32
|
Exclude:
|
32
33
|
- 'lib/mailerlite/utils.rb'
|
33
34
|
|
35
|
+
Style/OptionalBooleanParameter:
|
36
|
+
Enabled: false
|
37
|
+
|
34
38
|
Metrics/BlockLength:
|
35
39
|
Exclude:
|
36
40
|
- '*.gemspec'
|
37
41
|
- 'spec/**/*_spec.rb'
|
42
|
+
|
43
|
+
Lint/MissingSuper:
|
44
|
+
Enabled: false
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -40,6 +40,7 @@ Or create file under `config/initializers/mailerlite.rb`
|
|
40
40
|
```ruby
|
41
41
|
MailerLite.configure do |config|
|
42
42
|
config.api_key = 'my-secret-api-key'
|
43
|
+
# config.timeout = 10
|
43
44
|
end
|
44
45
|
```
|
45
46
|
|
@@ -62,9 +63,12 @@ implementations:
|
|
62
63
|
* Ruby 2.5.0
|
63
64
|
* Ruby 2.6.0
|
64
65
|
* Ruby 2.7.0
|
66
|
+
* Ruby 3.0.0
|
67
|
+
* Truffleruby
|
65
68
|
|
66
|
-
##
|
67
|
-
|
69
|
+
## License
|
70
|
+
|
71
|
+
The gem is available as open source under the terms of the [MIT License][license].
|
68
72
|
|
69
73
|
[rubygems]: https://rubygems.org/gems/mailerlite
|
70
74
|
[codecov]: https://codecov.io/gh/jpalumickas/mailerlite-ruby
|
data/examples/subscribers.md
CHANGED
data/lib/mailerlite/client.rb
CHANGED
@@ -26,8 +26,11 @@ module MailerLite
|
|
26
26
|
#
|
27
27
|
# @param options [Hash] A customizable set of options.
|
28
28
|
# @option options [String] :api_key API Key provider from MailerLite.
|
29
|
+
# @option options [String] :timeout optional open/read timeout Integer in
|
30
|
+
# seconds
|
29
31
|
def initialize(options = {})
|
30
32
|
config.api_key = options[:api_key] if options[:api_key]
|
33
|
+
config.timeout = options[:timeout] if options[:timeout]
|
31
34
|
end
|
32
35
|
|
33
36
|
# @return [Configuration]
|
@@ -9,7 +9,7 @@ module MailerLite
|
|
9
9
|
# Default User Agent header string.
|
10
10
|
USER_AGENT = "MailerLite Ruby v#{MailerLite::VERSION}"
|
11
11
|
|
12
|
-
attr_accessor :api_key
|
12
|
+
attr_accessor :api_key, :timeout
|
13
13
|
attr_writer :url, :user_agent
|
14
14
|
|
15
15
|
# Takes url provided from configuration or uses default one.
|
@@ -37,30 +37,35 @@ module MailerLite
|
|
37
37
|
private
|
38
38
|
|
39
39
|
def request(method, path, query_params = {}, body_params = {})
|
40
|
-
|
41
|
-
request.
|
42
|
-
request.
|
43
|
-
|
44
|
-
if client.config.api_key
|
45
|
-
request.headers['X-MailerLite-ApiKey'] = client.config.api_key
|
46
|
-
end
|
47
|
-
|
48
|
-
request.body = body_params.to_json
|
40
|
+
connection.send(method, path) do |request|
|
41
|
+
request.params = query_params unless query_params.empty?
|
42
|
+
request.body = body_params.to_json unless body_params.empty?
|
49
43
|
end
|
50
|
-
|
51
|
-
response
|
52
44
|
end
|
53
45
|
|
54
46
|
def connection
|
55
47
|
conn_opts = {
|
56
|
-
headers: { user_agent: client.config.user_agent },
|
57
48
|
url: client.config.url,
|
58
|
-
builder: middleware
|
49
|
+
builder: middleware,
|
50
|
+
headers: headers
|
59
51
|
}
|
52
|
+
timeout = client.config.timeout
|
53
|
+
conn_opts[:request] = { timeout: timeout } unless timeout.nil?
|
60
54
|
|
61
55
|
Faraday.new(conn_opts)
|
62
56
|
end
|
63
57
|
|
58
|
+
def headers
|
59
|
+
headers = {
|
60
|
+
'User-Agent' => client.config.user_agent,
|
61
|
+
'Content-Type' => 'application/json'
|
62
|
+
}
|
63
|
+
|
64
|
+
headers['X-MailerLite-ApiKey'] = client.config.api_key if client.config.api_key
|
65
|
+
|
66
|
+
headers
|
67
|
+
end
|
68
|
+
|
64
69
|
def middleware
|
65
70
|
@middleware ||= Faraday::RackBuilder.new do |builder|
|
66
71
|
builder.request :json
|
@@ -4,10 +4,10 @@ module MailerLite
|
|
4
4
|
module Middleware
|
5
5
|
# This middleware will convert empty response to {}
|
6
6
|
class FixUnparsedJson < Faraday::Response::Middleware
|
7
|
-
|
7
|
+
def parse(body)
|
8
|
+
return '{}' if body == ''
|
8
9
|
|
9
|
-
|
10
|
-
response[:body] = {} if response[:body] == ''
|
10
|
+
body
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -6,8 +6,6 @@ module MailerLite
|
|
6
6
|
# This class raises an exception based HTTP status codes returned
|
7
7
|
# by the API.
|
8
8
|
class RaiseError < Faraday::Response::Middleware
|
9
|
-
private
|
10
|
-
|
11
9
|
def on_complete(response)
|
12
10
|
error = MailerLite::Error.from_response(response)
|
13
11
|
raise error if error
|
@@ -4,12 +4,12 @@ module MailerLite
|
|
4
4
|
module Middleware
|
5
5
|
# This class will underscore all response keys from CamelCase.
|
6
6
|
class UnderscoreKeys < Faraday::Response::Middleware
|
7
|
-
private
|
8
|
-
|
9
7
|
def on_complete(response)
|
10
8
|
response[:body] = updated_response(response[:body])
|
11
9
|
end
|
12
10
|
|
11
|
+
private
|
12
|
+
|
13
13
|
def updated_response(response)
|
14
14
|
if response.is_a?(Hash)
|
15
15
|
underscore_hash_keys(response)
|
data/lib/mailerlite/version.rb
CHANGED
data/mailerlite.gemspec
CHANGED
@@ -34,13 +34,13 @@ Gem::Specification.new do |spec|
|
|
34
34
|
|
35
35
|
spec.add_dependency 'faraday', '~> 1.0', '>= 1.0.1'
|
36
36
|
spec.add_dependency 'faraday_middleware', '~> 1.0'
|
37
|
-
spec.add_dependency 'hashie', '
|
37
|
+
spec.add_dependency 'hashie', '~> 4.0'
|
38
38
|
|
39
|
-
spec.add_development_dependency 'codecov', '~> 0.
|
40
|
-
spec.add_development_dependency 'pry', '~> 0.
|
39
|
+
# spec.add_development_dependency 'codecov', '~> 0.2', '>= 0.2.12'
|
40
|
+
spec.add_development_dependency 'pry', '~> 0.14'
|
41
41
|
spec.add_development_dependency 'rake', '~> 13.0'
|
42
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
43
|
-
spec.add_development_dependency 'rubocop', '~>
|
44
|
-
spec.add_development_dependency 'simplecov', '~> 0.
|
45
|
-
spec.add_development_dependency 'webmock', '~> 3.
|
42
|
+
spec.add_development_dependency 'rspec', '~> 3.10'
|
43
|
+
spec.add_development_dependency 'rubocop', '~> 1.18'
|
44
|
+
spec.add_development_dependency 'simplecov', '~> 0.21'
|
45
|
+
spec.add_development_dependency 'webmock', '~> 3.14'
|
46
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailerlite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.13.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justas Palumickas
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -46,46 +46,32 @@ dependencies:
|
|
46
46
|
version: '1.0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: hashie
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - ">="
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 3.5.5
|
54
|
-
type: :runtime
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: 3.5.5
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: codecov
|
63
49
|
requirement: !ruby/object:Gem::Requirement
|
64
50
|
requirements:
|
65
51
|
- - "~>"
|
66
52
|
- !ruby/object:Gem::Version
|
67
|
-
version: '0
|
68
|
-
type: :
|
53
|
+
version: '4.0'
|
54
|
+
type: :runtime
|
69
55
|
prerelease: false
|
70
56
|
version_requirements: !ruby/object:Gem::Requirement
|
71
57
|
requirements:
|
72
58
|
- - "~>"
|
73
59
|
- !ruby/object:Gem::Version
|
74
|
-
version: '0
|
60
|
+
version: '4.0'
|
75
61
|
- !ruby/object:Gem::Dependency
|
76
62
|
name: pry
|
77
63
|
requirement: !ruby/object:Gem::Requirement
|
78
64
|
requirements:
|
79
65
|
- - "~>"
|
80
66
|
- !ruby/object:Gem::Version
|
81
|
-
version: '0.
|
67
|
+
version: '0.14'
|
82
68
|
type: :development
|
83
69
|
prerelease: false
|
84
70
|
version_requirements: !ruby/object:Gem::Requirement
|
85
71
|
requirements:
|
86
72
|
- - "~>"
|
87
73
|
- !ruby/object:Gem::Version
|
88
|
-
version: '0.
|
74
|
+
version: '0.14'
|
89
75
|
- !ruby/object:Gem::Dependency
|
90
76
|
name: rake
|
91
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,56 +92,56 @@ dependencies:
|
|
106
92
|
requirements:
|
107
93
|
- - "~>"
|
108
94
|
- !ruby/object:Gem::Version
|
109
|
-
version: '3.
|
95
|
+
version: '3.10'
|
110
96
|
type: :development
|
111
97
|
prerelease: false
|
112
98
|
version_requirements: !ruby/object:Gem::Requirement
|
113
99
|
requirements:
|
114
100
|
- - "~>"
|
115
101
|
- !ruby/object:Gem::Version
|
116
|
-
version: '3.
|
102
|
+
version: '3.10'
|
117
103
|
- !ruby/object:Gem::Dependency
|
118
104
|
name: rubocop
|
119
105
|
requirement: !ruby/object:Gem::Requirement
|
120
106
|
requirements:
|
121
107
|
- - "~>"
|
122
108
|
- !ruby/object:Gem::Version
|
123
|
-
version: '
|
109
|
+
version: '1.18'
|
124
110
|
type: :development
|
125
111
|
prerelease: false
|
126
112
|
version_requirements: !ruby/object:Gem::Requirement
|
127
113
|
requirements:
|
128
114
|
- - "~>"
|
129
115
|
- !ruby/object:Gem::Version
|
130
|
-
version: '
|
116
|
+
version: '1.18'
|
131
117
|
- !ruby/object:Gem::Dependency
|
132
118
|
name: simplecov
|
133
119
|
requirement: !ruby/object:Gem::Requirement
|
134
120
|
requirements:
|
135
121
|
- - "~>"
|
136
122
|
- !ruby/object:Gem::Version
|
137
|
-
version: '0.
|
123
|
+
version: '0.21'
|
138
124
|
type: :development
|
139
125
|
prerelease: false
|
140
126
|
version_requirements: !ruby/object:Gem::Requirement
|
141
127
|
requirements:
|
142
128
|
- - "~>"
|
143
129
|
- !ruby/object:Gem::Version
|
144
|
-
version: '0.
|
130
|
+
version: '0.21'
|
145
131
|
- !ruby/object:Gem::Dependency
|
146
132
|
name: webmock
|
147
133
|
requirement: !ruby/object:Gem::Requirement
|
148
134
|
requirements:
|
149
135
|
- - "~>"
|
150
136
|
- !ruby/object:Gem::Version
|
151
|
-
version: '3.
|
137
|
+
version: '3.14'
|
152
138
|
type: :development
|
153
139
|
prerelease: false
|
154
140
|
version_requirements: !ruby/object:Gem::Requirement
|
155
141
|
requirements:
|
156
142
|
- - "~>"
|
157
143
|
- !ruby/object:Gem::Version
|
158
|
-
version: '3.
|
144
|
+
version: '3.14'
|
159
145
|
description: Ruby gem for MailerLite API v2
|
160
146
|
email:
|
161
147
|
- jpalumickas@gmail.com
|
@@ -163,6 +149,7 @@ executables: []
|
|
163
149
|
extensions: []
|
164
150
|
extra_rdoc_files: []
|
165
151
|
files:
|
152
|
+
- ".github/dependabot.yml"
|
166
153
|
- ".github/workflows/test.yml"
|
167
154
|
- ".gitignore"
|
168
155
|
- ".hound.yml"
|
@@ -213,7 +200,7 @@ metadata:
|
|
213
200
|
changelog_uri: https://github.com/jpalumickas/mailerlite-ruby/releases
|
214
201
|
documentation_uri: https://github.com/jpalumickas/mailerlite-ruby/tree/master/examples
|
215
202
|
source_code_uri: https://github.com/jpalumickas/mailerlite-ruby
|
216
|
-
post_install_message:
|
203
|
+
post_install_message:
|
217
204
|
rdoc_options: []
|
218
205
|
require_paths:
|
219
206
|
- lib
|
@@ -228,8 +215,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
228
215
|
- !ruby/object:Gem::Version
|
229
216
|
version: '0'
|
230
217
|
requirements: []
|
231
|
-
rubygems_version: 3.
|
232
|
-
signing_key:
|
218
|
+
rubygems_version: 3.2.24
|
219
|
+
signing_key:
|
233
220
|
specification_version: 4
|
234
221
|
summary: Ruby wrapper for MailerLite API v2
|
235
222
|
test_files: []
|