Sha256: 330ce90630b5fb12487672f1284c8b40bad1a3c80746a731eb1ae2e548d53661

Contents?: true

Size: 1.7 KB

Versions: 3

Compression:

Stored size: 1.7 KB

Contents

# frozen_string_literal: true

module ObjectInspector
  # ObjectInspector::BaseFormatter is an abstract base class that interfaces
  # with {ObjectInspector::Inspector} objects to combine the supplied
  # {#identification}, {#flags}, {#info}, and {#name} strings into a friendly
  # "inspect" String.
  class BaseFormatter
    attr_reader :inspector

    # @param inspector [ObjectInspector::Inspector]
    def initialize(inspector)
      @inspector = inspector
    end

    # Perform the formatting routine.
    #
    # @return [String]
    def call
      raise NotImplementedError
    end

    # Delegates to {Inspector#wrapped_object_inspection_result}.
    #
    # @return [String] if given
    # @return [NilClass] if not given
    def wrapped_object_inspection_result
      @wrapped_object_inspection_result ||=
        @inspector.wrapped_object_inspection_result
    end

    # Delegates to {Inspector#identification}.
    #
    # @return [String] if given
    def identification
      @identification ||= @inspector.identification
    end

    # Delegates to {Inspector#flags}.
    #
    # @return [String] if given
    # @return [NilClass] if not given
    def flags
      @flags ||= @inspector.flags
    end

    # Delegates to {Inspector#issues}.
    #
    # @return [String] if given
    # @return [NilClass] if not given
    def issues
      @issues ||= @inspector.issues
    end

    # Delegates to {Inspector#info}.
    #
    # @return [String] if given
    # @return [NilClass] if not given
    def info
      @info ||= @inspector.info
    end

    # Delegates to {Inspector#name}.
    #
    # @return [String] if given
    # @return [NilClass] if not given
    def name
      @name ||= @inspector.name
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
object_inspector-0.6.2 lib/object_inspector/formatters/base_formatter.rb
object_inspector-0.6.1 lib/object_inspector/formatters/base_formatter.rb
object_inspector-0.6.0 lib/object_inspector/formatters/base_formatter.rb