Module: SayWhen

Defined in:
lib/say_when.rb,
lib/say_when/utils.rb,
lib/say_when/railtie.rb,
lib/say_when/version.rb,
lib/say_when/scheduler.rb,
lib/say_when/configuration.rb,
lib/say_when/triggers/base.rb,
lib/say_when/cron_expression.rb,
lib/say_when/storage/base_job.rb,
lib/say_when/poller/base_poller.rb,
lib/say_when/poller/simple_poller.rb,
lib/say_when/triggers/cron_strategy.rb,
lib/say_when/triggers/once_strategy.rb,
lib/say_when/poller/celluloid_poller.rb,
lib/say_when/processor/test_strategy.rb,
lib/say_when/storage/memory_strategy.rb,
lib/say_when/poller/concurrent_poller.rb,
lib/say_when/processor/simple_strategy.rb,
lib/say_when/triggers/instance_strategy.rb,
lib/say_when/processor/active_job_strategy.rb,
lib/say_when/storage/active_record_strategy.rb,
lib/generators/say_when/migration/migration_generator.rb

Defined Under Namespace

Modules: Poller, Processor, Storage, Triggers, Utils Classes: Configuration, CronExpression, CronValue, DaysOfMonthCronValue, DaysOfWeekCronValue, HoursCronValue, MigrationGenerator, MinutesCronValue, MonthsCronValue, Railtie, Scheduler, SecondsCronValue, YearsCronValue

Constant Summary collapse

VERSION =
'2.1.0'

Class Method Summary collapse

Class Method Details

.configure(opts = {}) {|options| ... } ⇒ Object

Yields:



31
32
33
34
35
# File 'lib/say_when.rb', line 31

def configure(opts = {})
  @lock ||= Mutex.new
  options.merge(opts)
  yield options if block_given?
end

.loggerObject



15
16
17
18
19
20
21
# File 'lib/say_when.rb', line 15

def logger
  @logger ||= if defined?(Rails)
    Rails.logger
  else
    Logger.new(STDOUT)
  end
end

.logger=(l) ⇒ Object



23
24
25
# File 'lib/say_when.rb', line 23

def logger=(l)
  @logger = l
end

.optionsObject



27
28
29
# File 'lib/say_when.rb', line 27

def options
  @options ||= SayWhen::Configuration.default_options
end

.schedule(job) ⇒ Object



59
60
61
# File 'lib/say_when.rb', line 59

def schedule(job)
  scheduler.schedule(job)
end

.schedule_cron(expression, job = {}) ⇒ Object



47
48
49
# File 'lib/say_when.rb', line 47

def schedule_cron(expression, job = {})
  scheduler.schedule_cron(expression, job)
end

.schedule_in(after, job = {}) ⇒ Object



55
56
57
# File 'lib/say_when.rb', line 55

def schedule_in(after, job = {})
  scheduler.schedule_in(after, job)
end

.schedule_instance(next_at_method = 'next_fire_at', job = {}) ⇒ Object



43
44
45
# File 'lib/say_when.rb', line 43

def schedule_instance(next_at_method = 'next_fire_at', job = {})
  scheduler.schedule_instance(next_at_method, job)
end

.schedule_once(time, job = {}) ⇒ Object



51
52
53
# File 'lib/say_when.rb', line 51

def schedule_once(time, job = {})
  scheduler.schedule_once(time, job)
end

.schedulerObject



37
38
39
40
41
# File 'lib/say_when.rb', line 37

def scheduler
  return @scheduler if defined?(@scheduler) && @scheduler
  @lock.synchronize { @scheduler = SayWhen::Scheduler.new }
  @scheduler
end