Sha256: e72fc885c8f3b22915096f2e3334fb6ce0c06dc3b4b0d8df2b1045d2a261f531

Contents?: true

Size: 1.04 KB

Versions: 20

Compression:

Stored size: 1.04 KB

Contents

module RailsAdmin
  module Config
    module Inspectable
      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

      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

      def set_named_instance_variables
        unless defined?(self.class::NAMED_INSTANCE_VARIABLES)
          self.class.const_set('NAMED_INSTANCE_VARIABLES', [])
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
rails_admin-2.3.1 lib/rails_admin/config/inspectable.rb
rails_admin-2.3.0 lib/rails_admin/config/inspectable.rb
rails_admin-2.2.1 lib/rails_admin/config/inspectable.rb
rails_admin-2.2.0 lib/rails_admin/config/inspectable.rb
rails_admin-2.1.1 lib/rails_admin/config/inspectable.rb
rails_admin-2.1.0 lib/rails_admin/config/inspectable.rb
rails_admin-2.0.2 lib/rails_admin/config/inspectable.rb
rails_admin-1.4.3 lib/rails_admin/config/inspectable.rb
rails_admin-2.0.1 lib/rails_admin/config/inspectable.rb
rails_admin-2.0.0 lib/rails_admin/config/inspectable.rb
rails_admin-2.0.0.rc lib/rails_admin/config/inspectable.rb
rails_admin-2.0.0.beta lib/rails_admin/config/inspectable.rb
rails_admin-1.4.2 lib/rails_admin/config/inspectable.rb
rails_admin-1.4.1 lib/rails_admin/config/inspectable.rb
rails_admin-1.4.0 lib/rails_admin/config/inspectable.rb
rails_admin-1.3.0 lib/rails_admin/config/inspectable.rb
rails_admin-1.2.0 lib/rails_admin/config/inspectable.rb
rails_admin-1.1.1 lib/rails_admin/config/inspectable.rb
rails_admin-1.1.0 lib/rails_admin/config/inspectable.rb
rails_admin-1.0.0 lib/rails_admin/config/inspectable.rb