class Mmailer::ServerHelper

Attributes

machine[RW]
stream[RW]
worker[RW]

Public Class Methods

new() click to toggle source
# File lib/mmailer/server_helper.rb, line 5
def initialize
  @stream = $stdout
  self.machine = MicroMachine.new(:stopped)
  machine.when(:start, :stopped => :started)
  machine.when(:resume, :paused => :started)
  machine.when(:stop, :started => :stopped, :paused => :stopped)
  machine.when(:pause, :started => :paused)
end

Public Instance Methods

config(options) click to toggle source
# File lib/mmailer/server_helper.rb, line 61
def config(options)
  if options.empty?
    puts "I will send emails every #{Mmailer.configuration.time_interval} seconds. After #{Mmailer.configuration.mail_interval} emails, I will sleep for #{Mmailer.configuration.sleep_time} seconds."
  else
    Mmailer.configuration.sleep_time = options.fetch("sleep_time", Mmailer.configuration.sleep_time)
    Mmailer.configuration.mail_interval = options.fetch("mail_interval", Mmailer.configuration.mail_interval)
    Mmailer.configuration.time_interval = options.fetch("time_interval", Mmailer.configuration.time_interval)
    puts "#{options}. OK."
  end
end
display_state() click to toggle source
# File lib/mmailer/server_helper.rb, line 14
def display_state
  stream.puts state
end
pause() click to toggle source
# File lib/mmailer/server_helper.rb, line 44
def pause
  if machine.trigger(:pause)
    display_state
    machine.state
  end
end
puts(str) click to toggle source
# File lib/mmailer/server_helper.rb, line 22
def puts(str)
  stream.puts(str)
end
resume() click to toggle source
# File lib/mmailer/server_helper.rb, line 30
def resume
  if machine.trigger(:resume)
    display_state
    machine.state
  end
end
start(from=0) click to toggle source
# File lib/mmailer/server_helper.rb, line 51
def start(from=0)
  if machine.trigger(:start)
    puts "starting from #{from}"
    Thread.abort_on_exception = true
    @worker = Thread.new(from) do |from|
      Worker.new(from)
    end
  end
end
state() click to toggle source
# File lib/mmailer/server_helper.rb, line 18
def state
  machine.state
end
stop() click to toggle source
# File lib/mmailer/server_helper.rb, line 37
def stop
  if machine.trigger(:stop)
    display_state
    machine.state
  end
end
up?() click to toggle source
# File lib/mmailer/server_helper.rb, line 26
def up?
  true
end