Sha256: 7b5c466fcb87e95ba920b21e6cd6c4ba5edb304045cd73a87b5ed66c00de4325

Contents?: true

Size: 785 Bytes

Versions: 2

Compression:

Stored size: 785 Bytes

Contents

require 'malm/message_db'
require 'malm/smtp_server'
require 'malm/web'

class Malm
  attr_accessor :log, :smtpport, :webport
  
  def initialize(options={})
    options.each{|k,v| send("#{k}=", v)}
  end
  
  def run!
    create_db
    run_smtp!
    run_web!
  end
  
  private
  def create_db
    @db = Malm::MessageDb.new
  end

  def run_smtp!
    smtp_server = Malm::SMTPServer.new(@smtpport)
    smtp_server.mail_log = @log
    smtp_server.message_db = @db

    begin
      smtp_server.start
    rescue Errno::EACCES
      STDERR.puts("Don't have permission to start SMTP server on port #{smtpport}. Maybe run with sudo?")
      exit 1
    end
    smtp_server
  end

  def run_web!
    Malm::Web.set :port, @webport
    Malm::Web.set :message_db, @db
    Malm::Web.run!
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
malm-0.0.6 lib/malm.rb
malm-0.0.5 lib/malm.rb