mailerlite 1.14.0 → 1.16.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 160c12ea8fcf54bb088de19d641a27c4d80b78ab4585d3d4707a6f468c334797
4
- data.tar.gz: 578cc65b1d1277a2f1460906001918bcd558f092173cf934b40d8668da920446
3
+ metadata.gz: a009f837f36ed5749857bf86c9d22427fbceebfa4df0861feebab4f663fef10f
4
+ data.tar.gz: 1b7897b35d0c650d3f766e3da293090e0c1243c5c30292c1cdfced2336994b0e
5
5
  SHA512:
6
- metadata.gz: f04b1e66aeb85f0c09c73f29617153e2d1ee1d9572b1f4a9857f3081c3420bb273146b8ebfd024e600c4c404c94c0233983ca486a02969d004fb0aead26b7993
7
- data.tar.gz: 61471d6fa49c051ccf220ad048bf7e00c188583000499d297a90996076311e4335860d23afba849dd5bb0c65daf43d29d5076edb28ef93a2b35d67cf88ab56a3
6
+ metadata.gz: bc3931fc5b58197bfcb7c4a2e092a63fae6b03812b3a6a8757a4fa076c623b84845ecd064ed7fd250a70c7e50a07bab74c174b1be4dc9ddd7212233cf37a107d
7
+ data.tar.gz: c3b82f78d4c2b61ead778f00d559c5f728fed4630c0601de1c467f1a06d1d09a32eff9cddab2b5aade20010c9ac92e489b43cc980d425df569b1c405cbd6c467
@@ -7,12 +7,12 @@ jobs:
7
7
  name: Test
8
8
  strategy:
9
9
  matrix:
10
- ruby: [2.6, 2.7, '3.0', 3.1, head, truffleruby]
10
+ ruby: [2.7, '3.0', 3.1, 3.2, head, truffleruby]
11
11
 
12
12
  runs-on: ubuntu-latest
13
13
 
14
14
  steps:
15
- - uses: actions/checkout@v2
15
+ - uses: actions/checkout@v3
16
16
  - name: Set up Ruby ${{ matrix.ruby }}
17
17
  uses: ruby/setup-ruby@v1
18
18
  with:
@@ -30,11 +30,11 @@ jobs:
30
30
  runs-on: ubuntu-latest
31
31
 
32
32
  steps:
33
- - uses: actions/checkout@v2
33
+ - uses: actions/checkout@v3
34
34
  - name: Set up Ruby
35
35
  uses: ruby/setup-ruby@v1
36
36
  with:
37
- ruby-version: '3.0'
37
+ ruby-version: 3.2
38
38
  bundler-cache: true
39
39
  - name: RuboCop
40
40
  run: |
data/.rubocop.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.6
2
+ TargetRubyVersion: 2.7
3
+ SuggestExtensions: false
3
4
  NewCops: enable
4
5
 
5
6
  Layout/ParameterAlignment:
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2022 Justas Palumickas
3
+ Copyright (c) 2023 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
@@ -60,10 +60,10 @@ See more documentation in [examples][examples] directory.
60
60
  This library aims to support and is [tested against][github_actions] the following Ruby
61
61
  implementations:
62
62
 
63
- * Ruby 2.6.0
64
63
  * Ruby 2.7.0
65
64
  * Ruby 3.0.0
66
65
  * Ruby 3.1.0
66
+ * Ruby 3.2.0
67
67
  * Truffleruby
68
68
 
69
69
  ## License
@@ -59,6 +59,17 @@ module MailerLite
59
59
  connection.put("subscribers/#{identifier}", options)
60
60
  end
61
61
 
62
+ # Delete a Subscriber
63
+ #
64
+ # @see https://developers.mailerlite.com/docs/subscribers.html#delete-a-subscriber
65
+ # @param identifier [Integer,String] ID or email of subscriber.
66
+ #
67
+ # @raise [MailerLite::NotFound] when identifier doesnt exists
68
+ # @return [Boolean] successful response
69
+ def delete_subscriber(identifier)
70
+ connection.delete("subscribers/#{identifier}", return_body: false).success?
71
+ end
72
+
62
73
  # Search for subscribers
63
74
  #
64
75
  # @see https://developers.mailerlite.com/v2/reference#search-for-subscribers
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'faraday'
4
- require 'faraday_middleware'
4
+ require 'faraday/follow_redirects'
5
+ require 'faraday/mashify'
5
6
  require 'json'
6
7
 
7
8
  require 'mailerlite/mash'
@@ -30,8 +31,12 @@ module MailerLite
30
31
  request(:post, path, {}, options).body
31
32
  end
32
33
 
33
- def delete(path, options = {})
34
- request(:delete, path, options).body
34
+ def delete(path, options = { return_body: true })
35
+ return_body = options.delete(:return_body)
36
+ response = request(:delete, path, options)
37
+ return response.body || {} if return_body
38
+
39
+ response
35
40
  end
36
41
 
37
42
  private
@@ -70,11 +75,11 @@ module MailerLite
70
75
  @middleware ||= Faraday::RackBuilder.new do |builder|
71
76
  builder.request :json
72
77
 
73
- builder.use FaradayMiddleware::FollowRedirects
74
- builder.use FaradayMiddleware::Mashify, mash_class: MailerLite::Mash
78
+ builder.response :follow_redirects
79
+ builder.response :mashify, mash_class: MailerLite::Mash
75
80
  builder.use MailerLite::Middleware::UnderscoreKeys
76
81
  builder.use MailerLite::Middleware::RaiseError
77
- builder.use FaradayMiddleware::ParseJson
82
+ builder.response :json
78
83
  builder.use MailerLite::Middleware::FixUnparsedJson
79
84
 
80
85
  builder.adapter Faraday.default_adapter
@@ -3,7 +3,7 @@
3
3
  module MailerLite
4
4
  module Middleware
5
5
  # This middleware will convert empty response to {}
6
- class FixUnparsedJson < Faraday::Response::Middleware
6
+ class FixUnparsedJson < Faraday::Middleware
7
7
  def parse(body)
8
8
  return '{}' if body == ''
9
9
 
@@ -5,7 +5,7 @@ module MailerLite
5
5
  module Middleware
6
6
  # This class raises an exception based HTTP status codes returned
7
7
  # by the API.
8
- class RaiseError < Faraday::Response::Middleware
8
+ class RaiseError < Faraday::Middleware
9
9
  def on_complete(response)
10
10
  error = MailerLite::Error.from_response(response)
11
11
  raise error if error
@@ -3,7 +3,7 @@
3
3
  module MailerLite
4
4
  module Middleware
5
5
  # This class will underscore all response keys from CamelCase.
6
- class UnderscoreKeys < Faraday::Response::Middleware
6
+ class UnderscoreKeys < Faraday::Middleware
7
7
  def on_complete(response)
8
8
  response[:body] = updated_response(response[:body])
9
9
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module MailerLite
4
4
  # @return [String] Version number.
5
- VERSION = '1.14.0'
5
+ VERSION = '1.16.0'
6
6
  end
data/mailerlite.gemspec CHANGED
@@ -31,17 +31,17 @@ Gem::Specification.new do |spec|
31
31
  spec.bindir = 'exe'
32
32
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
33
33
  spec.require_paths = ['lib']
34
- spec.required_ruby_version = '>= 2.6.0'
34
+ spec.required_ruby_version = '>= 2.7.0'
35
35
 
36
- spec.add_dependency 'faraday', '~> 1.0', '>= 1.0.1'
37
- spec.add_dependency 'faraday_middleware', '~> 1.0'
36
+ spec.add_dependency 'faraday', '~> 2.0', '>= 2.0.1'
37
+ spec.add_dependency 'faraday-follow_redirects', '~> 0.3'
38
+ spec.add_dependency 'faraday-mashify', '~> 0.1'
38
39
  spec.add_dependency 'hashie', '>= 4', '< 6'
39
40
 
40
- # spec.add_development_dependency 'codecov', '~> 0.2', '>= 0.2.12'
41
41
  spec.add_development_dependency 'pry', '~> 0.14'
42
42
  spec.add_development_dependency 'rake', '~> 13.0'
