cutter 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/cutter/colored_outputs.rb +4 -1
- data/lib/cutter/inspection.rb +31 -26
- data/lib/cutter/stamper.rb +14 -12
- metadata +3 -3
@@ -5,7 +5,6 @@ class Object
|
|
5
5
|
log_coloured sp, "------------------------------", color(:line)
|
6
6
|
end
|
7
7
|
|
8
|
-
|
9
8
|
def log_coloured sp, msg, color = :default
|
10
9
|
message = sp + msg
|
11
10
|
message = color != :default ? message.send(color) : message
|
@@ -33,6 +32,10 @@ module Cutter
|
|
33
32
|
@colors ||= {:line => :blue,
|
34
33
|
:time => :light_blue,
|
35
34
|
|
35
|
+
:message_name => :cyan,
|
36
|
+
:message_line => :cyan,
|
37
|
+
:total_line => :yellow,
|
38
|
+
:total_count => :yellow
|
36
39
|
# Colors for #inspect!
|
37
40
|
#:called_from => :light_magenta,
|
38
41
|
#:class_name => :red,
|
data/lib/cutter/inspection.rb
CHANGED
@@ -24,26 +24,17 @@ class Object
|
|
24
24
|
def inspect! *options, &block
|
25
25
|
return true if Cutter::Inspection.quiet?
|
26
26
|
|
27
|
-
def __colors
|
28
|
-
Cutter::ColoredOutputs.colors_config
|
29
|
-
end
|
30
|
-
|
31
|
-
def to_cs obj
|
32
|
-
color = __colors[obj] || :default
|
33
|
-
color != :default ? to_s.send(color) : to_s
|
34
|
-
end
|
35
|
-
|
36
27
|
# Getting binding
|
37
28
|
_binding = options.first if options.first.class == Binding
|
38
29
|
raise ArgumentError, "Try inspect(binding) or inspect! {}", caller if (!block_given? && !_binding)
|
39
30
|
_binding ||= block.binding
|
40
31
|
|
41
|
-
# Want caller methods chain to be traced? - pass option :level to inspect!
|
42
32
|
options = options.extract_options!
|
43
33
|
|
44
34
|
max = options[:max]
|
45
35
|
options.maximize_options! if max
|
46
|
-
|
36
|
+
|
37
|
+
# Want caller methods chain to be traced? - pass option :level to inspect!
|
47
38
|
level = options[:level]
|
48
39
|
_caller = caller
|
49
40
|
|
@@ -53,42 +44,43 @@ class Object
|
|
53
44
|
method_name = eval('__method__', _binding)
|
54
45
|
class_name = eval('self.class', _binding)
|
55
46
|
|
56
|
-
puts "\n%s `%s' %s" % ['method:'.
|
57
|
-
puts " %s %s" % ['called from class:'.
|
47
|
+
puts "\n%s `%s' %s" % ['method:'.__cs(:method), method_name.__cs(:method_name), ('(maximal tracing)' if max)]
|
48
|
+
puts " %s %s" % ['called from class:'.__cs(:called_from), class_name.__cs(:class_name)]
|
58
49
|
|
59
50
|
# Local Variables
|
60
51
|
lvb = eval('local_variables',_binding)
|
61
|
-
puts " %s %s" % ['local_variables:'.
|
52
|
+
puts " %s %s" % ['local_variables:'.__cs(:lv), ("[]" if lvb.empty?)]
|
62
53
|
|
63
54
|
lvb.map do |lv|
|
64
55
|
local_variable = eval(lv.to_s, _binding)
|
65
|
-
local_variable = (max ? local_variable.inspect : local_variable.
|
56
|
+
local_variable = (max ? local_variable.inspect : local_variable.__rs)
|
66
57
|
|
67
|
-
puts " %s: %s" % [lv.
|
58
|
+
puts " %s: %s" % [lv.__cs(:lv_names), local_variable.__cs(:lv_values)]
|
68
59
|
end if lvb
|
69
60
|
|
61
|
+
# Instance Variables
|
70
62
|
ivb = eval('instance_variables',_binding)
|
71
63
|
|
72
|
-
puts " %s %s" % ["instance_variables:".
|
64
|
+
puts " %s %s" % ["instance_variables:".__cs(:iv), ("[]" if ivb.empty?)]
|
73
65
|
|
74
66
|
ivb.map do |iv|
|
75
67
|
instance_variable = eval(iv.to_s, _binding)
|
76
|
-
instance_variable = (max ? instance_variable.inspect : instance_variable.
|
68
|
+
instance_variable = (max ? instance_variable.inspect : instance_variable.__rs)
|
77
69
|
|
78
|
-
puts " %s: %s" % [iv.
|
70
|
+
puts " %s: %s" % [iv.__cs(:iv_names), instance_variable.__cs(:iv_values)]
|
79
71
|
end if ivb
|
80
72
|
|
81
73
|
# Self inspection
|
82
74
|
begin
|
83
|
-
puts " self inspection:".
|
84
|
-
puts " %s" % self_inspection.
|
75
|
+
puts " self inspection:".__cs(:self_inspection)
|
76
|
+
puts " %s" % self_inspection.__cs(:self_inspection_trace)
|
85
77
|
end if self_inspection
|
86
78
|
|
87
79
|
# Caller methods chain
|
88
80
|
begin
|
89
|
-
puts " caller methods: ".
|
81
|
+
puts " caller methods: ".__cs(:caller_methods)
|
90
82
|
0.upto(level).each {|index|
|
91
|
-
puts " %s" % _caller[index].
|
83
|
+
puts " %s" % _caller[index].__cs(:caller_method)
|
92
84
|
}
|
93
85
|
end if level
|
94
86
|
|
@@ -97,19 +89,32 @@ class Object
|
|
97
89
|
yield if block_given?
|
98
90
|
end
|
99
91
|
|
92
|
+
protected
|
93
|
+
|
100
94
|
def caller_method_name(level = 1)
|
101
95
|
caller[level][/`([^']*)'/,1].to_sym
|
102
96
|
end
|
103
97
|
|
104
|
-
protected
|
105
|
-
|
106
98
|
def maximize_options!
|
107
99
|
self.merge!({:max => true, :inspect => true, :level => 2})
|
108
100
|
end
|
109
101
|
|
110
|
-
|
102
|
+
# ("real string") Now used to print Symbols with colons
|
103
|
+
def __rs
|
111
104
|
return ":#{self.to_s}" if self.class == Symbol
|
112
105
|
self
|
113
106
|
end
|
107
|
+
|
108
|
+
def __cs obj
|
109
|
+
color = __colors[obj] || :default
|
110
|
+
color != :default ? to_s.send(color) : to_s
|
111
|
+
end
|
112
|
+
|
113
|
+
private
|
114
|
+
|
115
|
+
def __colors
|
116
|
+
Cutter::ColoredOutputs.colors_config
|
117
|
+
end
|
118
|
+
|
114
119
|
end
|
115
120
|
|
data/lib/cutter/stamper.rb
CHANGED
@@ -8,10 +8,6 @@ class Object
|
|
8
8
|
|
9
9
|
def stamper name = nil, &block
|
10
10
|
|
11
|
-
def log_time sp, msg
|
12
|
-
log_coloured sp, msg, color(:time)
|
13
|
-
end
|
14
|
-
|
15
11
|
return if stamper_class.off?
|
16
12
|
scope = stamper_class[name] || stamper_class[:default]
|
17
13
|
scope.indent = stamper_class.last ? stamper_class.last.indent + 1 : 0
|
@@ -21,17 +17,23 @@ class Object
|
|
21
17
|
if scope
|
22
18
|
message = scope.label.values.first
|
23
19
|
end
|
24
|
-
spaces = "
|
25
|
-
|
26
|
-
log_coloured spaces, "
|
20
|
+
spaces = " " * scope.indent
|
21
|
+
puts "\n"
|
22
|
+
log_coloured spaces, "#{message}", color(:message_name)
|
23
|
+
log_coloured spaces, "#{'-'*message.length}", color(:message_line)
|
24
|
+
|
27
25
|
scope.time_initial = time_now
|
28
26
|
yield scope
|
29
27
|
scope.indent -= 1 if scope.indent > 0
|
30
28
|
stamper_class.pop
|
31
29
|
time_passed = time_now - scope.time_initial
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
|
31
|
+
tps = "#{time_passed}ms"
|
32
|
+
offset = message.length - tps.length
|
33
|
+
offset = 0 if offset < 0
|
34
|
+
log_coloured spaces, "#{'-'*message.length}", color(:total_line)
|
35
|
+
log_coloured spaces + "#{' ' * (offset)}", tps, color(:total_count)
|
36
|
+
puts "\n"
|
35
37
|
end
|
36
38
|
|
37
39
|
private
|
@@ -106,7 +108,7 @@ module Cutter
|
|
106
108
|
message = messages[lbl] || lbl.to_s.humanize
|
107
109
|
time_passed = time_now - time_initial
|
108
110
|
print " " * nindent
|
109
|
-
printf("
|
111
|
+
printf("stamp: %7d ms #{message}\n", time_passed)
|
110
112
|
end
|
111
113
|
|
112
114
|
module ClassMethods
|
@@ -151,5 +153,5 @@ module Cutter
|
|
151
153
|
end
|
152
154
|
end
|
153
155
|
|
154
|
-
Cutter::Stamper.scope :default =>
|
156
|
+
Cutter::Stamper.scope :default => "no name" do |default|
|
155
157
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: cutter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.8.
|
5
|
+
version: 0.8.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- stanislaw
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-08-
|
13
|
+
date: 2011-08-09 00:00:00 +03:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -100,7 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
hash: -
|
103
|
+
hash: -202257491
|
104
104
|
segments:
|
105
105
|
- 0
|
106
106
|
version: "0"
|