newsletterable 0.0.2 → 0.0.3

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 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