43
- spec.add_development_dependency 'rspec', '~> 3.10'
44
- spec.add_development_dependency 'rubocop', '~> 1.24'
45
- spec.add_development_dependency 'simplecov', '~> 0.21'
46
- spec.add_development_dependency 'webmock', '~> 3.14'
43
+ spec.add_development_dependency 'rspec', '~> 3.12'
44
+ spec.add_development_dependency 'rubocop', '~> 1.44'
45
+ spec.add_development_dependency 'simplecov', '~> 0.22'
46
+ spec.add_development_dependency 'webmock', '~> 3.18'
47
47
  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.14.0
4
+ version: 1.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justas Palumickas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-06 00:00:00.000000000 Z
11
+ date: 2023-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,34 +16,48 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '2.0'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 1.0.1
22
+ version: 2.0.1
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '1.0'
29
+ version: '2.0'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.0.1
32
+ version: 2.0.1
33
33
  - !ruby/object:Gem::Dependency
34
- name: faraday_middleware
34
+ name: faraday-follow_redirects
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.0'
39
+ version: '0.3'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.0'
46
+ version: '0.3'
47
+ - !ruby/object:Gem::Dependency
48
+ name: faraday-mashify
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.1'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.1'
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: hashie
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -98,56 +112,56 @@ dependencies:
98
112
  requirements:
99
113
  - - "~>"
100
114
  - !ruby/object:Gem::Version
101
- version: '3.10'
115
+ version: '3.12'
102
116
  type: :development
103
117
  prerelease: false
104
118
  version_requirements: !ruby/object:Gem::Requirement
105
119
  requirements:
106
120
  - - "~>"
107
121
  - !ruby/object:Gem::Version
108
- version: '3.10'
122
+ version: '3.12'
109
123
  - !ruby/object:Gem::Dependency
110
124
  name: rubocop
111
125
  requirement: !ruby/object:Gem::Requirement
112
126
  requirements:
113
127
  - - "~>"
114
128
  - !ruby/object:Gem::Version
115
- version: '1.24'
129
+ version: '1.44'
116
130
  type: :development
117
131
  prerelease: false
118
132
  version_requirements: !ruby/object:Gem::Requirement
119
133
  requirements:
120
134
  - - "~>"
121
135
  - !ruby/object:Gem::Version
122
- version: '1.24'
136
+ version: '1.44'
123
137
  - !ruby/object:Gem::Dependency
124
138
  name: simplecov
125
139
  requirement: !ruby/object:Gem::Requirement
126
140
  requirements:
127
141
  - - "~>"
128
142
  - !ruby/object:Gem::Version
129
- version: '0.21'
143
+ version: '0.22'
130
144
  type: :development
131
145
  prerelease: false
132
146
  version_requirements: !ruby/object:Gem::Requirement
133
147
  requirements:
134
148
  - - "~>"
135
149
  - !ruby/object:Gem::Version
136
- version: '0.21'
150
+ version: '0.22'
137
151
  - !ruby/object:Gem::Dependency
138
152
  name: webmock
139
153
  requirement: !ruby/object:Gem::Requirement
140
154
  requirements:
141
155
  - - "~>"
142
156
  - !ruby/object:Gem::Version
143
- version: '3.14'
157
+ version: '3.18'
144
158
  type: :development
145
159
  prerelease: false
146
160
  version_requirements: !ruby/object:Gem::Requirement
147
161
  requirements:
148
162
  - - "~>"
149
163
  - !ruby/object:Gem::Version
150
- version: '3.14'
164
+ version: '3.18'
151
165
  description: Ruby gem for MailerLite API v2
152
166
  email:
153
167
  - jpalumickas@gmail.com
@@ -158,7 +172,6 @@ files:
158
172
  - ".github/dependabot.yml"
159
173
  - ".github/workflows/test.yml"
160
174
  - ".gitignore"
161
- - ".hound.yml"
162
175
  - ".rspec"
163
176
  - ".rubocop.yml"
164
177
  - CODE_OF_CONDUCT.md
@@ -215,7 +228,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
215
228
  requirements:
216
229
  - - ">="
217
230
  - !ruby/object:Gem::Version
218
- version: 2.6.0
231
+ version: 2.7.0
219
232
  required_rubygems_version: !ruby/object:Gem::Requirement
220
233
  requirements:
221
234
  - - ">="
data/.hound.yml DELETED
@@ -1,3 +0,0 @@
1
- ruby:
2
- enabled: true
3
- config_file: .rubocop.yml