class Caffeinate::ScheduleEvaluator
Attributes
mailing[R]
Public Class Methods
call(drip, mailing)
click to toggle source
# File lib/caffeinate/schedule_evaluator.rb, line 23 def self.call(drip, mailing) new(drip, mailing).call end
new(drip, mailing)
click to toggle source
# File lib/caffeinate/schedule_evaluator.rb, line 28 def initialize(drip, mailing) @drip = drip @mailing = mailing end
Public Instance Methods
call()
click to toggle source
# File lib/caffeinate/schedule_evaluator.rb, line 34 def call if periodical? start = Caffeinate.config.now.call if options[:start] start = OptionEvaluator.new(options[:start], self, mailing).call end start += OptionEvaluator.new(options[:every], self, mailing).call if mailing.caffeinate_campaign_subscription.caffeinate_mailings.size.positive? date = start elsif options[:on] date = OptionEvaluator.new(options[:on], self, mailing).call else date = OptionEvaluator.new(options[:delay], self, mailing).call end if date.respond_to?(:from_now) date = date.from_now end if options[:at] time = OptionEvaluator.new(options[:at], self, mailing).call return date.change(hour: time.hour, min: time.min, sec: time.sec) end date end
method_missing(method, *args, &block)
click to toggle source
# File lib/caffeinate/schedule_evaluator.rb, line 64 def method_missing(method, *args, &block) @drip.send(method, *args, &block) end
respond_to_missing?(name, include_private = false)
click to toggle source
# File lib/caffeinate/schedule_evaluator.rb, line 60 def respond_to_missing?(name, include_private = false) @drip.respond_to?(name, include_private) end
Private Instance Methods
periodical?()
click to toggle source
# File lib/caffeinate/schedule_evaluator.rb, line 70 def periodical? @drip.type.periodical? end