pp 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pp.rb +41 -30
- data/pp.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f66fc26d251e735dab9c7dcc24cbd90ec1616ac358535379358242dea131e5e
|
4
|
+
data.tar.gz: a04b828096786c7d6de187bcacda6fdb7a3bf246b7dab7399347039feb9dedac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2b9327741655b4fa03bf3cd2d32113022b4164fdd48608cafdd3abe5b80e394d0fb8b3ebe2acb7818c60d68103ba5cb0900ba9e20d988baac3e311bb8424ace
|
7
|
+
data.tar.gz: 6bceee1000233e7083f9e3e87aeba7bf28a257acc48a453e88d928bffe0180f65af0c3e70a636dfc9e33e1307c51831a03182308f2f18d51f0d10d53a79bfc9c
|
data/lib/pp.rb
CHANGED
@@ -61,6 +61,15 @@ require 'prettyprint'
|
|
61
61
|
# Tanaka Akira <akr@fsij.org>
|
62
62
|
|
63
63
|
class PP < PrettyPrint
|
64
|
+
def PP.width_for(out)
|
65
|
+
begin
|
66
|
+
require 'io/console'
|
67
|
+
_, width = out.winsize
|
68
|
+
rescue LoadError, NoMethodError, SystemCallError
|
69
|
+
end
|
70
|
+
(width || ENV['COLUMNS']&.to_i&.nonzero? || 80) - 1
|
71
|
+
end
|
72
|
+
|
64
73
|
# Outputs +obj+ to +out+ in pretty printed format of
|
65
74
|
# +width+ columns in width.
|
66
75
|
#
|
@@ -68,7 +77,7 @@ class PP < PrettyPrint
|
|
68
77
|
# If +width+ is omitted, 79 is assumed.
|
69
78
|
#
|
70
79
|
# PP.pp returns +out+.
|
71
|
-
def PP.pp(obj, out=$>, width=
|
80
|
+
def PP.pp(obj, out=$>, width=width_for(out))
|
72
81
|
q = PP.new(out, width)
|
73
82
|
q.guard_inspect_key {q.pp obj}
|
74
83
|
q.flush
|
@@ -424,7 +433,7 @@ end
|
|
424
433
|
class File < IO # :nodoc:
|
425
434
|
class Stat # :nodoc:
|
426
435
|
def pretty_print(q) # :nodoc:
|
427
|
-
require 'etc
|
436
|
+
require 'etc'
|
428
437
|
q.object_group(self) {
|
429
438
|
q.breakable
|
430
439
|
q.text sprintf("dev=0x%x", self.dev); q.comma_breakable
|
@@ -530,37 +539,39 @@ class MatchData # :nodoc:
|
|
530
539
|
end
|
531
540
|
end
|
532
541
|
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
q.
|
542
|
-
|
542
|
+
if defined?(RubyVM::AbstractSyntaxTree)
|
543
|
+
class RubyVM::AbstractSyntaxTree::Node
|
544
|
+
def pretty_print_children(q, names = [])
|
545
|
+
children.zip(names) do |c, n|
|
546
|
+
if n
|
547
|
+
q.breakable
|
548
|
+
q.text "#{n}:"
|
549
|
+
end
|
550
|
+
q.group(2) do
|
551
|
+
q.breakable
|
552
|
+
q.pp c
|
553
|
+
end
|
543
554
|
end
|
544
555
|
end
|
545
|
-
end
|
546
556
|
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
557
|
+
def pretty_print(q)
|
558
|
+
q.group(1, "(#{type}@#{first_lineno}:#{first_column}-#{last_lineno}:#{last_column}", ")") {
|
559
|
+
case type
|
560
|
+
when :SCOPE
|
561
|
+
pretty_print_children(q, %w"tbl args body")
|
562
|
+
when :ARGS
|
563
|
+
pretty_print_children(q, %w[pre_num pre_init opt first_post post_num post_init rest kw kwrest block])
|
564
|
+
when :DEFN
|
565
|
+
pretty_print_children(q, %w[mid body])
|
566
|
+
when :ARYPTN
|
567
|
+
pretty_print_children(q, %w[const pre rest post])
|
568
|
+
when :HSHPTN
|
569
|
+
pretty_print_children(q, %w[const kw kwrest])
|
570
|
+
else
|
571
|
+
pretty_print_children(q)
|
572
|
+
end
|
573
|
+
}
|
574
|
+
end
|
564
575
|
end
|
565
576
|
end
|
566
577
|
|
data/pp.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tanaka Akira
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prettyprint
|