mailerlite 1.1.0 → 1.2.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 +4 -4
- data/.rubocop.yml +5 -0
- data/README.md +15 -0
- data/examples/authentication.md +2 -2
- data/lib/mailerlite.rb +1 -2
- data/lib/mailerlite/connection.rb +1 -1
- data/lib/mailerlite/error.rb +25 -7
- data/lib/mailerlite/middleware/underscore_keys.rb +2 -1
- data/lib/mailerlite/utils.rb +29 -0
- data/lib/mailerlite/version.rb +1 -1
- metadata +3 -3
- data/lib/mailerlite/core_ext/string.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c12879562f401358996022b1ca5cdebbbadda822
|
4
|
+
data.tar.gz: 871117ea177f7b68c68cdf6bfcca64daacdd3c9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7087390b80ed3f0ca82b0d2e4cd91c0b1fd73974ee548ba03964fbcf56b99edec4ad7e38182c3d49a71e6d5ed6cb23049c6d3baaca0f65c8b9d613ba89dc1ea
|
7
|
+
data.tar.gz: 52ae9d8a5750e887d7ce477380a0e63afbdb58c32a5d73ea4442e4a0bdc0a4244e72096ca7bfd4b7fff552d2cfdb6812a6f0f4a174e99e04c411ed8c391efd86
|
data/.rubocop.yml
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
AllCops:
|
2
|
+
TargetRubyVersion: 2.0
|
2
3
|
Include:
|
3
4
|
- '**/Rakefile'
|
4
5
|
- '**/Gemfile'
|
@@ -29,6 +30,10 @@ Lint/EndAlignment:
|
|
29
30
|
Style/FrozenStringLiteralComment:
|
30
31
|
Enabled: false
|
31
32
|
|
33
|
+
Style/DoubleNegation:
|
34
|
+
Exclude:
|
35
|
+
- 'lib/mailerlite/utils.rb'
|
36
|
+
|
32
37
|
Metrics/BlockLength:
|
33
38
|
ExcludedMethods:
|
34
39
|
- 'describe'
|
data/README.md
CHANGED
@@ -32,6 +32,12 @@ You can find your API key in page: Integrations » Developer API.
|
|
32
32
|
client = MailerLite::Client.new(api_key: 'my-secret-api-key')
|
33
33
|
```
|
34
34
|
|
35
|
+
Example:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
client.campaigns
|
39
|
+
```
|
40
|
+
|
35
41
|
Or create file under `config/initializers/mailerlite.rb`
|
36
42
|
|
37
43
|
```ruby
|
@@ -40,6 +46,15 @@ MailerLite.configure do |config|
|
|
40
46
|
end
|
41
47
|
```
|
42
48
|
|
49
|
+
When you configured global settings in file, then you can request methods
|
50
|
+
on `MailerLite` class directly.
|
51
|
+
|
52
|
+
Example:
|
53
|
+
|
54
|
+
```ruby
|
55
|
+
MailerLite.campaigns
|
56
|
+
```
|
57
|
+
|
43
58
|
See more documentation in [examples][examples] directory.
|
44
59
|
|
45
60
|
## Supported Ruby Versions
|
data/examples/authentication.md
CHANGED
@@ -26,8 +26,8 @@ MailerLite.configure do |config|
|
|
26
26
|
end
|
27
27
|
```
|
28
28
|
|
29
|
-
When you configured in file, you can request methods
|
30
|
-
directly.
|
29
|
+
When you configured global settings in file, then you can request methods
|
30
|
+
on `MailerLite` class directly.
|
31
31
|
|
32
32
|
Example:
|
33
33
|
|
data/lib/mailerlite.rb
CHANGED
@@ -66,9 +66,9 @@ module MailerLite
|
|
66
66
|
builder.use FaradayMiddleware::FollowRedirects
|
67
67
|
builder.use FaradayMiddleware::Mashify, mash_class: MailerLite::Mash
|
68
68
|
builder.use MailerLite::Middleware::UnderscoreKeys
|
69
|
+
builder.use MailerLite::Middleware::RaiseError
|
69
70
|
builder.use FaradayMiddleware::ParseJson
|
70
71
|
builder.use MailerLite::Middleware::FixUnparsedJson
|
71
|
-
builder.use MailerLite::Middleware::RaiseError
|
72
72
|
|
73
73
|
builder.adapter Faraday.default_adapter
|
74
74
|
end
|
data/lib/mailerlite/error.rb
CHANGED
@@ -1,14 +1,19 @@
|
|
1
1
|
module MailerLite
|
2
2
|
# Base MailerLite error.
|
3
3
|
class Error < StandardError
|
4
|
+
def initialize(msg = nil)
|
5
|
+
@message = msg
|
6
|
+
end
|
7
|
+
|
4
8
|
# Returns the appropriate MailerLite::Error sublcass based on status and
|
5
9
|
# response message.
|
6
10
|
#
|
7
|
-
# @param response [
|
11
|
+
# @param response [Faraday::Env] HTTP response.
|
8
12
|
#
|
9
13
|
# @return [MailerLite::Error]
|
10
14
|
def self.from_response(response)
|
11
|
-
status = response
|
15
|
+
status = response.status.to_i
|
16
|
+
message = error_message(response)
|
12
17
|
|
13
18
|
klass = case status
|
14
19
|
when 400 then MailerLite::BadRequest
|
@@ -17,7 +22,20 @@ module MailerLite
|
|
17
22
|
when 500 then MailerLite::InternalServerError
|
18
23
|
end
|
19
24
|
|
20
|
-
klass.new if klass
|
25
|
+
klass.new(message) if klass
|
26
|
+
end
|
27
|
+
|
28
|
+
# Returns the appropriate MailerLite error message based on response
|
29
|
+
#
|
30
|
+
# @param response [Faraday::Env] HTTP response.
|
31
|
+
#
|
32
|
+
# @return [String] MailerLite error message.
|
33
|
+
def self.error_message(response)
|
34
|
+
return unless response.body.is_a?(Hash)
|
35
|
+
return unless response.body['error']
|
36
|
+
|
37
|
+
message = response.body['error']['message']
|
38
|
+
MailerLite::Utils.presence(message)
|
21
39
|
end
|
22
40
|
end
|
23
41
|
|
@@ -25,7 +43,7 @@ module MailerLite
|
|
25
43
|
class BadRequest < Error
|
26
44
|
# Default error message.
|
27
45
|
def to_s
|
28
|
-
'Missing a required parameter or calling invalid method'
|
46
|
+
@message || 'Missing a required parameter or calling invalid method'
|
29
47
|
end
|
30
48
|
end
|
31
49
|
|
@@ -33,7 +51,7 @@ module MailerLite
|
|
33
51
|
class Unauthorized < Error
|
34
52
|
# Default error message.
|
35
53
|
def to_s
|
36
|
-
'Invalid API key provided'
|
54
|
+
@message || 'Invalid API key provided'
|
37
55
|
end
|
38
56
|
end
|
39
57
|
|
@@ -41,7 +59,7 @@ module MailerLite
|
|
41
59
|
class NotFound < Error
|
42
60
|
# Default error message.
|
43
61
|
def to_s
|
44
|
-
"Can't find requested items"
|
62
|
+
@message || "Can't find requested items"
|
45
63
|
end
|
46
64
|
end
|
47
65
|
|
@@ -49,7 +67,7 @@ module MailerLite
|
|
49
67
|
class InternalServerError < Error
|
50
68
|
# Default error message.
|
51
69
|
def to_s
|
52
|
-
'The server encountered an unexpected condition'
|
70
|
+
@message || 'The server encountered an unexpected condition'
|
53
71
|
end
|
54
72
|
end
|
55
73
|
end
|
@@ -18,7 +18,8 @@ module MailerLite
|
|
18
18
|
|
19
19
|
def underscore_hash_keys(hash)
|
20
20
|
hash.each_with_object({}) do |(k, v), new_hash|
|
21
|
-
|
21
|
+
key = MailerLite::Utils.underscore(k.to_s)
|
22
|
+
new_hash[key] = updated_response(v)
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module MailerLite
|
2
|
+
module Utils
|
3
|
+
BLANK_RE = /\A[[:space:]]*\z/
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def underscore(string)
|
7
|
+
string.gsub(/::/, '/')
|
8
|
+
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
9
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
10
|
+
.tr('-', '_')
|
11
|
+
.downcase
|
12
|
+
end
|
13
|
+
|
14
|
+
def blank?(obj)
|
15
|
+
return !!BLANK_RE.match(obj) if obj.is_a?(String)
|
16
|
+
|
17
|
+
obj.respond_to?(:empty?) ? !!obj.empty? : !obj
|
18
|
+
end
|
19
|
+
|
20
|
+
def present?(obj)
|
21
|
+
!blank?(obj)
|
22
|
+
end
|
23
|
+
|
24
|
+
def presence(obj)
|
25
|
+
obj if present?(obj)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/mailerlite/version.rb
CHANGED
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.2.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: 2017-04-
|
11
|
+
date: 2017-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -114,12 +114,12 @@ files:
|
|
114
114
|
- lib/mailerlite/clients/subscribers.rb
|
115
115
|
- lib/mailerlite/configuration.rb
|
116
116
|
- lib/mailerlite/connection.rb
|
117
|
-
- lib/mailerlite/core_ext/string.rb
|
118
117
|
- lib/mailerlite/error.rb
|
119
118
|
- lib/mailerlite/mash.rb
|
120
119
|
- lib/mailerlite/middleware/fix_unparsed_json.rb
|
121
120
|
- lib/mailerlite/middleware/raise_error.rb
|
122
121
|
- lib/mailerlite/middleware/underscore_keys.rb
|
122
|
+
- lib/mailerlite/utils.rb
|
123
123
|
- lib/mailerlite/version.rb
|
124
124
|
- mailerlite.gemspec
|
125
125
|
homepage: https://github.com/jpalumickas/mailerlite-ruby
|