class BabySMS::Message
Constants
- MAX_CONTENTS_LENGTH
Attributes
contents[RW]
from[RW]
to[RW]
Public Class Methods
new(to:, from: nil, contents:, uuid: nil)
click to toggle source
# File lib/babysms/message.rb, line 10 def initialize(to:, from: nil, contents:, uuid: nil) @to = Phony.normalize(to) @from = from @contents = contents end
Public Instance Methods
deliver(adapters: BabySMS.adapters, strategy: BabySMS.strategy)
click to toggle source
# File lib/babysms/message.rb, line 16 def deliver(adapters: BabySMS.adapters, strategy: BabySMS.strategy) validate! BabySMS::MailMan.new(adapters: adapters, strategy: strategy).deliver(self) end
reply(contents:, adapters: BabySMS.adapters, strategy: BabySMS.strategy)
click to toggle source
generates and delivers a reply to a message
# File lib/babysms/message.rb, line 22 def reply(contents:, adapters: BabySMS.adapters, strategy: BabySMS.strategy) Message.new(to: from, from: to, contents: contents) .deliver(adapters: adapters, strategy: strategy) end
Private Instance Methods
validate!()
click to toggle source
# File lib/babysms/message.rb, line 31 def validate! validate_to! validate_contents! end
validate_contents!()
click to toggle source
# File lib/babysms/message.rb, line 46 def validate_contents! if contents.nil? || contents.empty? fail BabySMS::InvalidMessage, 'no contents' end if contents.size > MAX_CONTENTS_LENGTH msg = "contents too long (#{contents.size} vs max of #{MAX_CONTENTS_LENGTH}); " \ "contents: `#{contents}`" fail BabySMS::InvalidMessage, msg end end
validate_to!()
click to toggle source
# File lib/babysms/message.rb, line 36 def validate_to! if to.nil? || to.empty? fail BabySMS::InvalidMessage, 'no to:' end unless Phony.plausible?(to) fail BabySMS::InvalidMessage, "implausible to: #{to}" end end