pp 0.3.0 → 0.4.0
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.
- checksums.yaml +4 -4
- data/lib/pp.rb +32 -1
- data/pp.gemspec +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d57757b241b923f8c7ebf7653855a01231720617dfb2ff9588c724a4968e698
|
4
|
+
data.tar.gz: 426b5c5d3132ac1aeea3e96cd5870c72ed5f730cc244a0b9139a46681c42c278
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83e186173cf60aa175b3beee1bd4d8befd5b54743ab6c08c31d3088907f0a7ba84dfb2e97a91937db45346e8831b7152cb5c85127c83cb6787a997418bbaf98b
|
7
|
+
data.tar.gz: bc302f420467a0dc34e65bccd003bc979c8a5cf69005b34ed8140d687bfc73008a2f6f76bfc4b747b530ba43a799ceabea2b7eaa0ba7e56dfad05c7448d9c7bc
|
data/lib/pp.rb
CHANGED
@@ -61,6 +61,16 @@ require 'prettyprint'
|
|
61
61
|
# Tanaka Akira <akr@fsij.org>
|
62
62
|
|
63
63
|
class PP < PrettyPrint
|
64
|
+
# Returns the usable width for +out+.
|
65
|
+
# As the width of +out+:
|
66
|
+
# 1. If +out+ is assigned to a tty device, its width is used.
|
67
|
+
# 2. Otherwise, or it could not get the value, the +COLUMN+
|
68
|
+
# environment variable is assumed to be set to the width.
|
69
|
+
# 3. If +COLUMN+ is not set to a non-zero number, 80 is assumed.
|
70
|
+
#
|
71
|
+
# And finally, returns the above width value - 1.
|
72
|
+
# * This -1 is for Windows command prompt, which moves the cursor to
|
73
|
+
# the next line if it reaches the last column.
|
64
74
|
def PP.width_for(out)
|
65
75
|
begin
|
66
76
|
require 'io/console'
|
@@ -74,7 +84,8 @@ class PP < PrettyPrint
|
|
74
84
|
# +width+ columns in width.
|
75
85
|
#
|
76
86
|
# If +out+ is omitted, <code>$></code> is assumed.
|
77
|
-
# If +width+ is omitted,
|
87
|
+
# If +width+ is omitted, the width of +out+ is assumed (see
|
88
|
+
# width_for).
|
78
89
|
#
|
79
90
|
# PP.pp returns +out+.
|
80
91
|
def PP.pp(obj, out=$>, width=width_for(out))
|
@@ -405,6 +416,26 @@ class Struct # :nodoc:
|
|
405
416
|
end
|
406
417
|
end
|
407
418
|
|
419
|
+
class Data # :nodoc:
|
420
|
+
def pretty_print(q) # :nodoc:
|
421
|
+
q.group(1, sprintf("#<data %s", PP.mcall(self, Kernel, :class).name), '>') {
|
422
|
+
q.seplist(PP.mcall(self, Data, :members), lambda { q.text "," }) {|member|
|
423
|
+
q.breakable
|
424
|
+
q.text member.to_s
|
425
|
+
q.text '='
|
426
|
+
q.group(1) {
|
427
|
+
q.breakable ''
|
428
|
+
q.pp public_send(member)
|
429
|
+
}
|
430
|
+
}
|
431
|
+
}
|
432
|
+
end
|
433
|
+
|
434
|
+
def pretty_print_cycle(q) # :nodoc:
|
435
|
+
q.text sprintf("#<data %s:...>", PP.mcall(self, Kernel, :class).name)
|
436
|
+
end
|
437
|
+
end if "3.2" <= RUBY_VERSION
|
438
|
+
|
408
439
|
class Range # :nodoc:
|
409
440
|
def pretty_print(q) # :nodoc:
|
410
441
|
q.pp self.begin
|
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.4.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:
|
11
|
+
date: 2022-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prettyprint
|
@@ -56,7 +56,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
56
56
|
- !ruby/object:Gem::Version
|
57
57
|
version: '0'
|
58
58
|
requirements: []
|
59
|
-
rubygems_version: 3.
|
59
|
+
rubygems_version: 3.4.0.dev
|
60
60
|
signing_key:
|
61
61
|
specification_version: 4
|
62
62
|
summary: Provides a PrettyPrinter for Ruby objects
|