Sha256: 59d61f475d400f5078416b0cf90371d0ebaa913feffac1f7f76144ed1913ff33

Contents?: true

Size: 994 Bytes

Versions: 6

Compression:

Stored size: 994 Bytes

Contents

module Rumeme
  # This class represents an SMS message.
  class SmsMessage
    attr_reader :phone_number, :message, :message_id, :delay, :validity_period, :delivery_report

    # Constructor.
    def initialize args
      # this defaults must be moved to global configuration
      defaults = {:phone_number => nil, :message => nil, :message_id => 0, :delay => 0, :validity_period => ValidityPeriod::THREE_DAYS, :delivery_report => false}
      params = defaults.merge args
      defaults.keys.each {|key| instance_variable_set("@#{key.to_s}".to_sym, params[key])}

      raise ArgumentError.new("phone_number is empty") if @phone_number.nil? || @phone_number.empty?
      raise ArgumentError.new("message is empty") if @message.nil? || @message.empty?

      @message = @message.gsub("\n",'\n').gsub("\r",'\r').gsub("\\",'\\\\')
    end
    
    def post_string
      "#{@message_id} #{@phone_number} #{@delay} #{@validity_period} #{@delivery_report ? 1 : 0} #{@message}\r\n"
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rumeme-0.4.0 lib/rumeme/sms_message.rb
rumeme-0.3.0 lib/rumeme/sms_message.rb
rumeme-0.2.0 lib/rumeme/sms_message.rb
rumeme-0.1.7 lib/rumeme/sms_message.rb
rumeme-0.1.6 lib/rumeme/sms_message.rb
rumeme-0.1.5 lib/rumeme/sms_message.rb