class MetricCollect::Backend::Email

Attributes

params[RW]

Public Class Methods

new(name) click to toggle source
# File lib/backend/email.rb, line 23
def initialize(name)
  @params = Hash.new
  @params[:name] = name
  @params[:value] = nil
  @params[:subject] = 'Message from Metrics Collect'
  @params[:body] = nil
  @params[:to] = nil
end

Public Instance Methods

method_missing(method_symbol, *args, &block) click to toggle source
# File lib/backend/email.rb, line 32
def method_missing(method_symbol, *args, &block)
  @params[method_symbol]
end
process_metric(config) click to toggle source
# File lib/backend/email.rb, line 38
def process_metric(config)
  name = @params[:name]
  value = @params[:value]
  subject = @params[:subject]
  body = @params[:body]
  to = @params[:to]
  @config = config.params

  send_email(name, value, to, subject, body)
end

Private Instance Methods

send_email(name, value, to, subject, body) click to toggle source
# File lib/backend/email.rb, line 50
      def send_email(name, value, to, subject, body)
        msg = <<-EOF
From: <#{@config[:email_from]}>
To: <#{to}>
Subject: #{subject}

#{body}
        EOF

        Net::SMTP.start(@config[:email_server]) do |smtp|
          smtp.send_message msg, @config[:email_from], to
        end
      end