mailerlite 1.14.0 → 1.16.0

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: 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