mailerlite 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|