mailerlite 0.2.0 → 0.3.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/README.md +5 -0
- data/Rakefile +3 -3
- data/bin/console +3 -3
- data/examples/authentication.md +38 -0
- data/examples/campaigns.md +62 -0
- data/lib/mailerlite.rb +1 -0
- data/lib/mailerlite/client.rb +4 -0
- data/lib/mailerlite/clients/subscribers.rb +33 -0
- data/lib/mailerlite/configuration.rb +1 -2
- data/lib/mailerlite/connection.rb +2 -0
- data/lib/mailerlite/core_ext/string.rb +6 -5
- data/lib/mailerlite/error.rb +1 -0
- data/lib/mailerlite/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8778460cc49d8f082a725d64b698686907432a79
|
4
|
+
data.tar.gz: 7172a78894facf2a778c839158c3f0521419ec2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dff75234d4a7540eeb19c19e8646f1a106c10a3818ff4471fa030417c196672e388f0d270749616649b1a9075ee2dbaa7bfd1d39177584b56f150048a8e7dd4d
|
7
|
+
data.tar.gz: c4cb1b149695aadbde493de0dd305edc51e796ba54e5b54f6e6306b92295049c92ee28285eed72b22d9db97e23675dec08042dfd3228acc178ed59c5dc83ccda
|
data/README.md
CHANGED
@@ -47,10 +47,15 @@ implementations:
|
|
47
47
|
* Ruby 2.2.0
|
48
48
|
* Ruby 2.3.0
|
49
49
|
|
50
|
+
## Copyright
|
51
|
+
Copyright (c) 2016 Justas Palumickas. See [LICENSE][license] for details.
|
52
|
+
|
50
53
|
[rubygems]: https://rubygems.org/gems/mailerlite
|
51
54
|
[travis]: http://travis-ci.org/jpalumickas/mailerlite-ruby
|
52
55
|
[gemnasium]: https://gemnasium.com/jpalumickas/mailerlite-ruby
|
53
56
|
[coveralls]: https://coveralls.io/r/jpalumickas/mailerlite-ruby
|
54
57
|
[codeclimate]: https://codeclimate.com/github/jpalumickas/mailerlite-ruby
|
55
58
|
|
59
|
+
[license]: https://raw.githubusercontent.com/jpalumickas/mailerlite-ruby/master/LICENSE
|
60
|
+
|
56
61
|
[mailerlite]: https://www.mailerlite.com
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'mailerlite'
|
5
5
|
|
6
6
|
# You can add fixtures and/or initialization code here to make experimenting
|
7
7
|
# with your gem easier. You can also use a different console, if you like.
|
@@ -10,5 +10,5 @@ require "mailerlite"
|
|
10
10
|
# require "pry"
|
11
11
|
# Pry.start
|
12
12
|
|
13
|
-
require
|
13
|
+
require 'irb'
|
14
14
|
IRB.start
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# Authentication Example
|
2
|
+
|
3
|
+
When you sign up for an account, you are given an **API key**. You authenticate to
|
4
|
+
the [MailerLite][mailerlite] API by providing your API key in the request.
|
5
|
+
You can find your API key in page: Integrations » Developer API.
|
6
|
+
|
7
|
+
## Using variable
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
client = MailerLite::Client.new(api_key: 'my-secret-api-key')
|
11
|
+
```
|
12
|
+
|
13
|
+
Example:
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
client.campaigns
|
17
|
+
```
|
18
|
+
|
19
|
+
## Using global class config
|
20
|
+
|
21
|
+
Or create file under `config/initializers/mailerlite.rb`
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
MailerLite.configure do |config|
|
25
|
+
config.api_key = 'my-secret-api-key'
|
26
|
+
end
|
27
|
+
```
|
28
|
+
|
29
|
+
When you configured in file, you can request methods on `MailerLite` class
|
30
|
+
directly.
|
31
|
+
|
32
|
+
Example:
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
MailerLite.campaigns
|
36
|
+
```
|
37
|
+
|
38
|
+
[mailerlite]: https://www.mailerlite.com
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# Campaigns
|
2
|
+
|
3
|
+
## Get all campaigns
|
4
|
+
|
5
|
+
Returns all campaigns you have in your account.
|
6
|
+
Also basic summary for each campaign including the ID.
|
7
|
+
|
8
|
+
#### Example:
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
client.campaigns
|
12
|
+
```
|
13
|
+
|
14
|
+
You can specify **limit** and **page** options:
|
15
|
+
|
16
|
+
```ruby
|
17
|
+
client.campaings(limit: 200, page: 2)
|
18
|
+
```
|
19
|
+
|
20
|
+
## Campaign details
|
21
|
+
|
22
|
+
Retrieve stats about selected campaign with specified ID.
|
23
|
+
|
24
|
+
#### Example:
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
campaign_id = 123
|
28
|
+
client.campaign(campaign_id)
|
29
|
+
```
|
30
|
+
|
31
|
+
## Campaign recipients
|
32
|
+
|
33
|
+
Retrieves a paged result representing all the subscribers that a given campaign was sent to.
|
34
|
+
|
35
|
+
#### Example:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
client.campaign_recipients(123)
|
39
|
+
```
|
40
|
+
|
41
|
+
You can specify **limit** and **page** options:
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
client.campaing_recipients(123, limit: 200, page: 2)
|
45
|
+
```
|
46
|
+
|
47
|
+
|
48
|
+
## Campaign opens
|
49
|
+
|
50
|
+
Retrieves a paged result representing all the subscribers that opened a given campaign.
|
51
|
+
|
52
|
+
#### Example:
|
53
|
+
|
54
|
+
```ruby
|
55
|
+
client.campaign_opens(123)
|
56
|
+
```
|
57
|
+
|
58
|
+
You can specify **limit** and **page** options:
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
client.campaing_opens(123, limit: 200, page: 2)
|
62
|
+
```
|
data/lib/mailerlite.rb
CHANGED
data/lib/mailerlite/client.rb
CHANGED
@@ -3,11 +3,14 @@ require 'mailerlite/configuration'
|
|
3
3
|
|
4
4
|
require 'mailerlite/clients/campaigns'
|
5
5
|
require 'mailerlite/clients/lists'
|
6
|
+
require 'mailerlite/clients/subscribers'
|
6
7
|
|
7
8
|
module MailerLite
|
9
|
+
# Wrapper class for all actions.
|
8
10
|
class Client
|
9
11
|
include MailerLite::Clients::Campaigns
|
10
12
|
include MailerLite::Clients::Lists
|
13
|
+
include MailerLite::Clients::Subscribers
|
11
14
|
|
12
15
|
def initialize(options = {})
|
13
16
|
config.api_key = options[:api_key] if options[:api_key]
|
@@ -16,6 +19,7 @@ module MailerLite
|
|
16
19
|
def config
|
17
20
|
@config ||= Configuration.new
|
18
21
|
end
|
22
|
+
alias configuration config
|
19
23
|
|
20
24
|
def configure
|
21
25
|
yield(config) if block_given?
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module MailerLite
|
2
|
+
module Clients
|
3
|
+
# Get information about MailerLite Subscribers.
|
4
|
+
#
|
5
|
+
# You can official documentation at
|
6
|
+
# https://docs.mailerlite.com/pages/subscribers
|
7
|
+
module Subscribers
|
8
|
+
def create_subscriber(list_id, email, options = {})
|
9
|
+
options[:email] = email
|
10
|
+
|
11
|
+
connection.post("subscribers/#{list_id}/", options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def create_subscribers(list_id, options = {})
|
15
|
+
connection.post("subscribers/#{list_id}/import/", options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def subscriber(email, options = {})
|
19
|
+
options[:email] = email
|
20
|
+
|
21
|
+
connection.get('subscribers/', options)
|
22
|
+
end
|
23
|
+
|
24
|
+
def delete_subscriber(list_id, email)
|
25
|
+
connection.delete("subscribers/#{list_id}/", email: email)
|
26
|
+
end
|
27
|
+
|
28
|
+
def unsubscribe_subscriber(email)
|
29
|
+
connection.post('subscribers/unsubscribe/', email: email)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -1,10 +1,12 @@
|
|
1
1
|
require 'faraday'
|
2
|
+
require 'faraday_middleware'
|
2
3
|
require 'json'
|
3
4
|
|
4
5
|
require 'mailerlite/middleware/raise_error'
|
5
6
|
require 'mailerlite/middleware/underscore_keys'
|
6
7
|
|
7
8
|
module MailerLite
|
9
|
+
# A class responsible for connecting to MailerLite API and making requests.
|
8
10
|
class Connection
|
9
11
|
attr_reader :client
|
10
12
|
|
@@ -1,9 +1,10 @@
|
|
1
|
+
# Custom String extensions
|
1
2
|
class String
|
2
3
|
def underscore
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
gsub(/::/, '/')
|
5
|
+
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
6
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
7
|
+
.tr('-', '_')
|
8
|
+
.downcase
|
8
9
|
end
|
9
10
|
end
|
data/lib/mailerlite/error.rb
CHANGED
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: 0.
|
4
|
+
version: 0.3.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: 2016-04-
|
11
|
+
date: 2016-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -111,10 +111,13 @@ files:
|
|
111
111
|
- Rakefile
|
112
112
|
- bin/console
|
113
113
|
- bin/setup
|
114
|
+
- examples/authentication.md
|
115
|
+
- examples/campaigns.md
|
114
116
|
- lib/mailerlite.rb
|
115
117
|
- lib/mailerlite/client.rb
|
116
118
|
- lib/mailerlite/clients/campaigns.rb
|
117
119
|
- lib/mailerlite/clients/lists.rb
|
120
|
+
- lib/mailerlite/clients/subscribers.rb
|
118
121
|
- lib/mailerlite/configuration.rb
|
119
122
|
- lib/mailerlite/connection.rb
|
120
123
|
- lib/mailerlite/core_ext/string.rb
|