Sha256: eef183cf8aeb8d03d795f4913c3226b89b83c9ca5604b978a1acb899298b9e82

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

# Sms backend for logging outgoing sms instead of actually sending them
class ActiveSMS::Backend::Logger < ActiveSMS::Backend::Base
  # Log level validation, all invalid values lead to ArgumentError.
  # Has anyone heard how to receive log levels from ruby logger itself?
  LOG_SEVERITY = [:debug, :info, :warn, :error, :fatal, :unknown].freeze

  # @param logger [::Logger] Class implementing logger interface
  # @param severity [Symbol] Severity to log with
  def initialize(logger: Logger.new(STDOUT), severity: :info)
    @logger   = logger
    @severity = severity

    raise ArgumentError, "Invalid log severity" unless LOG_SEVERITY.include?(@severity)

    return if @logger.respond_to?(@severity)
    raise ArgumentError, "Class should implement logger interface"
  end

  # Method that sends phone and text to logger
  #
  # @param phone [String] Phone number to send sms
  # @param text  [String] Sms text
  def send_sms(phone, text)
    @logger.send(@severity, "[SMS] #{phone}: #{text}")
    respond_with_status :success
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
active_sms-0.2.1 lib/active_sms/backend/logger.rb