terminal 0.3.5 → 0.4
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/Gemfile.lock +14 -14
- data/Readme.md +1 -1
- data/lib/terminal/renderer.rb +3 -19
- data/lib/terminal/version.rb +1 -1
- data/spec/terminal/renderer_spec.rb +3 -2
- data/terminal.gemspec +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b9d146db6ddf99debcf30b8c90b7374ad22ba69
|
4
|
+
data.tar.gz: 1a99c056dd3342b9af2f3bd773b9eb175593980a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 000d39ecd8c3874e5981dbd0316fca235313155dcd2bc6afc39043bc45f383f34d5fa2cc9b8bddf0aa28ef843da913cc0984610b5c728d457a05fafb88b9dacd
|
7
|
+
data.tar.gz: d46da70bd4e22cdbcca0f9f352f78d10680e48579270424dc6a1b08ca04bfdad2368fc71b55757885bda3acb4a219258c37afad1b5f55e54625991a27e08a287
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
terminal (0.
|
4
|
+
terminal (0.4)
|
5
5
|
escape_utils (~> 1.0)
|
6
|
-
gemoji (~> 2.
|
6
|
+
gemoji (~> 2.1)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
@@ -11,23 +11,23 @@ GEM
|
|
11
11
|
benchmark-ips (2.0.0)
|
12
12
|
diff-lcs (1.2.5)
|
13
13
|
escape_utils (1.0.1)
|
14
|
-
gemoji (2.
|
14
|
+
gemoji (2.1.0)
|
15
15
|
hirb (0.7.2)
|
16
16
|
method_profiler (2.0.1)
|
17
17
|
hirb (>= 0.6.0)
|
18
18
|
rake (10.3.2)
|
19
|
-
rspec (3.
|
20
|
-
rspec-core (~> 3.
|
21
|
-
rspec-expectations (~> 3.
|
22
|
-
rspec-mocks (~> 3.
|
23
|
-
rspec-core (3.
|
24
|
-
rspec-support (~> 3.
|
25
|
-
rspec-expectations (3.
|
19
|
+
rspec (3.1.0)
|
20
|
+
rspec-core (~> 3.1.0)
|
21
|
+
rspec-expectations (~> 3.1.0)
|
22
|
+
rspec-mocks (~> 3.1.0)
|
23
|
+
rspec-core (3.1.7)
|
24
|
+
rspec-support (~> 3.1.0)
|
25
|
+
rspec-expectations (3.1.2)
|
26
26
|
diff-lcs (>= 1.2.0, < 2.0)
|
27
|
-
rspec-support (~> 3.
|
28
|
-
rspec-mocks (3.
|
29
|
-
rspec-support (~> 3.
|
30
|
-
rspec-support (3.
|
27
|
+
rspec-support (~> 3.1.0)
|
28
|
+
rspec-mocks (3.1.3)
|
29
|
+
rspec-support (~> 3.1.0)
|
30
|
+
rspec-support (3.1.2)
|
31
31
|
|
32
32
|
PLATFORMS
|
33
33
|
ruby
|
data/Readme.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[](https://rubygems.org/gems/terminal)
|
4
4
|
|
5
|
-
Terminal is a Ruby library for converting arbitrary shell output (with ANSI) into beautifully rendered HTML. See http://
|
5
|
+
Terminal is a Ruby library for converting arbitrary shell output (with ANSI) into beautifully rendered HTML. See http://en.wikipedia.org/wiki/ANSI_escape_code for more information about ANSI Terminal Control Escape Sequences.
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
data/lib/terminal/renderer.rb
CHANGED
@@ -31,8 +31,8 @@ module Terminal
|
|
31
31
|
# up directly.
|
32
32
|
output = @output.to_s.dup
|
33
33
|
|
34
|
-
|
35
|
-
output =
|
34
|
+
# Don't allow parsing of outputs longer than 4 meg
|
35
|
+
output = check_and_chomp_length(output)
|
36
36
|
|
37
37
|
# Force encoding on the output first
|
38
38
|
force_encoding!(output)
|
@@ -57,7 +57,7 @@ module Terminal
|
|
57
57
|
|
58
58
|
private
|
59
59
|
|
60
|
-
def
|
60
|
+
def check_and_chomp_length(output)
|
61
61
|
# Limit the entire size of the output to 4 meg
|
62
62
|
max_total_size = 4 * MEGABYTES
|
63
63
|
if output.bytesize > max_total_size
|
@@ -69,20 +69,6 @@ module Terminal
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
-
def check_line_lengths(output)
|
73
|
-
# Limit each line to (x) chars
|
74
|
-
# TODO: Move this to the screen
|
75
|
-
max_line_length = 50_000
|
76
|
-
output.split("\n".freeze).map do |line|
|
77
|
-
if line.length > max_line_length
|
78
|
-
line = line[0..max_line_length]
|
79
|
-
line << " Warning: Terminal has chopped the rest of this line off as it's over the allowed #{max_line_length} characters per line limit."
|
80
|
-
else
|
81
|
-
line
|
82
|
-
end
|
83
|
-
end.join("\n".freeze)
|
84
|
-
end
|
85
|
-
|
86
72
|
def force_encoding!(string)
|
87
73
|
string.force_encoding('UTF-8')
|
88
74
|
|
@@ -189,8 +175,6 @@ module Terminal
|
|
189
175
|
else
|
190
176
|
unicode
|
191
177
|
end
|
192
|
-
rescue
|
193
|
-
unicode
|
194
178
|
end
|
195
179
|
end
|
196
180
|
end
|
data/lib/terminal/version.rb
CHANGED
@@ -21,9 +21,10 @@ describe Terminal::Renderer do
|
|
21
21
|
|
22
22
|
describe "#render" do
|
23
23
|
it "chops off logs longer than 4 megabytes" do
|
24
|
-
long_string = "x" *
|
24
|
+
long_string = "x" * 5 * 1024 * 1024
|
25
|
+
last_part_of_long_string = render(long_string).split("").last(1000).join("")
|
25
26
|
|
26
|
-
expect(
|
27
|
+
expect(last_part_of_long_string).to end_with("Warning: Terminal has chopped off the rest of the build as it's over the allowed 4 megabyte limit for logs.")
|
27
28
|
end
|
28
29
|
|
29
30
|
it "closes colors that get opened" do
|
data/terminal.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "escape_utils", "~> 1.0"
|
22
|
-
spec.add_dependency "gemoji", "~> 2.
|
22
|
+
spec.add_dependency "gemoji", "~> 2.1"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.6"
|
25
25
|
spec.add_development_dependency "rake"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terminal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.4'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Keith Pitt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: escape_utils
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '2.
|
33
|
+
version: '2.1'
|
34
34
|
type: :runtime
|
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: '2.
|
40
|
+
version: '2.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -175,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
175
|
version: '0'
|
176
176
|
requirements: []
|
177
177
|
rubyforge_project:
|
178
|
-
rubygems_version: 2.
|
178
|
+
rubygems_version: 2.2.2
|
179
179
|
signing_key:
|
180
180
|
specification_version: 4
|
181
181
|
summary: Converts ANSI to HTML
|