ansi 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -164,7 +164,7 @@ apply, that proxy's public statement of acceptance of any version is
164
164
  permanent authorization for you to choose that version for the
165
165
  Library.
166
166
 
167
- -----------------------------------------------------------------------
167
+ ----
168
168
 
169
169
  = GNU GENERAL PUBLIC LICENSE
170
170
 
data/MANIFEST CHANGED
@@ -1,23 +1,21 @@
1
- HISTORY
2
- LICENSE
3
- MANIFEST
4
- README
1
+ #!mast bin demo lib meta test [A-Z]*
5
2
  demo
6
3
  demo/logger.rd
7
4
  demo/progressbar.rd
8
5
  lib
9
6
  lib/ansi
10
- lib/ansi.rb
7
+ lib/ansi/bbcode.rb
11
8
  lib/ansi/code.rb
12
9
  lib/ansi/logger.rb
13
10
  lib/ansi/progressbar.rb
14
11
  lib/ansi/string.rb
15
12
  lib/ansi/terminal
16
- lib/ansi/terminal.rb
17
13
  lib/ansi/terminal/curses.rb
18
14
  lib/ansi/terminal/stty.rb
19
15
  lib/ansi/terminal/termios.rb
20
16
  lib/ansi/terminal/win32.rb
17
+ lib/ansi/terminal.rb
18
+ lib/ansi.rb
21
19
  meta
22
20
  meta/abstract
23
21
  meta/authors
@@ -34,4 +32,8 @@ meta/title
34
32
  meta/version
35
33
  test
36
34
  test/test_ansicode.rb
37
- test/test_progressbar.rb
35
+ test/test_bbcode.rb
36
+ test/test_progressbar.rb
37
+ README
38
+ HISTORY
39
+ COPYING
data/README CHANGED
@@ -1,7 +1,7 @@
1
1
  = ANSI
2
2
 
3
- * http://death.rubyforge.org
4
- * http://death.rubyforge.org/ansi
3
+ * http://rubyworks.github.com/ansi
4
+ * http://github.com/rubyworks/ansi
5
5
 
6
6
 
7
7
  == DESCRIPTION
