pretty_debug 0.0.1 → 0.0.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pretty_debug.rb +19 -9
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 63d046bb64c02a4934a7552366ac1bbda9b7eb48
4
- data.tar.gz: 7234ce3741b46d5330503d39eaa1d420c48af558
3
+ metadata.gz: e2fe360709694df770ac9816f66844019aac01f0
4
+ data.tar.gz: db2adaf54e01f67d0eb2857d448e50b172c5dd76
5
5
  SHA512:
6
- metadata.gz: 4fd77aec4709afb9dd87655766060311bcac256881b76bbcd4f352e1b0ac934d010d00d6d0629ccc42a4a84855316aba9266b92e6b305b4bdbebeee42a0eeb3f
7
- data.tar.gz: 53fc2eda6b9662257774bd1af2b4958b6bcbabe9f530fbd4a905126370db7e5a96f4204a01826cc49f907961d2c8bbbec56346df7f996c5740b559b6a57e127a
6
+ metadata.gz: a797553c4bf4461cb48fe93b7df4f30a5294269523ceff8a51c8dc698a0564afb014d6ae2fd9fc4fdb11ddef7e092a0dfa777982dde59a0f2833c28025bfac3b
7
+ data.tar.gz: 5a2d10201561d368334e74e614ce0235c1fde0e8da626aeed8bb1b47934684052987588a90802d56beeb735dd9abd2c3a8e004ed83d83cb727683d5d66d9786d
data/lib/pretty_debug.rb CHANGED
@@ -5,14 +5,10 @@ require "ruby-prof"
5
5
  module Kernel
6
6
  at_exit do
7
7
  case $!
8
- when SystemStackError
9
- puts PrettyDebug.mesage
10
- ##TODO Parse the backtrace and attempt to extract a call cycle.
11
- # PrettyDebug.clean($@)
12
8
  when nil, SystemExit, Interrupt
13
9
  else
14
10
  puts PrettyDebug.message
15
- puts PrettyDebug.clean($@).align(":").map(&:indent)
11
+ puts PrettyDebug.clean($@).align(":")
16
12
  end
17
13
  $stderr.reopen(IO::NULL)
18
14
  $stdout.reopen(IO::NULL)
@@ -26,6 +22,10 @@ class Object
26
22
  def case? *kases; kases.any?{|kase| kase === self} end
27
23
  end
28
24
 
25
+ class Module
26
+ def basename; to_s.split("::").last end
27
+ end
28
+
29
29
  class Array
30
30
  def compatible? other
31
31
  other.case?(Array) and
@@ -39,6 +39,16 @@ class Hash
39
39
  other.size == size and
40
40
  other.keys.all?{|k| key?(k)}
41
41
  end
42
+ def ltsv *args
43
+ if args.empty? then
44
+ map{|k, v| "#{k}:#{v.to_s.tr("\t", " ")}"} else
45
+ args.map{|k| "#{k}:#{self[k].to_s.tr("\t", " ")}"}
46
+ end.join("\t")
47
+ end
48
+ end
49
+ class String
50
+ def terminal_escape; "\"#{self}\"" end
51
+ def parse_ltsv; Hash[chomp.split("\t").map{|f| f.split(":", 2)}] end
42
52
  end
43
53
 
44
54
  class PrettyDebug
@@ -79,7 +89,7 @@ class Object
79
89
  tap{|x| puts "[Debug] #{caller[2][/.*?:\d+/]}:".color(:yellow); pr ? pr.call(x) : p(x)}
80
90
  end
81
91
  def forwardtrace sym
82
- tap{puts "#{inspect}##{sym} defined at:", method(sym).source_location.join(":").indent}
92
+ tap{puts "#{inspect}##{sym} defined at:", method(sym).source_location.join(":")}
83
93
  end
84
94
  def follow m; tap{puts "Next step: #{method(m).source_location
85
95
  .chain{|a| a ? a.join(":") : "Unknown #{self}.#{m}"}
@@ -140,7 +150,7 @@ end
140
150
  class Hash
141
151
  KeyLengthMax = 30
142
152
  def inspect
143
- keys = self.keys.map{|k| k.inspect.utf8}
153
+ keys = self.keys.map(&:inspect)
144
154
  # When `self == empty?`, `...max` becomes `nil`. `to_i` turns it to `0`.
145
155
  w = keys.map(&:length).max.to_i.at_most(KeyLengthMax)
146
156
  [keys, values].parallel{|k, v| "#{k.ljust(w)} => #{v.inspect}"}
@@ -164,11 +174,11 @@ module Test
164
174
  puts "#{title}. Succeeded (#{"%.2e" % t.till_now} secs)".color(:green)
165
175
  else
166
176
  puts "#{title}. Failed".color(:red),
167
- *(testee_refer.map{|o| o.inspect.indent.color(:red)} unless testee_refer.empty?)
177
+ *(testee_refer.map{|o| o.inspect.color(:red)} unless testee_refer.empty?)
168
178
  end
169
179
  rescue Exception
170
180
  puts "#{title} ... Test Error".color(:red),
171
- [$!.message, *PrettyDebug.clean($@).align(":")].map{|l| l.indent.color(:red)}
181
+ [$!.message, *PrettyDebug.clean($@).align(":")].map{|l| l.color(:red)}
172
182
  end
173
183
  end
174
184
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pretty_debug
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - sawa