Sha256: 62b43efa1d8948e85dfb97530940a54d18fcceecaac1b1e02b0d3995b2448568

Contents?: true

Size: 710 Bytes

Versions: 5

Compression:

Stored size: 710 Bytes

Contents

module WarningSigns
  module Behavior
    class Base
      attr_reader :message_formatter, :message, :backtrace

      def self.for(behavior_type, *args)
        class_name = "WarningSigns::Behavior::#{behavior_type.classify}"
        class_name.constantize.new(*args)
      end

      def initialize(message, backtrace, message_formatter)
        @message = message
        @backtrace = backtrace
        @message_formatter = message_formatter
      end

      def formatted_message
        result = message_formatter.format_message(message, backtrace)
        result = [result] unless result.is_a?(Array)
        result
      end

      def emit
        raise NotImplementedError
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
warning_signs-0.7.2 lib/warning_signs/behavior/base.rb
warning_signs-0.7.1 lib/warning_signs/behavior/base.rb
warning_signs-0.7.0 lib/warning_signs/behavior/base.rb
warning_signs-0.6.1 lib/warning_signs/behavior/base.rb
warning_signs-0.6.0 lib/warning_signs/behavior/base.rb