@@ -0,0 +1,339 @@
1
+ # = BBCode
2
+ #
3
+ # Copyright (c) 2002 Thomas-Ivo Heinen
4
+ #
5
+ # This module is free software. You may use, modify, and/or redistribute this
6
+ # software under the same terms as Ruby.
7
+ #
8
+ # This program is distributed in the hope that it will be useful, but WITHOUT
9
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10
+ # FOR A PARTICULAR PURPOSE.
11
+
12
+ module ANSI
13
+
14
+ # = BBCode
15
+ #
16
+ # The BBCode module helps ease the separation of core and frontend with the
17
+ # core (or submodules) being still able to say, what colors shall be used
18
+ # in it's responses. This is achieved by encoding formatting information
19
+ # using the BBCode tokens. This enables you to "pipe" layout information
20
+ # such as colors, style, fonttype, size and alignment through the core to
21
+ # the frontend.
22
+ #
23
+ # Additionally it converts markups/codes between ANSI, HTML and BBCode
24
+ # almost freely ;)
25
+ #
26
+ # == Usage
27
+ #
28
+ # # Converting a bbcode string to ANSI and XHTML
29
+ #
30
+ # str = "this is [COLOR=red]red[/COLOR], this is [B]bold[/B]"
31
+ # print( BBCode.bbcode_to_ansi(str) )
32
+ # print( BBCode.bbcode_to_html(str) )
33
+ #
34
+ module BBCode
35
+
36
+ ## ANSIname => ANSIcode LUT
37
+ ANSINAME2CODE= { "reset" => "\e[0m", "bold" => "\e[1m",
38
+ "underline" => "\e[4m", "blink" => "\e[5m",
39
+ "reverse" => "\e[7m", "invisible" => "\e[8m",
40
+ "black" => "\e[0;30m", "darkgrey" => "\e[1;30m",
41
+ "red" => "\e[0;31m", "lightred" => "\e[1;31m",
42
+ "green" => "\e[0;32m", "lightgreen" => "\e[1;32m",
43
+ "brown" => "\e[0;33m", "yellow" => "\e[1;33m",
44
+ "blue" => "\e[0;34m", "lightblue" => "\e[1;34m",
45
+ "purple" => "\e[0;35m", "magenta" => "\e[1;35m",
46
+ "cyan" => "\e[1;36m", "lightcyan" => "\e[1;36m",
47
+ "grey" => "\e[0;37m", "white" => "\e[1;37m",
48
+ "bgblack" => "\e[40m", "bgred" => "\e[41m",
49
+ "bggreen" => "\e[42m", "bgyellow" => "\e[43m",
50
+ "bgblue" => "\e[44m", "bgmagenta" => "\e[45m",
51
+ "bgcyan" => "\e[46m", "bgwhite" => "\e[47m"
52
+ }
53
+
54
+ ## BBColor => ANSIname LUT
55
+ BBCOLOR2ANSI = { "skyblue" => "blue", "royalblue" => "blue",
56
+ "blue" => "blue", "darkblue" => "blue",
57
+ "orange" => "red", "orangered" => "red",
58
+ "crimson" => "red", "red" => "lightred",
59
+ "firebrick" => "red", "darkred" => "red",
60
+ "green" => "green", "limegreen" => "green",
61
+ "seagreen" => "green", "darkgreen" => "green",
62
+ "deeppink" => "magenta", "tomato" => "red",
63
+ "coral" => "cyan", "purple" => "purple",
64
+ "indigo" => "blue", "burlywood" => "red",
65
+ "sandybrown"=> "red", "sierra" => "sierra",
66
+ "chocolate" => "brown", "teal" => "teal",
67
+ "silver" => "white",
68
+ "black" => "black", "yellow" => "yellow",
69
+ "magenta" => "magenta", "cyan" => "cyan",
70
+ "white" => "white"
71
+ }
72
+
73
+ ## ANSInames => BBCode LUT
74
+ ANSINAME2BBCODE = { "bold" => "B", "underline" => "U", "reverse" => "I",
75
+
76
+ "red" => "COLOR=red", "blue" => "COLOR=blue",
77
+ "green" => "COLOR=green", "cyan" => "COLOR=cyan",
78
+ "magenta"=> "COLOR=deeppink", "purple" => "COLOR=purple",
79
+ "black" => "COLOR=black", "white" => "COLOR=white",
80
+ "yellow" => "COLOR=yellow", "brown" => "COLOR=chocolate"
81
+ }
82
+
83
+ ## Needed for alignments
84
+ @@width = 80
85
+
86
+
87
+ # ---------------------------
88
+
89
+ # Returns the ANSI sequence for given color, if existant
90
+ def BBCode.ansi(colorname)
91
+ colorname.strip!
92
+ return ANSINAME2CODE[ colorname.downcase ]
93
+ end
94
+
95
+ # --- strip_bbcode( string )
96
+ # Will strip any BBCode tags from the given string.
97
+ def BBCode.strip_bbcode(string)
98
+ string.strip!
99
+ return string.gsub(/\[[A-Za-z0-9\/=]+\]/, "")
100
+ end
101
+
102
+ # Returns the string with all ansi escape sequences converted to BBCodes
103
+ def BBCode.ansi_to_bbcode(string)
104
+ return "" if string.nil? || string.to_s.strip.empty?
105
+ result = ""
106
+ tagstack = []
107
+
108
+ ## Iterate over input lines
109
+ string.split("\n").each do |line|
110
+ ansi = line.scan(/\e\[[0-9;]+m/)
111
+ continue if ansi.nil? || ansi.empty?
112
+
113
+ ## Iterate over found ansi sequences
114
+ ansi.each do |seq|
115
+ ansiname = ANSINAME2CODE.invert["#{seq}"]
116
+
117
+ ## Pop last tag and form closing tag
118
+ if ansiname == "reset"
119
+ lasttag = tagstack.pop
120
+ bbname = "/" + String.new( lasttag.split("=")[0] )
121
+
122
+ ## Get corresponding BBCode tag + Push to stack
123
+ else
124
+ bbname = ANSINAME2BBCODE[ansiname]
125
+ tagstack.push(bbname)
126
+ end
127
+
128
+ ## Replace ansi sequence by BBCode tag
129
+ replace = sprintf("[%s]", bbname)
130
+ line.sub!("#{Regexp.quote(seq)}", replace)
131
+ end
132
+
133
+ ## Append converted line
134
+ result << sprintf("%s\n", line)
135
+ end
136
+
137
+
138
+ ## Some tags are unclosed
139
+ while !tagstack.empty?
140
+ result << sprintf("[/%s]", String.new(tagstack.pop.split("=")[0]) )
141
+ end
142
+
143
+ return result
144
+ end
145
+
146
+ # Converts a BBCode string to one with ANSI sequences.
147
+ # Returns the string with all formatting instructions in BBCodes converted
148
+ # to ANSI code sequences / aligned with spaces to specified width.
149
+ def BBCode.bbcode_to_ansi(string, usecolors = true)
150
+ return "" if string.nil? || string.to_s.strip.empty?
151
+ result = ""
152
+
153
+ return BBCode.strip_bbcode(string) if !usecolors
154
+
155
+ ## Iterate over lines
156
+ string.split("\n").each do |line|
157
+
158
+ ## TODO: stacking? other styles!
159
+ ANSINAME2BBCODE.each do |key,val|
160
+ line.gsub!(/\[#{val}\]/, ANSINAME2CODE[key])
161
+ line.gsub!(/\[\/#{val}\]/, ANSINAME2CODE["reset"])
162
+ end
163
+
164
+ ## Fonttypes and sizes not available
165
+ line.gsub!(/\[SIZE=\d\]/, "")
166
+ line.gsub!(/\[\/SIZE\]/, "")
167
+ line.gsub!(/\[FONT=[^\]]*\]/, "")
168
+ line.gsub!(/\[\/FONT\]/, "")
169
+
170
+ ## Color-mapping
171
+ colors = line.scan(/\[COLOR=(.*?)\]/i)
172
+ colors = colors.collect{|s| s[0].to_s} if !colors.nil?
173
+ colors.each do |col|
174
+ name = BBCOLOR2ANSI[col.downcase]
175
+ name = BBCOLOR2ANSI["white"] if name.nil?
176
+ code = ANSINAME2CODE[name]
177
+
178
+ line.gsub!(/\[COLOR=#{col}\]/i, code)
179
+ end
180
+ line.gsub!(/\[\/COLOR\]/, ANSINAME2CODE["reset"])
181
+
182
+ ## TODO: Alignment
183
+ ## TODO: IMGs
184
+ ## TODO: EMAILs
185
+ ## TODO: URLs
186
+ ## TODO: QUOTEs
187
+ ## TODO: LISTs
188
+
189
+ result << sprintf("%s\n", line)
190
+ end
191
+
192
+ return result
193
+ end
194
+
195
+ # Converts a HTML string into one with BBCode markup (TODO)
196
+ # Returns the (X)HTML markup string as BBCode
197
+ def BBCode.html_to_bbcode(string)
198
+ return "" if string.nil? || string.to_s.strip.empty?
199
+ result = ""
200
+
201
+ ## Iterate over lines
202
+ string.split(/<br *\/?>/i).each do |line|
203
+ styles = { "strong" => "b", "b" => "b",
204
+ "em" => "i", "i" => "i",
205
+ "u" => "u" }
206
+
207
+ ## preserve B, I, U
208
+ styles.each do |html,code|
209
+ line.gsub!(/<#{html}>/i, "[#{code.upcase}]")
210
+ line.gsub!(/<\/#{html}>/i, "[/#{code.upcase}]")
211
+ end
212
+
213
+ ## TODO: COLORs
214
+ ## TODO: SIZEs
215
+ ## TODO: FONTs
216
+
217
+ ## EMAIL
218
+ line.gsub!(/<a +href *= *\"mailto:(.*?)\".*?>.*?<\/a>/i, "[EMAIL]\\1[/EMAIL]")
219
+
220
+ ## URL
221
+ line.gsub!(/<a +href *= *\"((?:https?|ftp):\/\/.*?)\".*?>(.*?)<\/a>/i, "[URL=\\1]\\2[/URL]")
222
+
223
+ ## Other refs + closing tags => throw away
224
+ line.gsub!(/<a +href *= *\".*?\".*?>/i, "")
225
+ line.gsub!(/<\/a>/i, "")
226
+
227
+ ## IMG
228
+ #line.gsub!(/<img +src *= *\"(.*?)\".*?\/?>/i, "[IMG=\\1]")
229
+ line.gsub!(/<img +src *= *\"(.*?)\".*?\/?>/i, "[IMG]\\1[/IMG]")
230
+
231
+ ## CENTER (right/left??)
232
+ line.gsub!(/<center>/i, "[ALIGN=center]")
233
+ line.gsub!(/<\/center>/i, "[/ALIGN]")
234
+
235
+ ## QUOTE
236
+ line.gsub!(/<(?:xmp|pre)>/i, "[QUOTE]")
237
+ line.gsub!(/<\/(?:xmp|pre)>/i, "[/QUOTE]")
238
+
239
+ ## LIST
240
+ line.gsub!(/<ul>/i, "\n[LIST]\n")
241
+ line.gsub!(/<\/ul>/i, "\n[/LIST]\n")
242
+ line.gsub!(/<li *\/?> */i, "\n[*] ")
243
+
244
+ ## Unkown tags => throw away
245
+ line.gsub!(/<.*? *\/?>/, "")
246
+
247
+ result << sprintf("%s<br />\n", line)
248
+ end
249
+
250
+ return result.gsub!(/<br *\/?>/i, "\n")
251
+ end
252
+
253
+ # Converts a BBCode string to one with HTML markup.
254
+ # Returns the string with all formatting instructions in
255
+ # BBCodes converted to XHTML markups.
256
+ def BBCode.bbcode_to_html(string)
257
+ return "" if string.nil? || string.to_s.strip.empty?
258
+ result = ""
259
+ quote = 0
260
+
261
+ ## Iterate over lines
262
+ string.split("\n").each do |line|
263
+ styles = { "b" => "strong", "i" => "em", "u" => "u" }
264
+
265
+ ## preserve B, I, U
266
+ styles.each do |code,html|
267
+ line.gsub!(/\[#{code}\]/i, "<#{html}>")
268
+ line.gsub!(/\[\/#{code}\]/i, "</#{html}>")
269
+ end
270
+
271
+ ## COLOR => font color=... (TODO: should be numeric!)
272
+ line.gsub!(/\[COLOR=(.*?)\]/i, "<font color=\"\\1\">")
273
+ line.gsub!(/\[\/COLOR\]/i, "</font>")
274
+
275
+ ## SIZE => font size=...
276
+ line.gsub!(/\[SIZE=(.*?)\]/i, "<font size=\"\\1\">")
277
+ line.gsub!(/\[\/SIZE\]/i, "</font>")
278
+
279
+ ## URL
280
+ line.gsub!(/\[URL\]([^\[]+?)\[\/URL\]/i, "<a href=\"\\1\">\\1</a>")
281
+ line.gsub!(/\[URL=(.*?)\](.+?)\[\/URL\]/i, "<a href=\"\\1\">\\2</a>")
282
+
283
+ ## IMG
284
+ line.gsub!(/\[IMG=(.*?)\]/i, "<img src=\"\\1\" />")
285
+
286
+ ## ALIGN=center (TODO: right, left)
287
+ line.gsub!(/\[ALIGN=center\]/i, "<center>")
288
+ line.gsub!(/\[ALIGN=right\]/i, "<center>")
289
+ line.gsub!(/\[ALIGN=left\]/i, "<center>")
290
+ line.gsub!(/\[\/ALIGN\]/i, "</center>")
291
+
292
+ ## QUOTE
293
+ quote+=1 if line =~ /\[QUOTE\]/i
294
+ quote-=1 if (line =~ /\[\/QUOTE\]/i) && (quote > -1)
295
+ line.gsub!(/\[QUOTE\]/i, "<pre>\n")
296
+ line.gsub!(/\[\/QUOTE\]/i, "</pre>\n")
297
+ line.gsub!(/^/, "&#62;"*quote) if quote > 0
298
+
299
+ ## EMAIL
300
+ line.gsub!(/\[EMAIL\](.*?)\[\/EMAIL\]/i, "<a href=\"mailto:\\1\">\\1</a>")
301
+
302
+ ## LIST (TODO: LIST=1, LIST=A)
303
+ line.gsub!(/\[LIST(?:=(.*?))?\]/i, "\n<ul>\n")
304
+ line.gsub!(/\[\/LIST\]/i, "\n</ul>\n")
305
+ line.gsub!(/\[\*\]/i, "\n<li />")
306
+
307
+ ## FONT => font ??????
308
+ ## ?BLUR?, FADE?
309
+
310
+ result << sprintf("%s<br />\n", line)
311
+ end
312
+
313
+ return result
314
+ end
315
+
316
+
317
+ # -- Transitive methods ---------------
318
+
319
+ # Converts a ANSI string to one with HTML markup.
320
+ # Returns the string with ANSI code sequences converted to XHTML markup.
321
+ def BBCode.ansi_to_html(string)
322
+ bbcoded = BBCode.ansi_to_bbcode(string )
323
+ htmled = BBCode.bbcode_to_html(bbcoded)
324
+
325
+ return htmled
326
+ end
327
+
328
+ # Returns the (X)HTML markup code as ANSI sequences
329
+ def BBCode.html_to_ansi(string)
330
+ bbcoded = BBCode.html_to_bbcode(string )
331
+ ansied = BBCode.bbcode_to_ansi(bbcoded)
332
+
333
+ return ansied
334
+ end
335
+
336
+ end #module BBCode
337
+
338
+ end
339
+
@@ -8,11 +8,14 @@
8
8
  # TODO: Re-evaluate how color/yielding methods are defined.
9
9
  # TODO: Maybe up, down, right, left should have yielding methods too?
10
10
 
11
+ #
11
12
  module ANSI
12
13
 
13
14
  # Currently Windows is not supported.
14
15
  SUPPORTED = !(RUBY_PLATFORM =~ /win/)
15
16
 
17
+ # = ANSI Codes
18
+ #
16
19
  # Ansi::Code module makes it very easy to use ANSI codes.
17
20
  # These are esspecially nice for beautifying shell output.
18
21
  #
@@ -227,3 +230,4 @@ module ANSI
227
230
  end
228
231
 
229
232
  end
233
+
@@ -8,8 +8,8 @@ require "ansi/code"
8
8
 
9
9
  # = ANSI::Logger
10
10
  #
11
- # Extended variation of Ruby's standard Logger library.
12
- # Mainly for compatibility purposes (with what?)
11
+ # Extended variation of Ruby's standard Logger library that supports
12
+ # color output.
13
13
  #
14
14
  # log = ANSI::Logger.new
15
15
  #
@@ -30,12 +30,14 @@ class ANSI::Logger < Logger
30
30
  SIMPLE_FORMAT = "%5s: %s\n"
31
31
  DETAILED_FORMAT = "%s %5s: %s\n"
32
32
 
33
- #
34
- class ::Logger::LogDevice
35
- attr_writer :ansicolor
33
+ # TODO: Not sure I like this approach.
34
+ class ::Logger #:nodoc:
35
+ class LogDevice #:nodoc:
36
+ attr_writer :ansicolor
36
37
 
37
- def ansicolor?
38
- @ansicolor.nil? ? true : @ansicolor
38
+ def ansicolor?
39
+ @ansicolor.nil? ? true : @ansicolor
40
+ end
39
41
  end
40
42
  end
41
43
 
@@ -7,7 +7,9 @@
7
7
 
8
8
  require 'ansi/code'
9
9
 
10
- # ProgressBar is a text-based progressbar library.
10
+ # = Progressbar
11
+ #
12
+ # Progressbar is a text-based progressbar library.
11
13
  #
12
14
  # pbar = Progressbar.new( "Demo", 100 )
13
15
  # 100.times { pbar.inc }
@@ -7,8 +7,10 @@ def ANSI.string(str)
7
7
  ANSI::String.new(str)
8
8
  end
9
9
 
10
- # Clio Strings stores a regular string (@text) and
11
- # a Hash mapping character index to ansicodes (@marks).
10
+ # = String
11
+ #
12
+ # ANSI Strings store a regular string (@text) and
13
+ # a Hash mapping character index to ANSI codes (@marks).
12
14
  # For example is we have the string:
13
15
  #
14
16
  # "Big Apple"
@@ -18,7 +20,8 @@ end
18
20
  # { 0=>[:red] , 9=>[:clear] }
19
21
  #
20
22
  # TODO: In the future we may be able to subclass String,
21
- # instead of delegating via @text, but not until it is more compatible.
23
+ # instead of delegating via @text, but not until it is more
24
+ # compatible.
22
25
  #
23
26
  class ANSI::String
24
27
 
@@ -1,13 +1,13 @@
1
- #
2
- # This library is based of HighLine's SystemExtensions
3
- # by James Edward Gray II.
4
- #
5
- # Copyright 2006 Gray Productions. All rights reserved.
6
- #
7
- # This is Free Software. See LICENSE and COPYING for details.
8
-
9
1
  module ANSI
10
2
 
3
+ # = Terminal
4
+ #
5
+ # This library is based of HighLine's SystemExtensions
6
+ # by James Edward Gray II.
7
+ #
8
+ # Copyright 2006 Gray Productions.
9
+ #
10
+ # This is Free Software. See LICENSE and COPYING for details.
11
11
  #
12
12
  module Terminal
13
13
 
@@ -1,3 +1,2 @@
1
+ Thomas Sawyer
1
2
  Florian Frank
2
- Trans <transfire@gmail.com>
3
-
@@ -1 +1 @@
1
- http://death.rubyforge.org/ansicode
1
+ http://death.rubyforge.org/ansi
@@ -1 +1 @@
1
- svn://rubyforge.org/var/svn/death/ansicode
1
+ git://github.com/rubyworks/ansi.git
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.1.0
@@ -0,0 +1,19 @@
1
+ require 'ansi/bbcode'
2
+ require 'test/unit'
3
+
4
+ class TC_BBCode < Test::Unit::TestCase
5
+
6
+ def test_to_ansi
7
+ str = "this is [COLOR=red]red[/COLOR], this is [B]bold[/B]"
8
+ out = "this is \e[0;31mred\e[0m, this is \e[1mbold\e[0m\n"
9
+ assert_equal( out, BBCode.bbcode_to_ansi(str) )
10
+ end
11
+
12
+ def test_to_html
13
+ str = "this is [COLOR=red]red[/COLOR], this is [B]bold[/B]"
14
+ out = "this is <font color=\"red\">red</font>, this is <strong>bold</strong><br />\n"
15
+ assert_equal( out, BBCode.bbcode_to_html(str) )
16
+ end
17
+
18
+ end
19
+
metadata CHANGED
@@ -1,21 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ansi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Thomas Sawyer
7
8
  - Florian Frank
8
- - Trans <transfire@gmail.com>
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-09-05 00:00:00 -04:00
13
+ date: 2009-10-03 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies: []
16
16
 
17
- description: The ANSI project is a collection of ANSI code related libraries enabling ANSI code based colorization and stylization of output. It is very nice for beautifying shell output. This collection is based on a set of scripts spun-off from Ruby Facets. Include are Code (used to be ANSICode), Logger, Progressbar and String. In addition the library include Terminal which provides information about the current output device.
18
- email: Florian Frank
17
+ description: |-
18
+ The ANSI project is a collection of ANSI code related libraries
19
+ enabling ANSI code based colorization and stylization of output.
20
+ It is very nice for beautifying shell output.
21
+
22
+ This collection is based on a set of scripts spun-off from
23
+ Ruby Facets. Include are Code (used to be ANSICode), Logger,
24
+ Progressbar and String. In addition the library include
25
+ Terminal which provides information about the current output
26
+ device.
27
+ email: Thomas Sawyer
19
28
  executables: []
20
29
 
21
30
  extensions: []
@@ -23,25 +32,22 @@ extensions: []
23
32
  extra_rdoc_files:
24
33
  - README
25
34
  - MANIFEST
26
- - LICENSE
27
35
  - HISTORY
36
+ - COPYING
28
37
  files:
29
- - HISTORY
30
- - LICENSE
31
- - MANIFEST
32
- - README
33
38
  - demo/logger.rd
34
39
  - demo/progressbar.rd
35
- - lib/ansi.rb
40
+ - lib/ansi/bbcode.rb
36
41
  - lib/ansi/code.rb
37
42
  - lib/ansi/logger.rb
38
43
  - lib/ansi/progressbar.rb
39
44
  - lib/ansi/string.rb
40
- - lib/ansi/terminal.rb
41
45
  - lib/ansi/terminal/curses.rb
42
46
  - lib/ansi/terminal/stty.rb
43
47
  - lib/ansi/terminal/termios.rb
44
48
  - lib/ansi/terminal/win32.rb
49
+ - lib/ansi/terminal.rb
50
+ - lib/ansi.rb
45
51
  - meta/abstract
46
52
  - meta/authors
47
53
  - meta/created
@@ -56,9 +62,14 @@ files:
56
62
  - meta/title
57
63
  - meta/version
58
64
  - test/test_ansicode.rb
65
+ - test/test_bbcode.rb
59
66
  - test/test_progressbar.rb
67
+ - README
68
+ - HISTORY
69
+ - COPYING
70
+ - MANIFEST
60
71
  has_rdoc: true
61
- homepage: http://death.rubyforge.org/ansicode
72
+ homepage: http://death.rubyforge.org/ansi
62
73
  licenses: []
63
74
 
64
75
  post_install_message:
@@ -91,4 +102,5 @@ specification_version: 3
91
102
  summary: ANSI codes at your fingertips!
92
103
  test_files:
93
104
  - test/test_ansicode.rb
105
+ - test/test_bbcode.rb
94
106
  - test/test_progressbar.rb