module RailsAdmin::Config::Inspectable

Public Instance Methods

inspect() click to toggle source
# File lib/rails_admin/config/inspectable.rb, line 6
def inspect
  set_named_instance_variables

  instance_name = try(:name) || try(:abstract_model).try(:model).try(:name)
  instance_name = instance_name ? "[#{instance_name}]" : ''

  instance_vars = instance_variables.collect do |v|
    instance_variable_name(v)
  end.join(', ')

  "#<#{self.class.name}#{instance_name} #{instance_vars}>"
end

Private Instance Methods

instance_variable_name(variable) click to toggle source
# File lib/rails_admin/config/inspectable.rb, line 21
def instance_variable_name(variable)
  value = instance_variable_get(variable)
  if self.class::NAMED_INSTANCE_VARIABLES.include?(variable)
    if value.respond_to?(:name)
      "#{variable}=#{value.name.inspect}"
    else
      "#{variable}=#{value.class.name}"
    end
  else
    "#{variable}=#{value.inspect}"
  end
end
set_named_instance_variables() click to toggle source
# File lib/rails_admin/config/inspectable.rb, line 34
def set_named_instance_variables
  self.class.const_set('NAMED_INSTANCE_VARIABLES', []) unless defined?(self.class::NAMED_INSTANCE_VARIABLES)
end