class Class

Public Instance Methods

inspect() click to toggle source
# File lib/iron/extensions/class.rb, line 8
def inspect
  fields = self.class.inspect_field_set
  vars = instance_variables
  field_vals = fields.collect do |field|
    if instance_variables.include?("@#{field}".to_sym)
      "@#{field}=" + instance_variable_get("@#{field}").inspect
    elsif respond_to?(field)
      ":#{field}=" + send(field).inspect
    end
  end.compact
  text = "#<#{self.class.name}:#{self.object_id}"
  text += (' ' + field_vals.list_join(', ')) if field_vals.any?
  text += '>'
  text
end
inspect_field_set() click to toggle source
# File lib/iron/extensions/class.rb, line 26
def inspect_field_set
  @inspect_field_set || []
end
inspect_only(*methods) click to toggle source

Override inspect to only include the specified

# File lib/iron/extensions/class.rb, line 4
def inspect_only(*methods)
  @inspect_field_set = methods
  alias_method :original_inspect, :inspect
  class_eval do
    def inspect
      fields = self.class.inspect_field_set
      vars = instance_variables
      field_vals = fields.collect do |field|
        if instance_variables.include?("@#{field}".to_sym)
          "@#{field}=" + instance_variable_get("@#{field}").inspect
        elsif respond_to?(field)
          ":#{field}=" + send(field).inspect
        end
      end.compact
      text = "#<#{self.class.name}:#{self.object_id}"
      text += (' ' + field_vals.list_join(', ')) if field_vals.any?
      text += '>'
      text
    end
  end
end