lib/mailkick/model.rb in mailkick-0.3.1 vs lib/mailkick/model.rb in mailkick-0.4.0
- old
+ new
@@ -1,33 +1,34 @@
module Mailkick
module Model
def mailkick_user(opts = {})
email_key = opts[:email_key] || :email
class_eval do
- scope :opted_out, proc {|options = {}|
- binds = [self.class.name, true]
+ scope :opted_out, lambda { |options = {}|
+ binds = [name, true]
if options[:list]
query = "(mailkick_opt_outs.list IS NULL OR mailkick_opt_outs.list = ?)"
binds << options[:list]
else
query = "mailkick_opt_outs.list IS NULL"
end
where("#{options[:not] ? 'NOT ' : ''}EXISTS(SELECT * FROM mailkick_opt_outs WHERE (#{table_name}.#{email_key} = mailkick_opt_outs.email OR (#{table_name}.#{primary_key} = mailkick_opt_outs.user_id AND mailkick_opt_outs.user_type = ?)) AND mailkick_opt_outs.active = ? AND #{query})", *binds)
}
- scope :not_opted_out, proc {|options = {}|
+
+ scope :not_opted_out, lambda { |options = {}|
opted_out(options.merge(not: true))
}
- def opted_out?(options = {})
- Mailkick.opted_out?({email: email, user: self}.merge(options))
+ define_method :opted_out? do |options = {}|
+ Mailkick.opted_out?({email: send(email_key), user: self}.merge(options))
end
- def opt_out(options = {})
- Mailkick.opt_out({email: email, user: self}.merge(options))
+ define_method :opt_out do |options = {}|
+ Mailkick.opt_out({email: send(email_key), user: self}.merge(options))
end
- def opt_in(options = {})
- Mailkick.opt_in({email: email, user: self}.merge(options))
+ define_method :opt_in do |options = {}|
+ Mailkick.opt_in({email: send(email_key), user: self}.merge(options))
end
end
end
end
end