termcolor 0.2.6 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,18 +7,14 @@ require 'rexml/parsers/baseparser'
7
7
  require 'rexml/streamlistener'
8
8
 
9
9
  module TermColor
10
- VERSION = '0.2.6'
10
+ VERSION = '0.3.0'
11
11
  include REXML
12
12
 
13
- class ParseError < StandardError; end
14
-
15
13
  class << self
16
14
  def parse(text)
17
15
  listener = MyListener.new
18
16
  REXML::Parsers::StreamParser.new(text, listener).parse
19
17
  listener.result
20
- rescue REXML::ParseException => e
21
- raise ParseError, e
22
18
  end
23
19
 
24
20
  def escape(text)
@@ -44,6 +40,10 @@ module TermColor
44
40
  end
45
41
  end
46
42
  end
43
+
44
+ def prepare_parse(text)
45
+ text.gsub(/<(\/?)(\d+)>/, '<\1_\2>')
46
+ end
47
47
  end
48
48
 
49
49
  class MyListener
@@ -78,8 +78,8 @@ module TermColor
78
78
  begin
79
79
  esc_seq = HighLine.const_get(name.upcase)
80
80
  rescue NameError
81
- if name =~ /^\d+$/
82
- esc_seq = "\e[#{name}m"
81
+ if name =~ /^[^0-9]?(\d+)$/
82
+ esc_seq = "\e[#{$1}m"
83
83
  end
84
84
  end
85
85
  esc_seq
@@ -31,8 +31,8 @@ module TermColor
31
31
  end
32
32
 
33
33
  it 'should raise Error' do
34
- lambda{ TermColor.parse('aaaaa<red>aaaaa</blue>aaaaa') }.should raise_error(TermColor::ParseError)
35
- lambda{ TermColor.parse('aaaaa<red>aaaaaaaaaa') }.should_not raise_error(TermColor::ParseError)
34
+ lambda{ TermColor.parse('aaaaa<red>aaaaa</blue>aaaaa') }.should raise_error(REXML::ParseException)
35
+ lambda{ TermColor.parse('aaaaa<red>aaaaaaaaaa') }.should_not raise_error(REXML::ParseException)
36
36
  end
37
37
 
38
38
  it 'should escape text' do
@@ -43,6 +43,11 @@ module TermColor
43
43
  TermColor.unescape("&lt;&gt;&amp;&quote;&apos;").should == '<>&"\''
44
44
  end
45
45
 
46
+ it 'should prepare parse' do
47
+ TermColor.prepare_parse("<10>10</10>").should == '<_10>10</_10>'
48
+ TermColor.prepare_parse("<32>10</32>").should == '<_32>10</_32>'
49
+ end
50
+
46
51
  it 'should convert to escape sequence' do
47
52
  listener = TermColor::MyListener.new
48
53
  listener.to_esc_seq('red').should == "\e[31m"
@@ -51,6 +56,8 @@ module TermColor
51
56
  listener.to_esc_seq('0').should == "\e[0m"
52
57
  listener.to_esc_seq('31').should == "\e[31m"
53
58
  listener.to_esc_seq('031').should == "\e[031m"
59
+ listener.to_esc_seq('_0').should == "\e[0m"
60
+ listener.to_esc_seq('_31').should == "\e[31m"
54
61
  end
55
62
  end
56
63
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: termcolor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - jugyo