Sha256: f3eabfebd5cb6a81b9780a8d8ba415a54be0d198743d1319795f92ca19999abb

Contents?: true

Size: 1.09 KB

Versions: 3

Compression:

Stored size: 1.09 KB

Contents

require 'lotus/utils/basic_object'

module Lotus::Mailer
  # @since 0.5.0
  # @api private
  class Delivery < ::Lotus::Utils::BasicObject
    # @since 0.5.0
    # @api private
    def initialize(env, &blk)
      @env = env
      instance_eval(&blk)
    end

    # @since 0.5.0
    # @api private
    def to_config
      @config
    end

    # @since 0.5.0
    # @api private
    def test(*args)
      __setup_config(:test, *args)
    end

    private

    # @since 0.5.0
    # @api private
    def method_missing(m, *args)
      __setup_config(m, *args)
    end

    # @since 0.5.0
    # @api private
    def __setup_config(env, *args)
      if env.to_s == @env
        @config = args
      end
    end
  end


  # @since 0.5.0
  # @api private
  module Glue

    # @since 0.5.0
    # @api private
    def delivery(&blk)
      raise ArgumentError unless block_given?
      delivery_method(*Lotus::Mailer::Delivery.new(Lotus.env, &blk).to_config)
    end
  end

  Configuration.class_eval do
    include Glue
  end
end

# @since 0.5.0
# @api private
module Mailers
end

Lotus::Mailer.configure do
  namespace Mailers
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lotusrb-0.6.1 lib/lotus/mailer/glue.rb
lotusrb-0.6.0 lib/lotus/mailer/glue.rb
lotusrb-0.5.0 lib/lotus/mailer/glue.rb