mailerlite 1.10.0 → 1.13.1

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
  SHA256:
3
- metadata.gz: 9ccc9f1ff0482360a7e4a1036ff3f67d646c3623402a1c05a777e3457a392e2e
4
- data.tar.gz: 1c70b2e1e35e22c93d70d6edc623a5975ef735be37b23cfd295450a09f9a97ce
3
+ metadata.gz: 22139fe497a0ae5c7b362b0ac073b7f438ee2f3f5a6b6066c9f32b7eb3e49fb7
4
+ data.tar.gz: d69c1973ac5749db3da284f7b0b192498c339e05451f6a180e7107d9f66c5ec8
5
5
  SHA512:
6
- metadata.gz: 69a04fe0dc9a5487e146102ddc7fe7debe86a1624f8d651856f0f2b33a0b2a8ed0bc9b8dfc3b90bb16c58eb0a7f454bc395ef62ab4387a4b167270e8147b420a
7
- data.tar.gz: 04c904fc8dcb9a1cb200c098c0fc2e9cedc7e778fb6430299a1b2a3cfd8465ac8a66628d4f0e53c89ab1f0c0b1ca6171089c41d80e88ab4c68111dc9fb8c1af4
6
+ metadata.gz: 84263464b713fe7b1c70b3fd6f300feeeddc9329f68e7444e7fed91433d38948763114c1c8e0f17c2a8512586db6a23b062692bf6a1137152e0d878928a94428
7
+ data.tar.gz: a9f42133f73b09c8256edc5c859fc6d08e5deef03643b2b17b2b7a59c8e342e421908c5fa7e69d5cf33d50f33e8a79eea5ccf850dc611c6c16972065480933f4
@@ -0,0 +1,11 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "bundler"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "daily"
7
+
8
+ - package-ecosystem: "github-actions"
9
+ directory: "/"
10
+ schedule:
11
+ interval: "daily"
@@ -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@v1
15
+ - uses: actions/checkout@v2
16
16
  - name: Set up Ruby ${{ matrix.ruby }}
17
- uses: actions/setup-ruby@v1
17
+ uses: ruby/setup-ruby@v1
18
18
  with:
19
19
  ruby-version: ${{ matrix.ruby }}
20
- - name: Install dependencies
21
- run: |
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@v1
33
+ - uses: actions/checkout@v2
36
34
  - name: Set up Ruby
37
- uses: actions/setup-ruby@v1
35
+ uses: ruby/setup-ruby@v1
38
36
  with:
39
- ruby-version: 2.7
40
- - name: Install dependencies
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
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020 Justas Palumickas
3
+ Copyright (c) 2021 Justas Palumickas
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
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
- ## Copyright
67
- Copyright (c) 2020 Justas Palumickas. See [LICENSE][github_actions] for details.
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
@@ -33,7 +33,7 @@ client.create_subscriber(email: 'john@example.com', name: 'John Smith')
33
33
  ## Update single subscriber
34
34
 
35
35
  ```ruby
36
- client.update_subscriber(subscriber_id options)
36
+ client.update_subscriber(subscriber_id, options)
37
37
  ```
38
38
 
39
39
  or with email
@@ -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
- response = connection.send(method) do |request|
41
- request.url(path, query_params)
42
- request.headers['Content-Type'] = 'application/json'
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
- private
7
+ def parse(body)
8
+ return '{}' if body == ''
8
9
 
9
- def on_complete(response)
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)
@@ -2,5 +2,5 @@
2
2
 
3
3
  module MailerLite
4
4
  # @return [String] Version number.
5
- VERSION = '1.10.0'
5
+ VERSION = '1.13.1'
6
6
  end
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', '>= 3.5.5'
37
+ spec.add_dependency 'hashie', '~> 4.0'
38
38
 
39
- spec.add_development_dependency 'codecov', '~> 0.1'
40
- spec.add_development_dependency 'pry', '~> 0.13'
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.9'
43
- spec.add_development_dependency 'rubocop', '~> 0.82'
44
- spec.add_development_dependency 'simplecov', '~> 0.18'
45
- spec.add_development_dependency 'webmock', '~> 3.8'
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.10.0
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: 2020-04-21 00:00:00.000000000 Z
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.1'
68
- type: :development
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.1'
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.13'
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.13'
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.9'
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.9'
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: '0.82'
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: '0.82'
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.18'
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.18'
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.8'
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.8'
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.1.2
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: []