Module: MailCannon

Defined in:
lib/mailcannon/hash.rb,
lib/mailcannon.rb

Overview

Refinements over stdlib to avoid depending on ActiveSupport and friends.

Defined Under Namespace

Modules: Adapter, EnvelopeBagMapReduce Classes: Barrel, Envelope, EnvelopeBag, EnvelopeBagReduceJob, EnvelopeBagStatistic, Event, Mail, SendgridEvent, Stamp

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.config(root_dir = nil) ⇒ Object

Returns the config Hash



39
40
41
# File 'lib/mailcannon.rb', line 39

def self.config(root_dir=nil)
  @config ||= load_config(root_dir)
end

.initialize_logger(log_target = STDOUT) ⇒ Object

Initializes logger with mailcannon setup



66
67
68
69
70
71
72
73
# File 'lib/mailcannon.rb', line 66

def self.initialize_logger(log_target = STDOUT)
  oldlogger = @logger
  @logger = Logger.new(log_target)
  @logger.level = Logger::INFO
  @logger.progname = 'mailcannon'
  oldlogger.close if oldlogger && !$TESTING # don't want to close testing's STDOUT logging
  @logger
end

.load_config(root_dir = nil) ⇒ Object

Loads the config Hash from the YAML



44
45
46
47
48
49
50
51
52
53
# File 'lib/mailcannon.rb', line 44

def self.load_config(root_dir=nil)
  root_dir ||= Pathname.new(Dir.pwd)
  
  path = "#{root_dir}/config/mailcannon.yml"

  raise "Couldn't find config yml at #{path}." unless File.file?(path)
  content = File.read(path)
  erb = ERB.new(content).result
  YAML.load(erb)
end

.loggerObject

Returns the lib logger object



61
62
63
# File 'lib/mailcannon.rb', line 61

def self.logger
  @logger || initialize_logger
end

.warmodeObject

To be used with caution



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

def self.warmode
  #Mongoid.load!("config/mongoid.yml", ENV['RACK_ENV']||'development') # change to env URL
  Sidekiq.configure_client do |config|
    config.redis = { :namespace => 'mailcannon', :size => 1, :url => ENV['REDIS_URL'] }
  end
end

Instance Method Details

#loggerObject

alias method



56
57
58
# File 'lib/mailcannon.rb', line 56

def logger
  MailCannon.logger
end