Sha256: 1a8d8730ef3a49b456cd4a6bfb261020c5261271c935a7db3507222fd9876359
Contents?: true
Size: 1.15 KB
Versions: 4
Compression:
Stored size: 1.15 KB
Contents
# frozen_string_literal: true require 'mail' require 'ditty/services/logger' module Ditty module Services module Email CONFIG = './config/email.yml'.freeze class << self def method_missing(method, *args, &block) return super unless respond_to_missing?(method) config! Mail.send(method, *args, &block) end def respond_to_missing?(method, _include_private = false) Mail.respond_to? method end def config @config ||= symbolize_keys File.exist?(CONFIG) ? YAML.load_file(CONFIG) : default end private def config! cfg = config Mail.defaults do delivery_method cfg[:delivery_method].to_sym, (cfg[:options] || {}) end end def default { delivery_method: :logger, logger: Ditty::Services::Logger.instance } end def symbolize_keys(hash) return hash.map { |v| symbolize_keys(v) } if hash.is_a? Array return hash unless hash.is_a? Hash Hash[hash.map { |k, v| [k.to_sym, symbolize_keys(v)] }] end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
ditty-0.4.1 | lib/ditty/services/email.rb |
ditty-0.4.0 | lib/ditty/services/email.rb |
ditty-0.3.3 | lib/ditty/services/email.rb |
ditty-0.3.2 | lib/ditty/services/email.rb |