class MessageBird::HTTP::Sender

Attributes

enabled[W]
response_factory[W]

Public Class Methods

deliver(sms, &block) click to toggle source
# File lib/messagebird/http/sender.rb, line 8
def deliver(sms, &block)
  ensure_valid_sms!(sms)
  send_sms(sms, &block)
end

Private Class Methods

connection_class() click to toggle source
# File lib/messagebird/http/sender.rb, line 60
def connection_class
  if enabled
    Net::HTTP
  else
    LocalConnection
  end
end
connection_factory() click to toggle source
# File lib/messagebird/http/sender.rb, line 45
def connection_factory
  @connection_factory ||= connection_class.method(:new)
end
create_connection(uri) click to toggle source
# File lib/messagebird/http/sender.rb, line 30
def create_connection(uri)
  connection_factory.call(uri.host, uri.port).tap do |http|
    http.use_ssl = true
    # http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  end
end
create_request(request_uri) click to toggle source
# File lib/messagebird/http/sender.rb, line 37
def create_request(request_uri)
  Net::HTTP::Get.new(request_uri)
end
enabled() click to toggle source
# File lib/messagebird/http/sender.rb, line 53
def enabled
  if @enabled.nil?
    @enabled = MessageBird::Config.enabled
  end
  @enabled
end
ensure_valid_sms!(obj) click to toggle source
# File lib/messagebird/http/sender.rb, line 41
def ensure_valid_sms!(obj)
  raise ArgumentError unless obj.is_a? MessageBird::HTTP::SMS
end
response_factory() click to toggle source
# File lib/messagebird/http/sender.rb, line 49
def response_factory
  @response_factory ||= Response.method(:new)
end
send_request(connection, request) click to toggle source
# File lib/messagebird/http/sender.rb, line 26
def send_request(connection, request)
  response_factory.call( connection.request(request) )
end
send_sms(sms) { |response| ... } click to toggle source
# File lib/messagebird/http/sender.rb, line 15
def send_sms(sms, &block)
  connection = create_connection(sms.uri)
  request    = create_request(sms.request_uri)

  response = send_request(connection, request)

  if block_given?
    yield response
  end
end