bcat 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/bcat.gemspec +2 -2
- data/lib/bcat.rb +1 -1
- data/lib/bcat/ansi.rb +6 -2
- data/test/test_bcat_ansi.rb +6 -0
- metadata +4 -11
data/bcat.gemspec
CHANGED
data/lib/bcat.rb
CHANGED
data/lib/bcat/ansi.rb
CHANGED
@@ -112,6 +112,9 @@ class Bcat
|
|
112
112
|
when 90..97 ; yield push_style("ef#{8 + code - 90}")
|
113
113
|
when 100..107 ; yield push_style("eb#{8 + code - 100}")
|
114
114
|
end
|
115
|
+
when :xterm256
|
116
|
+
code = data
|
117
|
+
yield push_style("ef#{code}")
|
115
118
|
end
|
116
119
|
end
|
117
120
|
end
|
@@ -143,6 +146,8 @@ class Bcat
|
|
143
146
|
# characters to remove completely
|
144
147
|
[/\A\x08+/, lambda { |m| '' }],
|
145
148
|
|
149
|
+
[/\A\x1b\[38;5;(\d+)m/, lambda { |m| yield :xterm256, $1.to_i; '' } ],
|
150
|
+
|
146
151
|
# ansi escape sequences that mess with the display
|
147
152
|
[/\A\x1b\[((?:\d{1,3};?)+|)m/, lambda { |m|
|
148
153
|
m = '0' if m.strip.empty?
|
@@ -159,8 +164,7 @@ class Bcat
|
|
159
164
|
|
160
165
|
while (size = text.size) > 0
|
161
166
|
tokens.each do |pattern, sub|
|
162
|
-
|
163
|
-
end
|
167
|
+
break if text.sub!(pattern) { sub.call($1) }
|
164
168
|
end
|
165
169
|
break if text.size == size
|
166
170
|
end
|
data/test/test_bcat_ansi.rb
CHANGED
@@ -118,4 +118,10 @@ class ANSITest < Test::Unit::TestCase
|
|
118
118
|
expect = "oops forgot the 'm'"
|
119
119
|
assert_equal expect, Bcat::ANSI.new(text).to_html
|
120
120
|
end
|
121
|
+
|
122
|
+
test "xterm-256" do
|
123
|
+
text = "\x1b[38;5;196mhello"
|
124
|
+
expect = "<span style='color:#ff0000'>hello</span>"
|
125
|
+
assert_equal expect, Bcat::ANSI.new(text).to_html
|
126
|
+
end
|
121
127
|
end
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bcat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 5
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
8
|
+
- 2
|
9
|
+
version: 0.6.2
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Ryan Tomayko
|
@@ -15,18 +14,16 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2011-
|
17
|
+
date: 2011-09-10 00:00:00 -07:00
|
19
18
|
default_executable: bcat
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
21
|
name: rack
|
23
22
|
prerelease: false
|
24
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
24
|
requirements:
|
27
25
|
- - ~>
|
28
26
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 15
|
30
27
|
segments:
|
31
28
|
- 1
|
32
29
|
- 0
|
@@ -84,27 +81,23 @@ rdoc_options:
|
|
84
81
|
require_paths:
|
85
82
|
- lib
|
86
83
|
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
84
|
requirements:
|
89
85
|
- - ">="
|
90
86
|
- !ruby/object:Gem::Version
|
91
|
-
hash: 3
|
92
87
|
segments:
|
93
88
|
- 0
|
94
89
|
version: "0"
|
95
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
-
none: false
|
97
91
|
requirements:
|
98
92
|
- - ">="
|
99
93
|
- !ruby/object:Gem::Version
|
100
|
-
hash: 3
|
101
94
|
segments:
|
102
95
|
- 0
|
103
96
|
version: "0"
|
104
97
|
requirements: []
|
105
98
|
|
106
99
|
rubyforge_project:
|
107
|
-
rubygems_version: 1.3.
|
100
|
+
rubygems_version: 1.3.6
|
108
101
|
signing_key:
|
109
102
|
specification_version: 3
|
110
103
|
summary: Concatenate input from standard input, or one or more files, and write progressive output to a browser.
|