newsletterable 0.0.2 → 0.0.3

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
  SHA1:
3
- metadata.gz: f95bb82765df54a2e85c6c077c3af290d220e067
4
- data.tar.gz: 9682498d5289288a4d249d0df647ccfb39b4a5f4
3
+ metadata.gz: e7e4f7dccee06dce24833a79461f263562e720cf
4
+ data.tar.gz: 620d432bc50177574b71872f2fd22948444847e0
5
5
  SHA512:
6
- metadata.gz: 91a1c0a07d682237b565ac3631c3933168ab7eba31934acf55ce4adebc5d5c68cb67eea7aa7e1b5a1de9ce25e642b42121ae76bec327e5c3a69afa6280bbe1f2
7
- data.tar.gz: 18704758d89087d9b40166d76274205955e1f93e66135ed91ec82fa50ff053491dec8a067690cb34a33c6b3547c5e2c27d9cb1e4a92fa0e9594df792570c14d7
6
+ metadata.gz: bcf01b8937c9c15cfab7cea31f19578db270b17d297e9c3fa24b99a22e9f02f5150d97f8ff8c4e95840373ef4a8f99ce662c504e9dc495e8ee9ecf8b8e9fa37f
7
+ data.tar.gz: 60cc9ac1afb3546b2b4b7465e0b82be72ecee3fa874aef3a57276f96aa38688dafc81132ed24fa7f035d0fc269542b106be1b884f55cb3edc96da5f97f9f152f
@@ -35,12 +35,30 @@ module Newsletterable
35
35
  def defaults
36
36
  {
37
37
  worker: Newsletterable::Worker,
38
- list_resolver: default_list_resolver
38
+ list_resolver: default_list_resolver,
39
+ old_email_getter: -> (subscriber) {
40
+ if subscriber.respond_to?(:old_email)
41
+ subscriber.old_email
42
+ elsif subscriber.respond_to?(:email_was)
43
+ subscriber.email_was
44
+ else
45
+ raise ConfigurationError, <<-TEXT, __FILE__, __LINE__ + 1
46
+ Unable to retreive old email for update. Perhaps consider
47
+ implementing 'old_email_getter' in your newsletterable initializer.
48
+
49
+ e.g.
50
+ config.old_email_getter = -> (user) do
51
+ # Get the updated email address from your model
52
+ user.email_before_update
53
+ end
54
+ TEXT
55
+ end
56
+ }
39
57
  }
40
58
  end
41
59
 
42
60
  def default_list_resolver
43
- proc do |subscriber, list_name, lists|
61
+ -> (subscriber, list_name, lists) do
44
62
  result = case lists
45
63
  when String, Array
46
64
  lists
@@ -1,7 +1,7 @@
1
1
  module Newsletterable
2
2
  class Configuration
3
3
  attr_accessor :api_key, :default_lists, :subscriptions_model, :worker,
4
- :list_resolver, :orm_adapter
4
+ :list_resolver, :orm_adapter, :old_email_getter
5
5
 
6
6
  def initialize(attrs = {})
7
7
  attrs.each do |k, v|
@@ -39,7 +39,7 @@ module Newsletterable
39
39
  end
40
40
 
41
41
  def update_subscription(list_name)
42
- old_email = email_was
42
+ old_email = Newsletterable.configuration.old_email_getter.call(self)
43
43
 
44
44
  yield
45
45
 
@@ -73,7 +73,7 @@ module Newsletterable
73
73
  self.__newsletterable_options[list_name] = options.merge(field: field)
74
74
 
75
75
  after_save -> { manage_subscription(list_name) }, if: :"#{field}_changed?"
76
- around_update -> { update_subscription(list_name) }, if: -> { send(:"#{field}?") && email_changed? }
76
+ around_update -> (&block) { update_subscription(list_name, &block) }, if: -> { send(:"#{field}?") && email_changed? }
77
77
  unless options[:unsubscribe_on_destroy]
78
78
  before_destroy -> { remove_subscription(list_name) }, if: :"#{field}?"
79
79
  end
@@ -1,3 +1,3 @@
1
1
  module Newsletterable
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newsletterable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stan Bondi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-14 00:00:00.000000000 Z
11
+ date: 2015-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel