mirror of
https://github.com/awesome-print/awesome_print
synced 2023-03-27 23:22:34 -04:00
Refactored ActiveRecord plugin to use new plugin registration
This commit is contained in:
parent
8130cf4043
commit
46cb73adf0
1 changed files with 9 additions and 14 deletions
|
@ -6,20 +6,16 @@
|
||||||
module AwesomePrint
|
module AwesomePrint
|
||||||
module ActiveRecord
|
module ActiveRecord
|
||||||
|
|
||||||
# Add ActiveRecord class names to the dispatcher pipeline.
|
def cast(object, type)
|
||||||
#------------------------------------------------------------------------------
|
return nil if !defined?(::ActiveRecord) || !defined?(::ActiveSupport::OrderedHash)
|
||||||
def cast_with_active_record(object, type)
|
|
||||||
cast = cast_without_active_record(object, type)
|
|
||||||
return cast if !defined?(::ActiveRecord)
|
|
||||||
|
|
||||||
if object.is_a?(::ActiveRecord::Base)
|
if object.is_a?(::ActiveRecord::Base)
|
||||||
cast = :active_record_instance
|
:active_record_instance
|
||||||
elsif object.is_a?(Class) && object.ancestors.include?(::ActiveRecord::Base)
|
elsif object.is_a?(Class) && object.ancestors.include?(::ActiveRecord::Base)
|
||||||
cast = :active_record_class
|
:active_record_class
|
||||||
elsif type == :activerecord_relation
|
elsif type == :activerecord_relation
|
||||||
cast = :array
|
:array
|
||||||
end
|
end
|
||||||
cast
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
@ -28,13 +24,12 @@ module AwesomePrint
|
||||||
#
|
#
|
||||||
# NOTE: by default only instance attributes (i.e. columns) are shown. To format
|
# NOTE: by default only instance attributes (i.e. columns) are shown. To format
|
||||||
# ActiveRecord instance as regular object showing its instance variables and
|
# ActiveRecord instance as regular object showing its instance variables and
|
||||||
# accessors use :raw => true option:
|
# accessor attributes use :raw option:
|
||||||
#
|
#
|
||||||
# ap record, :raw => true
|
# ap record, :raw
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
def awesome_active_record_instance(object)
|
def awesome_active_record_instance(object)
|
||||||
return object.inspect if !defined?(::ActiveSupport::OrderedHash)
|
|
||||||
return awesome_object(object) if @options[:raw]
|
return awesome_object(object) if @options[:raw]
|
||||||
|
|
||||||
data = object.class.column_names.inject(::ActiveSupport::OrderedHash.new) do |hash, name|
|
data = object.class.column_names.inject(::ActiveSupport::OrderedHash.new) do |hash, name|
|
||||||
|
@ -50,7 +45,7 @@ module AwesomePrint
|
||||||
# Format ActiveRecord class object.
|
# Format ActiveRecord class object.
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
def awesome_active_record_class(object)
|
def awesome_active_record_class(object)
|
||||||
return object.inspect if !defined?(::ActiveSupport::OrderedHash) || !object.respond_to?(:columns) || object.to_s == "ActiveRecord::Base"
|
return object.inspect if !object.respond_to?(:columns) || object.to_s == "ActiveRecord::Base"
|
||||||
|
|
||||||
data = object.columns.inject(::ActiveSupport::OrderedHash.new) do |hash, c|
|
data = object.columns.inject(::ActiveSupport::OrderedHash.new) do |hash, c|
|
||||||
hash[c.name.to_sym] = c.type
|
hash[c.name.to_sym] = c.type
|
||||||
|
@ -61,4 +56,4 @@ module AwesomePrint
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
AwesomePrint::Plugin.add(AwesomePrint::ActiveRecord)
|
AwesomePrint::Plugin.register(AwesomePrint::ActiveRecord)
|
||||||
|
|
Loading…
Add table
Reference in a new issue