module Newsletterable::Model::ClassMethods
Public Instance Methods
define_newsletterable_callbacks(klass)
click to toggle source
# File lib/newsletterable/model.rb, line 37 def define_newsletterable_callbacks(klass) klass.class_eval do opts =[:enqueue_subscription, { if: proc { |n| !n.subscribed? }, on: [:create, :update] }] if respond_to?(:after_commit) after_commit(*opts) else after_save(*opts) end end end
define_newsletterable_state_methods(klass)
click to toggle source
# File lib/newsletterable/model.rb, line 52 def define_newsletterable_state_methods(klass) %i{ pending subscribed unsubscribed out_of_date error }.each do |state| klass.class_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{state}! self.state = '#{state}' end def #{state}? self.state.to_s == '#{state}' end RUBY end end