coderay 0.5.0.115 → 0.5.0.121
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/README +3 -3
- data/demo/suite.rb +1 -1
- data/lib/coderay.rb +4 -4
- data/lib/coderay/encoders/html.rb +16 -10
- data/lib/coderay/tokens.rb +4 -5
- metadata +1 -1
data/README
CHANGED
|
@@ -18,13 +18,13 @@ And with line numbers.
|
|
|
18
18
|
* is what everybody should have on their website
|
|
19
19
|
* solves all your problems and makes the girls run after you
|
|
20
20
|
|
|
21
|
-
Version: 0.5.0 (
|
|
21
|
+
Version: 0.5.0 (2006.march.16)
|
|
22
22
|
Author:: murphy
|
|
23
23
|
Idea:: licenser
|
|
24
24
|
Website:: rd.cYcnus.de/coderay[http://rd.cYcnus.de/coderay]
|
|
25
|
-
Copyright:: (c)
|
|
25
|
+
Copyright:: (c) 2006 by cYcnus
|
|
26
26
|
License:: GNU LGPL; see LICENSE file in the main directory.
|
|
27
|
-
Subversion:: $Id: README
|
|
27
|
+
Subversion:: $Id: README 119 2006-03-16 00:43:02Z murphy $
|
|
28
28
|
|
|
29
29
|
-----
|
|
30
30
|
|
data/demo/suite.rb
CHANGED
|
@@ -22,7 +22,7 @@ class CodeRaySuite < TestCase
|
|
|
22
22
|
|
|
23
23
|
def test_ALL
|
|
24
24
|
dir do
|
|
25
|
-
for input in Dir["demo_*.rb"] -
|
|
25
|
+
for input in Dir["demo_*.rb"] - %w(demo_server.rb demo_stream.rb)
|
|
26
26
|
puts "[ testing #{input}... ]"
|
|
27
27
|
name = File.basename(input, ".rb")
|
|
28
28
|
output = name + '.out'
|
data/lib/coderay.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# = CodeRay Library
|
|
2
2
|
#
|
|
3
|
-
# $Id: coderay.rb
|
|
3
|
+
# $Id: coderay.rb 120 2006-03-16 18:35:43Z murphy $
|
|
4
4
|
#
|
|
5
5
|
# CodeRay is a Ruby library for syntax highlighting.
|
|
6
6
|
#
|
|
@@ -69,10 +69,10 @@
|
|
|
69
69
|
# * Input and language are always sorted in this order: +code+, +lang+.
|
|
70
70
|
# (This is in alphabetical order, if you need a mnemonic ;)
|
|
71
71
|
#
|
|
72
|
-
# You should be able to highlight everything you want just using
|
|
72
|
+
# You should be able to highlight everything you want just using these methods;
|
|
73
73
|
# so there is no need to dive into CodeRay's deep class hierarchy.
|
|
74
74
|
#
|
|
75
|
-
# The
|
|
75
|
+
# The examples in the demo directory demonstrate common cases using this interface.
|
|
76
76
|
#
|
|
77
77
|
# = Basic Access Ways
|
|
78
78
|
#
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
# Each Token knows about what type it is: string, comment, class name, etc.
|
|
85
85
|
#
|
|
86
86
|
# Each +lang+ (language) has its own Scanner; for example, <tt>:ruby</tt> code is
|
|
87
|
-
# handled by CodeRay::Scanners::
|
|
87
|
+
# handled by CodeRay::Scanners::Ruby.
|
|
88
88
|
#
|
|
89
89
|
# CodeRay.scan:: Scan a string in a given language into Tokens.
|
|
90
90
|
# This is the most common method to use.
|
|
@@ -100,16 +100,17 @@ module Encoders
|
|
|
100
100
|
'<' => '<',
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
# This
|
|
103
|
+
# This was to prevent illegal HTML.
|
|
104
104
|
# Strange chars should still be avoided in codes.
|
|
105
|
-
evil_chars = Array(0x00...0x20) - [
|
|
105
|
+
evil_chars = Array(0x00...0x20) - [?\n, ?\t, ?\s]
|
|
106
106
|
evil_chars.each { |i| HTML_ESCAPE[i.chr] = ' ' }
|
|
107
|
-
ansi_chars = Array(0x7f..0xff)
|
|
108
|
-
ansi_chars.each { |i| HTML_ESCAPE[i.chr] = '&#%d;' % i }
|
|
107
|
+
#ansi_chars = Array(0x7f..0xff)
|
|
108
|
+
#ansi_chars.each { |i| HTML_ESCAPE[i.chr] = '&#%d;' % i }
|
|
109
109
|
# \x9 (\t) and \xA (\n) not included
|
|
110
|
-
HTML_ESCAPE_PATTERN = /[\t&"><\xB-\x1f\x7f-\xff
|
|
110
|
+
#HTML_ESCAPE_PATTERN = /[\t&"><\0-\x8\xB-\x1f\x7f-\xff]/
|
|
111
|
+
HTML_ESCAPE_PATTERN = /[\t"&><\0-\x8\xB-\x1f]/
|
|
111
112
|
|
|
112
|
-
TOKEN_KIND_TO_INFO = Hash.new
|
|
113
|
+
TOKEN_KIND_TO_INFO = Hash.new { |h, kind|
|
|
113
114
|
h[kind] =
|
|
114
115
|
case kind
|
|
115
116
|
when :pre_constant
|
|
@@ -117,8 +118,11 @@ module Encoders
|
|
|
117
118
|
else
|
|
118
119
|
kind.to_s.gsub(/_/, ' ').gsub(/\b\w/) { $&.capitalize }
|
|
119
120
|
end
|
|
120
|
-
|
|
121
|
+
}
|
|
121
122
|
|
|
123
|
+
# Generate a hint about the given +classes+ in a +hint+ style.
|
|
124
|
+
#
|
|
125
|
+
# +hint+ may be :info, :info_long or :debug.
|
|
122
126
|
def self.token_path_to_hint hint, classes
|
|
123
127
|
return '' unless hint
|
|
124
128
|
title =
|
|
@@ -126,9 +130,9 @@ module Encoders
|
|
|
126
130
|
when :info
|
|
127
131
|
TOKEN_KIND_TO_INFO[classes.first]
|
|
128
132
|
when :info_long
|
|
129
|
-
classes.map { |kind| TOKEN_KIND_TO_INFO[kind] }.join('/')
|
|
133
|
+
classes.reverse.map { |kind| TOKEN_KIND_TO_INFO[kind] }.join('/')
|
|
130
134
|
when :debug
|
|
131
|
-
|
|
135
|
+
classes.inspect
|
|
132
136
|
end
|
|
133
137
|
" title=\"#{title}\""
|
|
134
138
|
end
|
|
@@ -145,7 +149,7 @@ module Encoders
|
|
|
145
149
|
@css = CSS.new options[:style]
|
|
146
150
|
|
|
147
151
|
hint = options[:hint]
|
|
148
|
-
if hint and not [:debug, :info].include? hint
|
|
152
|
+
if hint and not [:debug, :info, :info_long].include? hint
|
|
149
153
|
raise ArgumentError, "Unknown value %p for :hint; expected :info, :debug, false or nil." % hint
|
|
150
154
|
end
|
|
151
155
|
|
|
@@ -179,7 +183,9 @@ module Encoders
|
|
|
179
183
|
if classes.first == :NO_HIGHLIGHT and not hint
|
|
180
184
|
h[k] = false
|
|
181
185
|
else
|
|
186
|
+
styles.shift if [:delimiter, :modifier, :content, :escape].include? styles.first
|
|
182
187
|
title = HTML.token_path_to_hint hint, styles
|
|
188
|
+
classes.delete 'il'
|
|
183
189
|
style = @css[*classes]
|
|
184
190
|
h[k] =
|
|
185
191
|
if style
|
data/lib/coderay/tokens.rb
CHANGED
|
@@ -161,12 +161,11 @@ module CodeRay
|
|
|
161
161
|
# This can not be undone, but should yield the same output
|
|
162
162
|
# in most Encoders. It basically makes the output smaller.
|
|
163
163
|
#
|
|
164
|
-
# Combined with dump, it saves space for the cost
|
|
165
|
-
# calculating time.
|
|
164
|
+
# Combined with dump, it saves space for the cost of time.
|
|
166
165
|
#
|
|
167
166
|
# If the scanner is written carefully, this is not required -
|
|
168
|
-
# for example, consecutive //-comment lines
|
|
169
|
-
# joined in one token by the Scanner.
|
|
167
|
+
# for example, consecutive //-comment lines could already be
|
|
168
|
+
# joined in one comment token by the Scanner.
|
|
170
169
|
def optimize
|
|
171
170
|
print ' Tokens#optimize: before: %d - ' % size if $DEBUG
|
|
172
171
|
last_kind = last_text = nil
|
|
@@ -219,7 +218,7 @@ module CodeRay
|
|
|
219
218
|
dump.extend Undumping
|
|
220
219
|
end
|
|
221
220
|
|
|
222
|
-
# The total size of the tokens
|
|
221
|
+
# The total size of the tokens.
|
|
223
222
|
# Should be equal to the input size before
|
|
224
223
|
# scanning.
|
|
225
224
|
def text_size
|
metadata
CHANGED
|
@@ -3,7 +3,7 @@ rubygems_version: 0.8.11
|
|
|
3
3
|
specification_version: 1
|
|
4
4
|
name: coderay
|
|
5
5
|
version: !ruby/object:Gem::Version
|
|
6
|
-
version: 0.5.0.
|
|
6
|
+
version: 0.5.0.121
|
|
7
7
|
date: 2006-03-16 00:00:00 +01:00
|
|
8
8
|
summary: CodeRay is a fast syntax highlighter engine for many languages.
|
|
9
9
|
require_paths:
|