Sha256: e9d1bda58ad6bf55c18ece5f6baf4bb8ed5600fd0852943ea544ff8cde72c580
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
require 'chatterbox' require 'chatterbox/mailer' module Chatterbox class Email def self.deliver(options = {}) new(options).deliver end attr_reader :options def initialize(options = {}) @options = options validate_options end def deliver Mailer.deliver_message(options) end private def validate_options require_message require_message_keys(:summary) require_config require_config_keys(:to, :from) end def require_message raise(ArgumentError, "Must configure with a :message") unless options.key?(:message) end def require_config raise(ArgumentError, "Must configure with a :config") unless options.key?(:config) end def require_config_keys(*keys) Array(keys).each do |key| raise(ArgumentError, "Must provide #{key.inspect} in the :config") unless options[:config].key?(key) end end def require_message_keys(*keys) Array(keys).each do |key| raise(ArgumentError, "Must provide #{key.inspect} in the :message") unless options[:message].key?(key) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
chatterbox-email-0.2.0 | lib/chatterbox/email.rb |