Sha256: 2c9e43087a40c5b37e0d7f0e631f23fdc8ea5ac5c54b3d8fba46706165a3e49c

Contents?: true

Size: 1.69 KB

Versions: 1

Compression:

Stored size: 1.69 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.
  #
  # @attr inspector [ObjectInspector::Inspector]
  class BaseFormatter
    attr_reader :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

1 entries across 1 versions & 1 rubygems

Version Path
object_inspector-0.5.2 lib/object_inspector/formatters/base_formatter.rb