Sha256: 4bcbc0f0f9fef5162bff9a1c537e5e54a6c81849527c49cbfb3230adae86e30a
Contents?: true
Size: 1.23 KB
Versions: 5
Compression:
Stored size: 1.23 KB
Contents
module Mailkick module Model def mailkick_user(options = {}) email_key = options[:email_key] || :email class_eval do scope :opted_out, proc {|options = {}| binds = [self.class.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 = {}| opted_out(options.merge(not: true)) } def opted_out?(options = {}) Mailkick.opted_out?({email: email, user: self}.merge(options)) end def opt_out(options = {}) Mailkick.opt_out({email: email, user: self}.merge(options)) end def opt_in(options = {}) Mailkick.opt_in({email: email, user: self}.merge(options)) end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
mailkick-0.1.1 | lib/mailkick/model.rb |
mailkick-0.1.0 | lib/mailkick/model.rb |
mailkick-0.0.6 | lib/mailkick/model.rb |
mailkick-0.0.5 | lib/mailkick/model.rb |
mailkick-0.0.4 | lib/mailkick/model.rb |