indented_io 0.8.1 → 0.8.6
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/.ruby-version +1 -1
- data/README.md +1 -1
- data/TODO +2 -0
- data/indented_io.gemspec +1 -1
- data/lib/indented_io.rb +1 -0
- data/lib/indented_io/indented_io.rb +6 -6
- data/lib/indented_io/indented_io_interface.rb +2 -1
- data/lib/indented_io/kernel.rb +1 -1
- data/lib/indented_io/stringio.rb +1 -0
- data/lib/indented_io/tempfile.rb +14 -0
- data/lib/indented_io/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cfc1de7e7ffda4d1fa37cd2979367b91b105cc43bc83a18d67816d14c3abd334
|
4
|
+
data.tar.gz: b54b5d64a8af0ca25cb333a2aa94599fba21be53063bd8fe1953d48bb8e4e3c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84b4b34e808dd75d2fbf8d6c2e581448352d0c4d1c0f4bcf363b43e4b3b550a7619d80418fde9a5e8968e97b8c973b73ec9bb391b25c7967454061c9b39e824a
|
7
|
+
data.tar.gz: f9041fd50c2f791c95b896e34b61b22050d792c938e83af9b89d48c81fb3e49b56d60b012d32c7cbdbc70a4e43d6e50ad651b7a12e13777da7178ab59cd01895
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.
|
1
|
+
ruby-2.7.1
|
data/README.md
CHANGED
data/TODO
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
|
2
2
|
TODO
|
3
|
+
o Find a solution for the inclusion of StringIO and Tempfile (the last is
|
4
|
+
required by ruby 2.7 - see also note in lib/indented_io/tempfile.rb
|
3
5
|
o Check if IO object is writable - no good solution ?
|
4
6
|
o better name for @this_indent ? 'string' ?
|
5
7
|
o Reimplement core loop in C
|
data/indented_io.gemspec
CHANGED
@@ -37,6 +37,6 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.require_paths = ["lib"]
|
38
38
|
|
39
39
|
spec.add_development_dependency "bundler", "~> 1.16"
|
40
|
-
spec.add_development_dependency "rake", "
|
40
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
41
41
|
spec.add_development_dependency "rspec", "~> 3.0"
|
42
42
|
end
|
data/lib/indented_io.rb
CHANGED
@@ -6,6 +6,7 @@ require 'indented_io/indented_io_interface'
|
|
6
6
|
require 'indented_io/kernel'
|
7
7
|
require 'indented_io/io'
|
8
8
|
require 'indented_io/stringio'
|
9
|
+
require 'indented_io/tempfile'
|
9
10
|
|
10
11
|
# IndentedIO module. See {IndentedIO::IndentedIO} for documentation on how to
|
11
12
|
# use this module
|
@@ -53,8 +53,8 @@ module IndentedIO
|
|
53
53
|
end
|
54
54
|
|
55
55
|
# Indent and print args to the underlying device. #p has the same semantic
|
56
|
-
# as Kernel#p. Please note that #p is
|
57
|
-
#
|
56
|
+
# as Kernel#p. Please note that #p is only defined on Kernel in the Ruby core
|
57
|
+
# library but can be used on any IndentedIO object
|
58
58
|
def p(*args)
|
59
59
|
if bol
|
60
60
|
args.each { |arg| write(arg.inspect, "\n") }
|
@@ -68,8 +68,8 @@ module IndentedIO
|
|
68
68
|
|
69
69
|
# Make IndentedIO behave like the underlying @device
|
70
70
|
# @!visibility private
|
71
|
-
def respond_to?(method)
|
72
|
-
[:indent, :level, :print, :puts, :p].include?(method) || device.respond_to?(method)
|
71
|
+
def respond_to?(method, include_all = false)
|
72
|
+
[:indent, :level, :print, :printf, :puts, :p].include?(method) || device.respond_to?(method)
|
73
73
|
end
|
74
74
|
|
75
75
|
# Make IndentedIO behave like the underlying @device
|
@@ -85,8 +85,8 @@ module IndentedIO
|
|
85
85
|
attr_reader :device
|
86
86
|
|
87
87
|
# First IndentedIO object on the stack. Equal to self if self is the first
|
88
|
-
# indentation object. #base is used to keep track of #bol for
|
89
|
-
# stack of IndentedIO objects
|
88
|
+
# indentation object. The #base object is used to keep track of #bol for
|
89
|
+
# the whole stack of IndentedIO objects
|
90
90
|
attr_reader :base
|
91
91
|
|
92
92
|
# Parent IndentedIO or IO object
|
@@ -4,6 +4,7 @@ module IndentedIO
|
|
4
4
|
# #write method like this:
|
5
5
|
#
|
6
6
|
# require 'indented_io'
|
7
|
+
#
|
7
8
|
# class MyIO
|
8
9
|
# include IndentedIO::IndentedIOInterface
|
9
10
|
# def write(*args) ... end
|
@@ -18,7 +19,7 @@ module IndentedIO
|
|
18
19
|
#
|
19
20
|
module IndentedIOInterface
|
20
21
|
# Returns a IndentedIO object that can be used for printing. The IO object
|
21
|
-
# will pass-through all
|
22
|
+
# will pass-through all methods to the underlying device except #print,
|
22
23
|
# #printf, #puts, and #p
|
23
24
|
#
|
24
25
|
# +level+ is the number of leves to indent and +string+ is the string used
|
data/lib/indented_io/kernel.rb
CHANGED
@@ -3,7 +3,7 @@ require 'indented_io/indented_io_interface'
|
|
3
3
|
module Kernel
|
4
4
|
# Like {IndentedIO::IndentedIOInterface#indent} except the underlying device is
|
5
5
|
# not the receiver (Kernel) but $stdout. Kernel#indent also allows a block without
|
6
|
-
#
|
6
|
+
# an argument. In that case it manipulates $stdout to print indented:
|
7
7
|
#
|
8
8
|
# puts "Not indented
|
9
9
|
# indent do
|
data/lib/indented_io/stringio.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'indented_io/indented_io_interface'
|
2
|
+
|
3
|
+
require "tempfile"
|
4
|
+
|
5
|
+
# Includes the IndentedIOInterface that define the #indent method
|
6
|
+
#
|
7
|
+
# Note that Tempfile used to be a (kind of) IO but that changed in ruby-2.7.
|
8
|
+
# The problem is that we now have to require both StringIO and Tempfile and
|
9
|
+
# possible other classes to inject the #indent method instead of just doing it
|
10
|
+
# once in the IO class itself. TODO: Find a better solution - probably by
|
11
|
+
# implementing a check in Kernel
|
12
|
+
class Tempfile
|
13
|
+
include IndentedIO::IndentedIOInterface
|
14
|
+
end
|
data/lib/indented_io/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: indented_io
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claus Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 12.3.3
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 12.3.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,6 +82,7 @@ files:
|
|
82
82
|
- lib/indented_io/io.rb
|
83
83
|
- lib/indented_io/kernel.rb
|
84
84
|
- lib/indented_io/stringio.rb
|
85
|
+
- lib/indented_io/tempfile.rb
|
85
86
|
- lib/indented_io/version.rb
|
86
87
|
- scripts/perf.rb
|
87
88
|
homepage: https://github.com/clrgit/indented_io
|
@@ -104,8 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
105
|
- !ruby/object:Gem::Version
|
105
106
|
version: '0'
|
106
107
|
requirements: []
|
107
|
-
|
108
|
-
rubygems_version: 2.7.3
|
108
|
+
rubygems_version: 3.1.4
|
109
109
|
signing_key:
|
110
110
|
specification_version: 4
|
111
111
|
summary: Print indented text
|