coderay 1.0.0 → 1.0.0.598.pre
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.
- data/FOLDERS +49 -0
- data/Rakefile +6 -5
- data/bin/coderay +74 -190
- data/bin/coderay_stylesheet +4 -0
- data/{README_INDEX.rdoc → lib/README} +20 -10
- data/lib/coderay.rb +60 -62
- data/lib/coderay/duo.rb +55 -2
- data/lib/coderay/encoder.rb +39 -52
- data/lib/coderay/encoders/_map.rb +7 -11
- data/lib/coderay/encoders/comment_filter.rb +61 -0
- data/lib/coderay/encoders/count.rb +26 -11
- data/lib/coderay/encoders/debug.rb +60 -11
- data/lib/coderay/encoders/div.rb +8 -9
- data/lib/coderay/encoders/filter.rb +52 -12
- data/lib/coderay/encoders/html.rb +113 -106
- data/lib/coderay/encoders/html/css.rb +7 -2
- data/lib/coderay/encoders/html/numbering.rb +27 -24
- data/lib/coderay/encoders/html/output.rb +58 -15
- data/lib/coderay/encoders/json.rb +44 -37
- data/lib/coderay/encoders/lines_of_code.rb +56 -9
- data/lib/coderay/encoders/null.rb +13 -6
- data/lib/coderay/encoders/page.rb +8 -8
- data/lib/coderay/encoders/span.rb +9 -10
- data/lib/coderay/encoders/statistic.rb +114 -51
- data/lib/coderay/encoders/terminal.rb +10 -7
- data/lib/coderay/encoders/text.rb +36 -17
- data/lib/coderay/encoders/token_kind_filter.rb +58 -1
- data/lib/coderay/encoders/xml.rb +11 -13
- data/lib/coderay/encoders/yaml.rb +14 -16
- data/lib/coderay/for_redcloth.rb +1 -1
- data/lib/coderay/helpers/file_type.rb +240 -125
- data/lib/coderay/helpers/gzip_simple.rb +123 -0
- data/lib/coderay/helpers/plugin.rb +307 -241
- data/lib/coderay/helpers/word_list.rb +126 -65
- data/lib/coderay/scanner.rb +103 -153
- data/lib/coderay/scanners/_map.rb +16 -18
- data/lib/coderay/scanners/c.rb +13 -13
- data/lib/coderay/scanners/cpp.rb +6 -6
- data/lib/coderay/scanners/css.rb +48 -47
- data/lib/coderay/scanners/debug.rb +55 -9
- data/lib/coderay/scanners/delphi.rb +4 -4
- data/lib/coderay/scanners/diff.rb +25 -43
- data/lib/coderay/scanners/groovy.rb +2 -2
- data/lib/coderay/scanners/html.rb +30 -107
- data/lib/coderay/scanners/java.rb +5 -6
- data/lib/coderay/scanners/java/builtin_types.rb +0 -2
- data/lib/coderay/scanners/java_script.rb +6 -6
- data/lib/coderay/scanners/json.rb +6 -7
- data/lib/coderay/scanners/nitro_xhtml.rb +136 -0
- data/lib/coderay/scanners/php.rb +12 -13
- data/lib/coderay/scanners/plaintext.rb +26 -0
- data/lib/coderay/scanners/python.rb +4 -4
- data/lib/coderay/scanners/{erb.rb → rhtml.rb} +11 -19
- data/lib/coderay/scanners/ruby.rb +208 -219
- data/lib/coderay/scanners/ruby/patterns.rb +85 -18
- data/lib/coderay/scanners/scheme.rb +136 -0
- data/lib/coderay/scanners/sql.rb +22 -29
- data/lib/coderay/scanners/yaml.rb +10 -11
- data/lib/coderay/styles/_map.rb +2 -2
- data/lib/coderay/styles/alpha.rb +104 -102
- data/lib/coderay/styles/cycnus.rb +143 -0
- data/lib/coderay/styles/murphy.rb +123 -0
- data/lib/coderay/token_kinds.rb +86 -87
- data/lib/coderay/tokens.rb +169 -26
- data/test/functional/basic.rb +14 -200
- data/test/functional/examples.rb +14 -20
- data/test/functional/for_redcloth.rb +8 -15
- data/test/functional/load_plugin_scanner.rb +11 -0
- data/test/functional/suite.rb +6 -9
- data/test/functional/vhdl.rb +126 -0
- data/test/functional/word_list.rb +79 -0
- metadata +129 -107
- data/lib/coderay/helpers/gzip.rb +0 -41
- data/lib/coderay/scanners/clojure.rb +0 -217
- data/lib/coderay/scanners/haml.rb +0 -168
- data/lib/coderay/scanners/ruby/string_state.rb +0 -71
- data/lib/coderay/scanners/text.rb +0 -26
- data/lib/coderay/tokens_proxy.rb +0 -55
- data/lib/coderay/version.rb +0 -3
data/test/functional/basic.rb
CHANGED
@@ -1,15 +1,11 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
require 'test/unit'
|
3
|
-
require File.expand_path('../../lib/assert_warning', __FILE__)
|
4
|
-
|
5
|
-
$:.unshift File.expand_path('../../../lib', __FILE__)
|
6
2
|
require 'coderay'
|
7
3
|
|
8
4
|
class BasicTest < Test::Unit::TestCase
|
9
5
|
|
10
6
|
def test_version
|
11
7
|
assert_nothing_raised do
|
12
|
-
assert_match(/\A\d\.\d\.\d
|
8
|
+
assert_match(/\A\d\.\d\.\d\z/, CodeRay::VERSION)
|
13
9
|
end
|
14
10
|
end
|
15
11
|
|
@@ -26,52 +22,28 @@ class BasicTest < Test::Unit::TestCase
|
|
26
22
|
].flatten
|
27
23
|
def test_simple_scan
|
28
24
|
assert_nothing_raised do
|
29
|
-
assert_equal RUBY_TEST_TOKENS, CodeRay.scan(RUBY_TEST_CODE, :ruby).
|
25
|
+
assert_equal RUBY_TEST_TOKENS, CodeRay.scan(RUBY_TEST_CODE, :ruby).to_ary
|
30
26
|
end
|
31
27
|
end
|
32
28
|
|
33
|
-
RUBY_TEST_HTML = 'puts <span class="
|
34
|
-
'<span class="
|
29
|
+
RUBY_TEST_HTML = 'puts <span class="s"><span class="dl">"</span>' +
|
30
|
+
'<span class="k">Hello, World!</span><span class="dl">"</span></span>'
|
35
31
|
def test_simple_highlight
|
36
32
|
assert_nothing_raised do
|
37
33
|
assert_equal RUBY_TEST_HTML, CodeRay.scan(RUBY_TEST_CODE, :ruby).html
|
38
34
|
end
|
39
35
|
end
|
40
36
|
|
41
|
-
def test_scan_file
|
42
|
-
CodeRay.scan_file __FILE__
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_encode
|
46
|
-
assert_equal 1, CodeRay.encode('test', :python, :count)
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_encode_tokens
|
50
|
-
assert_equal 1, CodeRay.encode_tokens(CodeRay::Tokens['test', :string], :count)
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_encode_file
|
54
|
-
assert_equal File.read(__FILE__), CodeRay.encode_file(__FILE__, :text)
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_highlight
|
58
|
-
assert_match '<pre>test</pre>', CodeRay.highlight('test', :python)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_highlight_file
|
62
|
-
assert_match "require <span class=\"string\"><span class=\"delimiter\">'</span><span class=\"content\">test/unit</span><span class=\"delimiter\">'</span></span>\n", CodeRay.highlight_file(__FILE__)
|
63
|
-
end
|
64
|
-
|
65
37
|
def test_duo
|
66
38
|
assert_equal(RUBY_TEST_CODE,
|
67
|
-
CodeRay::Duo[:plain, :
|
39
|
+
CodeRay::Duo[:plain, :plain].highlight(RUBY_TEST_CODE))
|
68
40
|
assert_equal(RUBY_TEST_CODE,
|
69
|
-
CodeRay::Duo[:plain => :
|
41
|
+
CodeRay::Duo[:plain => :plain].highlight(RUBY_TEST_CODE))
|
70
42
|
end
|
71
43
|
|
72
44
|
def test_duo_stream
|
73
45
|
assert_equal(RUBY_TEST_CODE,
|
74
|
-
CodeRay::Duo[:plain, :
|
46
|
+
CodeRay::Duo[:plain, :plain].highlight(RUBY_TEST_CODE, :stream => true))
|
75
47
|
end
|
76
48
|
|
77
49
|
def test_comment_filter
|
@@ -126,179 +98,21 @@ more code # and another comment, in-line.
|
|
126
98
|
assert_equal 0, CodeRay.scan(rHTML, :html).lines_of_code
|
127
99
|
assert_equal 0, CodeRay.scan(rHTML, :php).lines_of_code
|
128
100
|
assert_equal 0, CodeRay.scan(rHTML, :yaml).lines_of_code
|
129
|
-
assert_equal 4, CodeRay.scan(rHTML, :
|
101
|
+
assert_equal 4, CodeRay.scan(rHTML, :rhtml).lines_of_code
|
130
102
|
end
|
131
103
|
|
104
|
+
def test_rubygems_not_loaded
|
105
|
+
assert_equal nil, defined? Gem
|
106
|
+
end if ENV['check_rubygems'] && RUBY_VERSION < '1.9'
|
107
|
+
|
132
108
|
def test_list_of_encoders
|
133
109
|
assert_kind_of(Array, CodeRay::Encoders.list)
|
134
|
-
assert CodeRay::Encoders.list.include?(
|
110
|
+
assert CodeRay::Encoders.list.include?('count')
|
135
111
|
end
|
136
112
|
|
137
113
|
def test_list_of_scanners
|
138
114
|
assert_kind_of(Array, CodeRay::Scanners.list)
|
139
|
-
assert CodeRay::Scanners.list.include?(
|
140
|
-
end
|
141
|
-
|
142
|
-
def test_token_kinds
|
143
|
-
assert_kind_of Hash, CodeRay::TokenKinds
|
144
|
-
for kind, css_class in CodeRay::TokenKinds
|
145
|
-
assert_kind_of Symbol, kind
|
146
|
-
if css_class != false
|
147
|
-
assert_kind_of String, css_class, "TokenKinds[%p] == %p" % [kind, css_class]
|
148
|
-
end
|
149
|
-
end
|
150
|
-
assert_equal 'reserved', CodeRay::TokenKinds[:reserved]
|
151
|
-
assert_warning 'Undefined Token kind: :shibboleet' do
|
152
|
-
assert_equal false, CodeRay::TokenKinds[:shibboleet]
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
class Milk < CodeRay::Encoders::Encoder
|
157
|
-
FILE_EXTENSION = 'cocoa'
|
158
|
-
end
|
159
|
-
|
160
|
-
class HoneyBee < CodeRay::Encoders::Encoder
|
161
|
-
end
|
162
|
-
|
163
|
-
def test_encoder_file_extension
|
164
|
-
assert_nothing_raised do
|
165
|
-
assert_equal 'html', CodeRay::Encoders::Page::FILE_EXTENSION
|
166
|
-
assert_equal 'cocoa', Milk::FILE_EXTENSION
|
167
|
-
assert_equal 'cocoa', Milk.new.file_extension
|
168
|
-
assert_equal 'honeybee', HoneyBee::FILE_EXTENSION
|
169
|
-
assert_equal 'honeybee', HoneyBee.new.file_extension
|
170
|
-
end
|
171
|
-
assert_raise NameError do
|
172
|
-
HoneyBee::MISSING_CONSTANT
|
173
|
-
end
|
174
|
-
end
|
175
|
-
|
176
|
-
def test_encoder_tokens
|
177
|
-
encoder = CodeRay::Encoders::Encoder.new
|
178
|
-
encoder.send :setup, {}
|
179
|
-
assert_raise(ArgumentError) { encoder.token :strange, '' }
|
180
|
-
encoder.token 'test', :debug
|
181
|
-
end
|
182
|
-
|
183
|
-
def test_encoder_deprecated_interface
|
184
|
-
encoder = CodeRay::Encoders::Encoder.new
|
185
|
-
encoder.send :setup, {}
|
186
|
-
assert_warning 'Using old Tokens#<< interface.' do
|
187
|
-
encoder << ['test', :content]
|
188
|
-
end
|
189
|
-
assert_raise ArgumentError do
|
190
|
-
encoder << [:strange, :input]
|
191
|
-
end
|
192
|
-
assert_raise ArgumentError do
|
193
|
-
encoder.encode_tokens [['test', :token]]
|
194
|
-
end
|
195
|
-
end
|
196
|
-
|
197
|
-
def encoder_token_interface_deprecation_warning_given
|
198
|
-
CodeRay::Encoders::Encoder.send :class_variable_get, :@@CODERAY_TOKEN_INTERFACE_DEPRECATION_WARNING_GIVEN
|
199
|
-
end
|
200
|
-
|
201
|
-
def test_scanner_file_extension
|
202
|
-
assert_equal 'rb', CodeRay::Scanners::Ruby.file_extension
|
203
|
-
assert_equal 'rb', CodeRay::Scanners::Ruby.new.file_extension
|
204
|
-
assert_equal 'java', CodeRay::Scanners::Java.file_extension
|
205
|
-
assert_equal 'java', CodeRay::Scanners::Java.new.file_extension
|
206
|
-
end
|
207
|
-
|
208
|
-
def test_scanner_lang
|
209
|
-
assert_equal :ruby, CodeRay::Scanners::Ruby.lang
|
210
|
-
assert_equal :ruby, CodeRay::Scanners::Ruby.new.lang
|
211
|
-
assert_equal :java, CodeRay::Scanners::Java.lang
|
212
|
-
assert_equal :java, CodeRay::Scanners::Java.new.lang
|
213
|
-
end
|
214
|
-
|
215
|
-
def test_scanner_tokenize
|
216
|
-
assert_equal ['foo', :plain], CodeRay::Scanners::Plain.new.tokenize('foo')
|
217
|
-
assert_equal [['foo', :plain], ['bar', :plain]], CodeRay::Scanners::Plain.new.tokenize(['foo', 'bar'])
|
218
|
-
CodeRay::Scanners::Plain.new.tokenize 42
|
219
|
-
end
|
220
|
-
|
221
|
-
def test_scanner_tokens
|
222
|
-
scanner = CodeRay::Scanners::Plain.new
|
223
|
-
scanner.tokenize('foo')
|
224
|
-
assert_equal ['foo', :plain], scanner.tokens
|
225
|
-
scanner.string = ''
|
226
|
-
assert_equal ['', :plain], scanner.tokens
|
227
|
-
end
|
228
|
-
|
229
|
-
def test_scanner_line_and_column
|
230
|
-
scanner = CodeRay::Scanners::Plain.new "foo\nbär+quux"
|
231
|
-
assert_equal 0, scanner.pos
|
232
|
-
assert_equal 1, scanner.line
|
233
|
-
assert_equal 1, scanner.column
|
234
|
-
scanner.scan(/foo/)
|
235
|
-
assert_equal 3, scanner.pos
|
236
|
-
assert_equal 1, scanner.line
|
237
|
-
assert_equal 4, scanner.column
|
238
|
-
scanner.scan(/\n/)
|
239
|
-
assert_equal 4, scanner.pos
|
240
|
-
assert_equal 2, scanner.line
|
241
|
-
assert_equal 1, scanner.column
|
242
|
-
scanner.scan(/b/)
|
243
|
-
assert_equal 5, scanner.pos
|
244
|
-
assert_equal 2, scanner.line
|
245
|
-
assert_equal 2, scanner.column
|
246
|
-
scanner.scan(/a/)
|
247
|
-
assert_equal 5, scanner.pos
|
248
|
-
assert_equal 2, scanner.line
|
249
|
-
assert_equal 2, scanner.column
|
250
|
-
scanner.scan(/ä/)
|
251
|
-
assert_equal 7, scanner.pos
|
252
|
-
assert_equal 2, scanner.line
|
253
|
-
assert_equal 4, scanner.column
|
254
|
-
scanner.scan(/r/)
|
255
|
-
assert_equal 8, scanner.pos
|
256
|
-
assert_equal 2, scanner.line
|
257
|
-
assert_equal 5, scanner.column
|
258
|
-
end
|
259
|
-
|
260
|
-
def test_scanner_use_subclasses
|
261
|
-
assert_raise NotImplementedError do
|
262
|
-
CodeRay::Scanners::Scanner.new
|
263
|
-
end
|
264
|
-
end
|
265
|
-
|
266
|
-
class InvalidScanner < CodeRay::Scanners::Scanner
|
267
|
-
end
|
268
|
-
|
269
|
-
def test_scanner_scan_tokens
|
270
|
-
assert_raise NotImplementedError do
|
271
|
-
InvalidScanner.new.tokenize ''
|
272
|
-
end
|
273
|
-
end
|
274
|
-
|
275
|
-
class RaisingScanner < CodeRay::Scanners::Scanner
|
276
|
-
def scan_tokens encoder, options
|
277
|
-
raise_inspect 'message', [], :initial
|
278
|
-
end
|
279
|
-
end
|
280
|
-
|
281
|
-
def test_scanner_raise_inspect
|
282
|
-
assert_raise CodeRay::Scanners::Scanner::ScanError do
|
283
|
-
RaisingScanner.new.tokenize ''
|
284
|
-
end
|
285
|
-
end
|
286
|
-
|
287
|
-
def test_scan_a_frozen_string
|
288
|
-
assert_nothing_raised do
|
289
|
-
CodeRay.scan RUBY_VERSION, :ruby
|
290
|
-
CodeRay.scan RUBY_VERSION, :plain
|
291
|
-
end
|
292
|
-
end
|
293
|
-
|
294
|
-
def test_scan_a_non_string
|
295
|
-
assert_nothing_raised do
|
296
|
-
CodeRay.scan 42, :ruby
|
297
|
-
CodeRay.scan nil, :ruby
|
298
|
-
CodeRay.scan self, :ruby
|
299
|
-
CodeRay.encode ENV.to_hash, :ruby, :page
|
300
|
-
CodeRay.highlight CodeRay, :plain
|
301
|
-
end
|
115
|
+
assert CodeRay::Scanners.list.include?('plaintext')
|
302
116
|
end
|
303
117
|
|
304
118
|
end
|
data/test/functional/examples.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
require 'test/unit'
|
2
|
-
|
3
|
-
$:.unshift File.expand_path('../../../lib', __FILE__)
|
4
2
|
require 'coderay'
|
5
3
|
|
6
4
|
class ExamplesTest < Test::Unit::TestCase
|
@@ -10,7 +8,7 @@ class ExamplesTest < Test::Unit::TestCase
|
|
10
8
|
div = CodeRay.scan('puts "Hello, world!"', :ruby).div
|
11
9
|
assert_equal <<-DIV, div
|
12
10
|
<div class="CodeRay">
|
13
|
-
<div class="code"><pre>puts <span style="background-color:hsla(0,100%,50%,0.
|
11
|
+
<div class="code"><pre>puts <span style="background-color:hsla(0,100%,50%,0.1)"><span style="color:#710">"</span><span style="color:#D20">Hello, world!</span><span style="color:#710">"</span></span></pre></div>
|
14
12
|
</div>
|
15
13
|
DIV
|
16
14
|
|
@@ -22,12 +20,12 @@ end
|
|
22
20
|
CODE
|
23
21
|
assert_equal <<-DIV, div
|
24
22
|
<table class="CodeRay"><tr>
|
25
|
-
<td class="
|
23
|
+
<td class="line_numbers" title="double click to toggle" ondblclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre><a href="#n1" name="n1">1</a>
|
26
24
|
<a href="#n2" name="n2">2</a>
|
27
25
|
<a href="#n3" name="n3">3</a>
|
28
26
|
</pre></td>
|
29
|
-
<td class="code"><pre><span style="color:#00D">5</span>.times <span style="color:#080;font-weight:bold">do</span>
|
30
|
-
puts <span style="background-color:hsla(0,100%,50%,0.
|
27
|
+
<td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"><span style="color:#00D;font-weight:bold">5</span>.times <span style="color:#080;font-weight:bold">do</span>
|
28
|
+
puts <span style="background-color:hsla(0,100%,50%,0.1)"><span style="color:#710">'</span><span style="color:#D20">Hello, world!</span><span style="color:#710">'</span></span>
|
31
29
|
<span style="color:#080;font-weight:bold">end</span></pre></td>
|
32
30
|
</tr></table>
|
33
31
|
DIV
|
@@ -38,9 +36,9 @@ end
|
|
38
36
|
<body style="background-color: white;">
|
39
37
|
|
40
38
|
<table class="CodeRay"><tr>
|
41
|
-
<td class="
|
39
|
+
<td class="line_numbers" title="double click to toggle" ondblclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre>
|
42
40
|
</pre></td>
|
43
|
-
<td class="code"><pre>puts <span class="
|
41
|
+
<td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }">puts <span class="s"><span class="dl">"</span><span class="k">Hello, world!</span><span class="dl">"</span></span></pre></td>
|
44
42
|
</tr></table>
|
45
43
|
|
46
44
|
</body>
|
@@ -48,8 +46,6 @@ end
|
|
48
46
|
|
49
47
|
# keep scanned tokens for later use
|
50
48
|
tokens = CodeRay.scan('{ "just": "an", "example": 42 }', :json)
|
51
|
-
assert_kind_of CodeRay::TokensProxy, tokens
|
52
|
-
|
53
49
|
assert_equal ["{", :operator, " ", :space, :begin_group, :key,
|
54
50
|
"\"", :delimiter, "just", :content, "\"", :delimiter,
|
55
51
|
:end_group, :key, ":", :operator, " ", :space,
|
@@ -58,8 +54,8 @@ end
|
|
58
54
|
" ", :space, :begin_group, :key, "\"", :delimiter,
|
59
55
|
"example", :content, "\"", :delimiter, :end_group, :key,
|
60
56
|
":", :operator, " ", :space, "42", :integer,
|
61
|
-
" ", :space, "}", :operator], tokens
|
62
|
-
|
57
|
+
" ", :space, "}", :operator], tokens
|
58
|
+
|
63
59
|
# produce a token statistic
|
64
60
|
assert_equal <<-STATISTIC, tokens.statistic
|
65
61
|
|
@@ -69,30 +65,28 @@ Tokens 26
|
|
69
65
|
Non-Whitespace 15
|
70
66
|
Bytes Total 31
|
71
67
|
|
72
|
-
Token Types (
|
68
|
+
Token Types (5):
|
73
69
|
type count ratio size (average)
|
74
70
|
-------------------------------------------------------------
|
75
71
|
TOTAL 26 100.00 % 1.2
|
76
72
|
delimiter 6 23.08 % 1.0
|
77
73
|
operator 5 19.23 % 1.0
|
78
74
|
space 5 19.23 % 1.0
|
79
|
-
|
80
|
-
:begin_group 3 11.54 % 0.0
|
81
|
-
:end_group 3 11.54 % 0.0
|
75
|
+
begin_group 3 11.54 % 0.0
|
82
76
|
content 3 11.54 % 4.3
|
83
|
-
|
77
|
+
end_group 3 11.54 % 0.0
|
84
78
|
integer 1 3.85 % 2.0
|
85
79
|
|
86
80
|
STATISTIC
|
87
81
|
|
88
82
|
# count the tokens
|
89
|
-
assert_equal 26, tokens.count
|
83
|
+
assert_equal 26, tokens.count # => 26
|
90
84
|
|
91
85
|
# produce a HTML div, but with CSS classes
|
92
86
|
div = tokens.div(:css => :class)
|
93
87
|
assert_equal <<-DIV, div
|
94
88
|
<div class="CodeRay">
|
95
|
-
<div class="code"><pre>{ <span class="
|
89
|
+
<div class="code"><pre>{ <span class="ke"><span class="dl">"</span><span class="k">just</span><span class="dl">"</span></span>: <span class="s"><span class="dl">"</span><span class="k">an</span><span class="dl">"</span></span>, <span class="ke"><span class="dl">"</span><span class="k">example</span><span class="dl">"</span></span>: <span class="i">42</span> }</pre></div>
|
96
90
|
</div>
|
97
91
|
DIV
|
98
92
|
|
@@ -122,7 +116,7 @@ Token Types (7):
|
|
122
116
|
div = ruby_highlighter.encode('puts "Hello, world!"')
|
123
117
|
assert_equal <<-DIV, div
|
124
118
|
<div class="CodeRay">
|
125
|
-
<div class="code"><pre>puts <span style="background-color:hsla(0,100%,50%,0.
|
119
|
+
<div class="code"><pre>puts <span style="background-color:hsla(0,100%,50%,0.1)"><span style="color:#710">"</span><span style="color:#D20">Hello, world!</span><span style="color:#710">"</span></span></pre></div>
|
126
120
|
</div>
|
127
121
|
DIV
|
128
122
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
require 'test/unit'
|
2
|
-
|
3
|
-
|
4
|
-
$:.unshift File.expand_path('../../../lib', __FILE__)
|
2
|
+
$:.unshift 'lib'
|
5
3
|
require 'coderay'
|
6
4
|
|
7
5
|
begin
|
@@ -10,18 +8,17 @@ begin
|
|
10
8
|
require 'redcloth'
|
11
9
|
rescue LoadError
|
12
10
|
warn 'RedCloth not found - skipping for_redcloth tests.'
|
13
|
-
undef RedCloth if defined? RedCloth
|
14
11
|
end
|
15
12
|
|
16
13
|
class BasicTest < Test::Unit::TestCase
|
17
14
|
|
18
15
|
def test_for_redcloth
|
19
16
|
require 'coderay/for_redcloth'
|
20
|
-
assert_equal "<p><span lang=\"ruby\" class=\"CodeRay\">puts <span style=\"background-color:hsla(0,100%,50%,0.
|
17
|
+
assert_equal "<p><span lang=\"ruby\" class=\"CodeRay\">puts <span style=\"background-color:hsla(0,100%,50%,0.1)\"><span style=\"color:#710\">"</span><span style=\"color:#D20\">Hello, World!</span><span style=\"color:#710\">"</span></span></span></p>",
|
21
18
|
RedCloth.new('@[ruby]puts "Hello, World!"@').to_html
|
22
19
|
assert_equal <<-BLOCKCODE.chomp,
|
23
20
|
<div lang="ruby" class="CodeRay">
|
24
|
-
<div class="code"><pre>puts <span style="background-color:hsla(0,100%,50%,0.
|
21
|
+
<div class="code"><pre>puts <span style="background-color:hsla(0,100%,50%,0.1)"><span style="color:#710">"</span><span style="color:#D20">Hello, World!</span><span style="color:#710">"</span></span></pre></div>
|
25
22
|
</div>
|
26
23
|
BLOCKCODE
|
27
24
|
RedCloth.new('bc[ruby]. puts "Hello, World!"').to_html
|
@@ -66,19 +63,15 @@ class BasicTest < Test::Unit::TestCase
|
|
66
63
|
# See http://jgarber.lighthouseapp.com/projects/13054/tickets/124-code-markup-does-not-allow-brackets.
|
67
64
|
def test_for_redcloth_false_positive
|
68
65
|
require 'coderay/for_redcloth'
|
69
|
-
|
70
|
-
|
71
|
-
RedCloth.new('@[project]_dff.skjd@').to_html
|
72
|
-
end
|
66
|
+
assert_equal '<p><code>[project]_dff.skjd</code></p>',
|
67
|
+
RedCloth.new('@[project]_dff.skjd@').to_html
|
73
68
|
# false positive, but expected behavior / known issue
|
74
69
|
assert_equal "<p><span lang=\"ruby\" class=\"CodeRay\">_dff.skjd</span></p>",
|
75
70
|
RedCloth.new('@[ruby]_dff.skjd@').to_html
|
76
|
-
|
77
|
-
assert_equal <<-BLOCKCODE.chomp,
|
71
|
+
assert_equal <<-BLOCKCODE.chomp,
|
78
72
|
<pre><code>[project]_dff.skjd</code></pre>
|
79
|
-
|
80
|
-
|
81
|
-
end
|
73
|
+
BLOCKCODE
|
74
|
+
RedCloth.new('bc. [project]_dff.skjd').to_html
|
82
75
|
end
|
83
76
|
|
84
77
|
end if defined? RedCloth
|
data/test/functional/suite.rb
CHANGED
@@ -1,15 +1,12 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
|
3
|
-
|
4
|
-
$:.unshift File.expand_path('../../../lib', __FILE__)
|
5
|
-
require 'coderay'
|
6
|
-
|
7
|
-
mydir = File.dirname(__FILE__)
|
8
|
-
suite = Dir[File.join(mydir, '*.rb')].
|
9
|
-
map { |tc| File.basename(tc).sub(/\.rb$/, '') } - %w'suite for_redcloth'
|
3
|
+
MYDIR = File.dirname(__FILE__)
|
10
4
|
|
11
|
-
|
5
|
+
$:.unshift 'lib'
|
6
|
+
require 'coderay'
|
7
|
+
puts "Running basic CodeRay #{CodeRay::VERSION} tests..."
|
12
8
|
|
9
|
+
suite = %w(basic examples load_plugin_scanner word_list)
|
13
10
|
for test_case in suite
|
14
|
-
load File.join(
|
11
|
+
load File.join(MYDIR, test_case + '.rb')
|
15
12
|
end
|