module ActionTexter 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] @body = attributes[:body] @reference = attributes[:reference] end def content(attributes = {}) attributes.each { |attr, value| send("#{attr}=", value) } self end def message @message ||= ActionTexter::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) ActionTexter::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 ||= ActionTexter.config.defaults end def self.default_params=(params = {}) @@default_params = params end def self.default(hash = {}) self.default_params = ActionTexter.config.defaults.merge(hash).freeze default_params end end end