lib/cutter/inspection.rb in cutter-0.6.0 vs lib/cutter/inspection.rb in cutter-0.8.0
- old
+ new
@@ -22,10 +22,19 @@
# Binding is a Ruby class: http://www.ruby-doc.org/core/classes/Binding.html
def inspect! *options, &block
return true if Cutter::Inspection.quiet?
+ def __colors
+ Cutter::ColoredOutputs.colors_config
+ end
+
+ def to_cs obj
+ color = __colors[obj] || :default
+ color != :default ? to_s.send(color) : to_s
+ end
+
# Getting binding
_binding = options.first if options.first.class == Binding
raise ArgumentError, "Try inspect(binding) or inspect! {}", caller if (!block_given? && !_binding)
_binding ||= block.binding
@@ -39,43 +48,48 @@
_caller = caller
self_inspection = eval('self.inspect', _binding) if options[:inspect]
# Basic info
- puts %|\nmethod: `#{eval('__method__', _binding)}' #{'(maximal tracing)' if max}|
- puts %| called from class: #{eval('self.class', _binding)}|
+ method_name = eval('__method__', _binding)
+ class_name = eval('self.class', _binding)
+
+ puts "\n%s `%s' %s" % ['method:'.to_cs(:method), method_name.to_cs(:method_name), ('(maximal tracing)' if max)]
+ puts " %s %s" % ['called from class:'.to_cs(:called_from), class_name.to_cs(:class_name)]
+ # Local Variables
lvb = eval('local_variables',_binding)
- puts %| local_variables: #{"[]" if lvb.empty?}|
+ puts " %s %s" % ['local_variables:'.to_cs(:lv), ("[]" if lvb.empty?)]
lvb.map do |lv|
local_variable = eval(lv.to_s, _binding)
local_variable = (max ? local_variable.inspect : local_variable.to_real_string)
- puts %| #{lv}: #{local_variable}|
+ puts " %s: %s" % [lv.to_cs(:lv_names), local_variable.to_cs(:lv_values)]
end if lvb
ivb = eval('instance_variables',_binding)
- puts %| instance_variables: #{"[]" if ivb.empty?}|
- ivb.map do |lv|
- instance_variable = eval(lv.to_s, _binding)
+ puts " %s %s" % ["instance_variables:".to_cs(:iv), ("[]" if ivb.empty?)]
+
+ ivb.map do |iv|
+ instance_variable = eval(iv.to_s, _binding)
instance_variable = (max ? instance_variable.inspect : instance_variable.to_real_string)
- puts %| #{lv}: #{instance_variable}|
+ puts " %s: %s" % [iv.to_cs(:iv_names), instance_variable.to_cs(:iv_values)]
end if ivb
# Self inspection
begin
- puts %| self inspection:|
- puts %| #{self_inspection}|
+ puts " self inspection:".to_cs(:self_inspection)
+ puts " %s" % self_inspection.to_cs(:self_inspection_trace)
end if self_inspection
# Caller methods chain
begin
- puts %| caller methods: |
+ puts " caller methods: ".to_cs(:caller_methods)
0.upto(level).each {|index|
- puts %| #{_caller[index]}|
+ puts " %s" % _caller[index].to_cs(:caller_method)
}
end if level
puts "\n"
# Yield mysterious things if they exist in block.