Sha256: f73e7736653801850a6e30d0cb6be32cd9db6d8137e92998c1e5af3a61093b37

Contents?: true

Size: 1.34 KB

Versions: 10

Compression:

Stored size: 1.34 KB

Contents

module CmSms
  class Messenger
    
    attr_accessor :from, :to, :body, :dcs, :reference
    
    def initialize(attributes = {})
      self.class.default_params ||= {}
      
      @from = attributes[:from] || self.class.default_params[:from]
      @to   = attributes[:to] || self.class.default_params[:to]
      @dcs  = attributes[:dcs] || self.class.default_params[:dcs]
      @body = attributes[:body]
      @reference = attributes[:reference]
    end
    
    def content(attributes = {})
      attributes.each { |attr, value| send("#{attr}=", value) }
      self
    end
    
    def message
      @message ||= CmSms::Message.new(from: from, to: to, dcs: dcs, body: body, reference: reference)
    end
    
    def self.method_missing(method_name, *args) # :nodoc:
      if new.respond_to?(method_name.to_s)
        CmSms::MessageDelivery.new(self, method_name, *args)
      else
        super
      end
    end
    
    def self.respond_to_missing?(method_name, *args) # :nodoc:
      new.respond_to?(method_name.to_s) || super
    end
    
    def self.default_params
      @@default_params ||= CmSms.config.defaults
    end

    def self.default_params=(params = {})
      @@default_params = params
    end
    
    def self.default(hash = {})
      self.default_params = CmSms.config.defaults.merge(hash).freeze
      default_params
    end
    
  end
end
  

Version data entries

10 entries across 10 versions & 1 rubygems

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