Sha256: 026bb1a615c6861dff65e1eaf54e888318cd06d5883eeb91895e3b3c8106be9d

Contents?: true

Size: 833 Bytes

Versions: 4

Compression:

Stored size: 833 Bytes

Contents

require 'delegate'

module ActionTexter
  class MessageDelivery < Delegator
    def initialize(messenger, message_method, *args) #:nodoc:
      @messenger      = messenger
      @message_method = message_method
      @args           = args
    end

    def __getobj__ #:nodoc:
      @obj ||= @messenger.send(:new).send(@message_method, *@args).message
    end

    alias_method :message, :__getobj__

    def __setobj__(obj) #:nodoc:
      @obj = obj
    end

    def deliver_now!
      message.deliver!
    end

    def deliver_now
      message.deliver
    end

    def inspect
      prefix = "#<#{self.class}:0x#{__id__.to_s(16)}"
      parts  = instance_variables.map { |var| "#{var}=#{instance_variable_get(var).inspect}" }
      str    = [prefix, parts, ']>'].join(' ')

      str.taint if tainted?
      str
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
action-texter-0.2.1.pre lib/action_texter/message_delivery.rb
action-texter-0.2.0.pre lib/action_texter/message_delivery.rb
action-texter-0.1.2.ALPHA lib/action_texter/message_delivery.rb
action-texter-0.0.1 lib/action_texter/message_delivery.rb