Sha256: 18a1fd8e80293f1b9141c377c2c9d777fd123d76db092777de693fdb808a8ee5

Contents?: true

Size: 1.66 KB

Versions: 2

Compression:

Stored size: 1.66 KB

Contents

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

2 entries across 2 versions & 1 rubygems

Version Path
object_inspector-0.5.1 lib/object_inspector/formatters/base_formatter.rb
object_inspector-0.5.0 lib/object_inspector/formatters/base_formatter.rb