Sha256: eb240a7cfb58d580d9a30d548450148b8c1fe118d9cd08e5e17de7876f9fed8f

Contents?: true

Size: 1.15 KB

Versions: 2

Compression:

Stored size: 1.15 KB

Contents

module TextMagic

  class API

    module Validation

      MAX_LENGTH_GSM = [160, 306, 459].freeze
      MAX_LENGTH_UNICODE = [70, 134, 201].freeze

      # Validates message text length. Returns +true+ if the text length is
      # within the limits for the unicode/parts combination, otherwise it
      # returns +false+.
      #
      # Note: <em>Maximum lengths for 1, 2 and 3-part GSM 03.38 messages are
      # 160, 306 and 459 respectively.
      # Maximum lengths for 1, 2 and 3-part unicode messages are
      # 70, 134 and 201 respectively.</em>
      def validate_text_length(text, unicode, parts = 3)
        max_text_length = (unicode ? MAX_LENGTH_UNICODE : MAX_LENGTH_GSM)[parts - 1]
        real_length(text, unicode) <= max_text_length
      end

      # Validates a list of phone numbers. Returns +true+ if the list is not empty
      # and all phone numbers are digit-only strings of maximum length of 15,
      # otherwise it returns +false+.
      def validate_phones(*phones)
        phones.flatten!
        return false if phones.empty?
        phones.each { |phone| return false unless phone =~ /^\d{1,15}$/ }
        true
      end

    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
textmagic-0.7.1 lib/textmagic/validation.rb
textmagic-0.7.0 lib/textmagic/validation.rb