terminal 0.3.5 → 0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Gem Version](https://badge.fury.io/rb/terminal.png)](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
|