class RuGUI::BaseObject

A base object for all RuGUI classes.

It mainly defines customized inspect which will display only some of the instance variables, avoiding excessive overhead when generating tracebacks.

Public Instance Methods

inspect() click to toggle source

Returns a string containing a human-readable representation of obj.

It will display each instance variable value unless it is also a RuGUI::BaseObject.

# File lib/rugui/base_object.rb, line 14
def inspect
  instance_variables_values = instance_variables.collect do |instance_variable_name|
    instance_variable_value = instance_variable_get(instance_variable_name)
    inspected_instance_variable_value = nil
    if instance_variable_value.is_a?(RuGUI::BaseObject)
      inspected_instance_variable_value = inspect_base_object(instance_variable_value)
    elsif instance_variable_value.is_a?(Array)
      inspected_instance_variable_value = inspect_array(instance_variable_value)
    elsif instance_variable_value.is_a?(Hash)
      inspected_instance_variable_value = inspect_hash(instance_variable_value)
    else
      inspected_instance_variable_value = instance_variable_value.inspect
    end

    "#{instance_variable_name}=#{inspected_instance_variable_value}"
  end

  "#<#{self.class.name} #{instance_variables_values.join(" ")}>"
end

Protected Instance Methods

inspect_array(array_value) click to toggle source
# File lib/rugui/base_object.rb, line 39
def inspect_array(array_value)
  array_values = array_value.collect do |item|
    if item.is_a?(RuGUI::BaseObject)
      inspect_base_object(item)
    elsif item.is_a?(Array)
      inspect_array(item)
    elsif item.is_a?(Hash)
      inspect_hash(item)
    else
      item.inspect
    end
  end

  "[#{array_values.join(', ')}]"
end
inspect_base_object(base_object_value) click to toggle source
# File lib/rugui/base_object.rb, line 35
def inspect_base_object(base_object_value)
  "#<#{base_object_value.class.inspect}>"
end
inspect_hash(hash_value) click to toggle source
# File lib/rugui/base_object.rb, line 55
def inspect_hash(hash_value)
  hash_values = hash_value.collect do |key, value|
    inspected_value = nil
    if value.is_a?(RuGUI::BaseObject)
      inspected_value = inspect_base_object(value)
    elsif value.is_a?(Array)
      inspected_value = inspect_array(value)
    elsif value.is_a?(Hash)
      inspected_value = inspect_hash(value)
    else
      inspected_value = value.inspect
    end
    "#{key.inspect}=>#{inspected_value}"
  end

  "{#{hash_values.join(', ')}}"
end