Sha256: 8e971bdd62cb23afebda3f5bdd8521b826113af57ac05f44db3566c165bb26b3

Contents?: true

Size: 1.19 KB

Versions: 2

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

# ObjectInspector::CombiningFormatter implements
# {ObjectInspector::BaseFormatter} to return the standard/default inspect
# output format by combining Strings.
#
# @attr (see BaseFormatter)
class ObjectInspector::CombiningFormatter < ObjectInspector::BaseFormatter
  # Perform the formatting routine.
  #
  # @return [String]
  def call
    if wrapped_object_inspection_result
      build_wrapped_object_string
    else
      build_string
    end
  end

  private

  def build_wrapped_object_string
    "#{build_string} "\
      "#{ObjectInspector.configuration.presented_object_separator} "\
      "#{wrapped_object_inspection_result}"
  end

  def build_string
    "<#{combine_strings}>"
  end

  def combine_strings
    strings.join
  end

  # Override in subclasses as needed.
  def strings
    [
      build_identification_string,
      build_flags_string,
      build_info_string,
      build_name_string,
    ].compact
  end

  def build_identification_string
    identification.to_s
  end

  def build_flags_string
    "(#{flags.to_s.upcase})" if flags
  end

  def build_info_string
    " #{info}" if info
  end

  def build_name_string
    " :: #{name}" if name
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
object_inspector-0.7.0 lib/object_inspector/formatters/combining_formatter.rb
object_inspector-0.6.3 lib/object_inspector/formatters/combining_formatter.rb