Sha256: 11f81755da6052ea554c45541f9658e6712c4f421553fafda1a7805a42768754

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

module Smess
  class Sms

    attr_accessor :to, :message, :originator, :output, :results

    def initialize(*args)
      opts = args.first || {}
      @to = opts.fetch(:to, nil)
      @message = opts.fetch(:message, "")
      @originator = opts.fetch(:originator, nil)
      @output = opts.fetch(:output, :auto).to_sym
    end

    def deliver
      out = Smess.named_output_instance(output)
      out.sms = self
      self.results = {sent_with: output}.merge(out.deliver)
    end

    def verify(using: 'sms')
      out = Smess.named_output_instance(output)
      out.sms = self
      self.results = {sent_with: output}.merge(out.verify(using: using))
    end

    def check(code)
      out = Smess.named_output_instance(output)
      out.sms = self
      self.results = {sent_with: output}.merge(out.check(code))
    end

    def delivered?
      results[:response_code] == "0"
    end

    def send_feedback(to, message_sid)
      out = Smess.named_output_instance(output)
      @to = to
      out.sms = self
      out.send_feedback(message_sid)
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
smess-3.1.2 lib/smess/sms.rb
smess-3.1.1 lib/smess/sms.rb
smess-3.1.0 lib/smess/sms.rb
smess-3.0.0 lib/smess/sms.rb