Sha256: 3b4283dd6f7613c99012ce9896da8b233050467e68887a9e374fbb054185f734

Contents?: true

Size: 831 Bytes

Versions: 12

Compression:

Stored size: 831 Bytes

Contents

require 'delegate'

module CmSms
  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 :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#{self.__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

12 entries across 12 versions & 1 rubygems

Version Path
cm-sms-0.2.7 lib/cm_sms/message_delivery.rb
cm-sms-0.2.6 lib/cm_sms/message_delivery.rb
cm-sms-0.2.5 lib/cm_sms/message_delivery.rb
cm-sms-0.2.4 lib/cm_sms/message_delivery.rb
cm-sms-0.2.3 lib/cm_sms/message_delivery.rb
cm-sms-0.2.2 lib/cm_sms/message_delivery.rb
cm-sms-0.2.1 lib/cm_sms/message_delivery.rb
cm-sms-0.2.0 lib/cm_sms/message_delivery.rb
cm-sms-0.1.4 lib/cm_sms/message_delivery.rb
cm-sms-0.1.2 lib/cm_sms/message_delivery.rb
cm-sms-0.1.1 lib/cm_sms/message_delivery.rb
cm-sms-0.1.0 lib/cm_sms/message_delivery.rb