devise-vero 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +18 -8
- data/README.md +3 -1
- data/devise-vero.gemspec +4 -2
- data/lib/devise/vero/model.rb +15 -1
- data/lib/devise/vero/sender.rb +9 -6
- data/lib/devise/vero/version.rb +1 -1
- data/spec/devise/vero/model_spec.rb +1 -0
- data/spec/devise/vero/sender_spec.rb +16 -9
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b12f5fdf1200df0ffb3af6a77487e47fd17ef76
|
4
|
+
data.tar.gz: 50f64f75c77c9ab7a0471f22857da1d1c77c26ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f39fedfdc4233fc51995a9ac9ac20008a9bfe1e1bcce2911fe5520d7c3c52526750c58cc2d7f81392833c970aa2d3b0645b677f5ca870f148cfb9982ec5f141
|
7
|
+
data.tar.gz: 908549be3d58e8db7cdfe7bd988a2b71035ed0472ecb55d8232d524583f8cc385d9bf5561f3e8ceda160f7d3ea92155c4de8c7d77d790a11c19834401e9f8058
|
data/.travis.yml
CHANGED
@@ -1,16 +1,26 @@
|
|
1
1
|
language: ruby
|
2
2
|
cache: bundler
|
3
3
|
rvm:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
- 1.9.3
|
5
|
+
- 2.0.0
|
6
|
+
- 2.1
|
7
|
+
- 2.2
|
8
|
+
- ruby-head
|
9
9
|
git:
|
10
10
|
depth: 1
|
11
11
|
script:
|
12
|
-
|
13
|
-
|
12
|
+
- bundle exec rspec
|
13
|
+
- bundle exec rubocop
|
14
14
|
addons:
|
15
15
|
code_climate:
|
16
|
-
repo_token:
|
16
|
+
repo_token:
|
17
|
+
secure: "SLy9NKyJIytObIBzNckKlihcyrQR1XuV32l0m2aSsMFXIAHJsjoRrsR/Q0UUlG6oEZG3fgTax5Zj1SQRigYvz1pGQltRVMyOD7GONpFyGDBZ7OYNgG97JzExnt8Il6IMADNHXhp3q/iY+3GU18rHKI6aUa9A1Ut5NjxhSczSprU="
|
18
|
+
deploy:
|
19
|
+
provider: rubygems
|
20
|
+
api_key:
|
21
|
+
secure: UgZ3RapfHOWwLrtc4kdsHGhQ0bXDluxVDcdRU9qjSSrqEaWLPV0PtBUyMuDipmSGiVGcO68l0hEfSdSistXxNqXLN2daG7kRN7nBEX2nuIDSsCLPR7auz09XlYkTk5BN9xQoCm/WYTRFItAPkKTKXLC43RhiA4c5zyFisGoCAIg=
|
22
|
+
gem: devise-vero
|
23
|
+
on:
|
24
|
+
tags: true
|
25
|
+
repo: LoveMondays/devise-vero
|
26
|
+
branch: master
|
data/README.md
CHANGED
@@ -5,7 +5,9 @@
|
|
5
5
|
[![Test Coverage](https://codeclimate.com/github/LoveMondays/devise-vero/badges/coverage.svg)](https://codeclimate.com/github/LoveMondays/devise-vero)
|
6
6
|
[![Dependency Status](https://gemnasium.com/LoveMondays/devise-vero.svg)](https://gemnasium.com/LoveMondays/devise-vero)
|
7
7
|
|
8
|
-
|
8
|
+
Add Vero support for an ActiveRecord object.
|
9
|
+
- Replace transaction emails sent by [Devise](https://github.com/plataformatec/devise) with [Vero](http://www.getvero.com) events.
|
10
|
+
- Unsubscribe the user once it's deleted from application.
|
9
11
|
|
10
12
|
Tested with devise ~3.4
|
11
13
|
|
data/devise-vero.gemspec
CHANGED
@@ -10,12 +10,14 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.authors = [
|
11
11
|
'Estevão Mascarenhas',
|
12
12
|
'Vinicius Negrisolo',
|
13
|
-
"Shane O'Grady"
|
13
|
+
"Shane O'Grady",
|
14
|
+
'Rubens Minoru Andako Bueno'
|
14
15
|
]
|
15
16
|
spec.email = [
|
16
17
|
'estevao.am@gmail.com',
|
17
18
|
'vinicius.negrisolo@gmail.com',
|
18
|
-
'shane@ogrady.ie'
|
19
|
+
'shane@ogrady.ie',
|
20
|
+
'rubensmabueno@hotmail.com'
|
19
21
|
]
|
20
22
|
spec.summary = 'Replace Devise transactional emails with Vero events.'
|
21
23
|
spec.description = 'Replace Devise transactional emails with Vero events.'
|
data/lib/devise/vero/model.rb
CHANGED
@@ -1,9 +1,15 @@
|
|
1
|
+
require 'vero'
|
2
|
+
|
1
3
|
module Devise
|
2
4
|
module Models
|
3
5
|
# VeroNotification module
|
4
6
|
module Vero
|
5
7
|
extend ActiveSupport::Concern
|
6
8
|
|
9
|
+
included do
|
10
|
+
before_destroy :unsubscribe_user
|
11
|
+
end
|
12
|
+
|
7
13
|
protected
|
8
14
|
|
9
15
|
# This method overwrites devise's own `send_devise_notification`
|
@@ -37,8 +43,16 @@ module Devise
|
|
37
43
|
@devise_pending_notifications ||= []
|
38
44
|
end
|
39
45
|
|
46
|
+
def unsubscribe_user
|
47
|
+
vero_sender.unsubscribe
|
48
|
+
end
|
49
|
+
|
40
50
|
def send_to_vero(notification, *args)
|
41
|
-
|
51
|
+
vero_sender.deliver(notification, *args)
|
52
|
+
end
|
53
|
+
|
54
|
+
def vero_sender
|
55
|
+
@vero_sender ||= Devise::Vero::Sender.new(self)
|
42
56
|
end
|
43
57
|
end
|
44
58
|
end
|
data/lib/devise/vero/sender.rb
CHANGED
@@ -2,19 +2,22 @@ module Devise
|
|
2
2
|
module Vero
|
3
3
|
# Sender class
|
4
4
|
class Sender
|
5
|
-
attr_reader :
|
5
|
+
attr_reader :instance
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
@notification = notification
|
7
|
+
def initialize(instance)
|
9
8
|
@instance = instance
|
10
|
-
@token = args[0] if args.any?
|
11
|
-
@args = args
|
12
9
|
end
|
13
10
|
|
14
11
|
# Actually send the event to Vero
|
15
|
-
def deliver
|
12
|
+
def deliver(notification, *args)
|
13
|
+
token = args[0] if args.any?
|
14
|
+
|
16
15
|
instance.track!(notification, token: token, data: args)
|
17
16
|
end
|
17
|
+
|
18
|
+
def unsubscribe
|
19
|
+
instance.with_default_vero_context.unsubscribe!
|
20
|
+
end
|
18
21
|
end
|
19
22
|
end
|
20
23
|
end
|
data/lib/devise/vero/version.rb
CHANGED
@@ -1,25 +1,32 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Devise::Vero::Sender do
|
4
|
-
context 'initializing' do
|
5
|
-
it 'populate the token attribute with the first arg' do
|
6
|
-
instance = described_class.new(:test, nil, 2, 3, 4)
|
7
|
-
expect(instance.token).to eq(2)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
4
|
describe '#deliver' do
|
12
5
|
let(:instance) { (Class.new).new }
|
13
6
|
let(:token) { SecureRandom.hex }
|
14
7
|
let(:notification) { :confirmation_instructions }
|
15
8
|
|
16
|
-
subject { described_class.new(
|
9
|
+
subject { described_class.new(instance) }
|
17
10
|
|
18
11
|
it 'calls the track method' do
|
19
12
|
allow(instance).to receive(:track!)
|
20
|
-
subject.deliver
|
13
|
+
subject.deliver(notification, token)
|
21
14
|
expect(instance).to have_received(:track!)
|
22
15
|
.with(notification, token: token, data: [token])
|
23
16
|
end
|
24
17
|
end
|
18
|
+
|
19
|
+
describe '#unsubscribe' do
|
20
|
+
let(:instance) { (Class.new).new }
|
21
|
+
let(:vero_context) { Vero::Context.new }
|
22
|
+
|
23
|
+
subject { described_class.new(instance) }
|
24
|
+
|
25
|
+
it 'calls the unsubscribe method from vero_context' do
|
26
|
+
expect(vero_context).to receive(:unsubscribe!) {}
|
27
|
+
|
28
|
+
allow(instance).to receive(:with_default_vero_context) { vero_context }
|
29
|
+
subject.unsubscribe
|
30
|
+
end
|
31
|
+
end
|
25
32
|
end
|
metadata
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise-vero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Estevão Mascarenhas
|
8
8
|
- Vinicius Negrisolo
|
9
9
|
- Shane O'Grady
|
10
|
+
- Rubens Minoru Andako Bueno
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date: 2015-
|
14
|
+
date: 2015-06-24 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: rails
|
@@ -143,6 +144,7 @@ email:
|
|
143
144
|
- estevao.am@gmail.com
|
144
145
|
- vinicius.negrisolo@gmail.com
|
145
146
|
- shane@ogrady.ie
|
147
|
+
- rubensmabueno@hotmail.com
|
146
148
|
executables: []
|
147
149
|
extensions: []
|
148
150
|
extra_rdoc_files: []
|
@@ -186,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
188
|
version: '0'
|
187
189
|
requirements: []
|
188
190
|
rubyforge_project:
|
189
|
-
rubygems_version: 2.4.
|
191
|
+
rubygems_version: 2.4.7
|
190
192
|
signing_key:
|
191
193
|
specification_version: 4
|
192
194
|
summary: Replace Devise transactional emails with Vero events.
|