module Inspector
puts User.new.inspect
> #<User:0x10c7a2f80 id: 1, email: “tyler@example.com”, company_id: 1>¶ ↑
Public Class Methods
included(source)
click to toggle source
# File lib/bario/inspector.rb, line 27 def self.included(source) # $stdout.puts "Overriding inspect on #{source}" inspected << source source.class_eval do def self.inspector(*fields) @inspector_fields = *fields end def self.inspector_fields @inspector_fields ||= [] end end end
inspected()
click to toggle source
# File lib/bario/inspector.rb, line 23 def self.inspected @inspected ||= [] end
inspector(*fields)
click to toggle source
# File lib/bario/inspector.rb, line 31 def self.inspector(*fields) @inspector_fields = *fields end
inspector_fields()
click to toggle source
# File lib/bario/inspector.rb, line 35 def self.inspector_fields @inspector_fields ||= [] end
Public Instance Methods
inspect()
click to toggle source
# File lib/bario/inspector.rb, line 15 def inspect string = "#<#{self.class.name}:#{object_id} " fields = self.class.inspector_fields.map do |field| "#{field}: #{send(field)}" end "#{string}#{fields.join(', ')}>" end