coderay 0.5.0.100 → 0.5.0.115
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 +2 -2
- data/demo/demo_server.rb +2 -2
- data/lib/coderay/encoders/html.rb +30 -23
- data/lib/coderay/encoders/html/css.rb +1 -1
- data/lib/coderay/encoders/html/numerization.rb +2 -2
- data/lib/coderay/encoders/html/output.rb +1 -1
- data/lib/coderay/helpers/plugin.rb +18 -6
- data/lib/coderay/helpers/word_list.rb +94 -95
- data/lib/coderay/scanners/ruby.rb +4 -4
- data/lib/coderay/scanners/ruby/patterns.rb +7 -7
- metadata +77 -75
data/README
CHANGED
@@ -24,7 +24,7 @@ Idea:: licenser
|
|
24
24
|
Website:: rd.cYcnus.de/coderay[http://rd.cYcnus.de/coderay]
|
25
25
|
Copyright:: (c) 2005 by cYcnus
|
26
26
|
License:: GNU LGPL; see LICENSE file in the main directory.
|
27
|
-
Subversion:: $Id: README
|
27
|
+
Subversion:: $Id: README 111 2006-03-15 22:51:50Z murphy $
|
28
28
|
|
29
29
|
-----
|
30
30
|
|
@@ -45,7 +45,7 @@ CodeRay needs Ruby 1.8 and the strscan[http://www.ruby-doc.org/stdlib/libdoc/str
|
|
45
45
|
|
46
46
|
require 'coderay'
|
47
47
|
|
48
|
-
hl = CodeRay.html :line_numbers => :
|
48
|
+
hl = CodeRay.html :line_numbers => :table
|
49
49
|
puts hl.highlight_page "puts 'Hello, world!'", :ruby
|
50
50
|
|
51
51
|
|
data/demo/demo_server.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
unless ARGV.grep(/-[hv]|--(help|version)/).empty?
|
4
4
|
puts <<-USAGE
|
5
5
|
CodeRay Server 0.5
|
6
|
-
$Id: demo_server.rb
|
6
|
+
$Id: demo_server.rb 113 2006-03-15 23:24:37Z murphy $
|
7
7
|
|
8
8
|
Usage:
|
9
9
|
1) Start this and your browser.
|
@@ -77,7 +77,7 @@ class CodeRayServlet < WEBrick::HTTPServlet::AbstractServlet
|
|
77
77
|
$".delete_if { |f| f =~ /coderay/ }
|
78
78
|
require 'coderay'
|
79
79
|
end
|
80
|
-
div = CodeRay.scan_file(path).html :tab_width => 8, :wrap => :div
|
80
|
+
div = CodeRay.scan_file(path).html :tab_width => 8, :wrap => :div, :hint => :info
|
81
81
|
div.replace <<-DIV
|
82
82
|
<div #{STYLE}>
|
83
83
|
#{backlinks}
|
@@ -55,7 +55,7 @@ module Encoders
|
|
55
55
|
#
|
56
56
|
# === :hint
|
57
57
|
# Include some information into the output using the title attribute.
|
58
|
-
# Can be :info (show token type on mouse-over) or :debug.
|
58
|
+
# Can be :info (show token type on mouse-over), :info_long (with full path) or :debug (via inspect).
|
59
59
|
#
|
60
60
|
# Default: false
|
61
61
|
class HTML < Encoder
|
@@ -109,6 +109,30 @@ module Encoders
|
|
109
109
|
# \x9 (\t) and \xA (\n) not included
|
110
110
|
HTML_ESCAPE_PATTERN = /[\t&"><\xB-\x1f\x7f-\xff\0-\x8]/
|
111
111
|
|
112
|
+
TOKEN_KIND_TO_INFO = Hash.new do |h, kind|
|
113
|
+
h[kind] =
|
114
|
+
case kind
|
115
|
+
when :pre_constant
|
116
|
+
'Predefined constant'
|
117
|
+
else
|
118
|
+
kind.to_s.gsub(/_/, ' ').gsub(/\b\w/) { $&.capitalize }
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
def self.token_path_to_hint hint, classes
|
123
|
+
return '' unless hint
|
124
|
+
title =
|
125
|
+
case hint
|
126
|
+
when :info
|
127
|
+
TOKEN_KIND_TO_INFO[classes.first]
|
128
|
+
when :info_long
|
129
|
+
classes.map { |kind| TOKEN_KIND_TO_INFO[kind] }.join('/')
|
130
|
+
when :debug
|
131
|
+
k.inspect
|
132
|
+
end
|
133
|
+
" title=\"#{title}\""
|
134
|
+
end
|
135
|
+
|
112
136
|
def setup options
|
113
137
|
super
|
114
138
|
return if options == @last_options
|
@@ -138,16 +162,7 @@ module Encoders
|
|
138
162
|
if c == :NO_HIGHLIGHT and not hint
|
139
163
|
h[k] = false
|
140
164
|
else
|
141
|
-
title =
|
142
|
-
if hint == :debug
|
143
|
-
' title="%p"' % [ k ]
|
144
|
-
elsif hint == :info
|
145
|
-
path = (k[1..-1] << k.first).map { |kind| kind.to_s.gsub(/_/, ' ').gsub(/\b\w/) { $&.capitalize } }
|
146
|
-
" title=\"#{path.join('/')}\""
|
147
|
-
end
|
148
|
-
else
|
149
|
-
''
|
150
|
-
end
|
165
|
+
title = HTML.token_path_to_hint hint, (k[1..-1] << k.first)
|
151
166
|
h[k] = '<span%s class="%s">' % [title, c]
|
152
167
|
end
|
153
168
|
end
|
@@ -160,20 +175,12 @@ module Encoders
|
|
160
175
|
styles = [k]
|
161
176
|
end
|
162
177
|
type = styles.first
|
163
|
-
styles.map
|
164
|
-
if
|
178
|
+
classes = styles.map { |c| ClassOfKind[c] }
|
179
|
+
if classes.first == :NO_HIGHLIGHT and not hint
|
165
180
|
h[k] = false
|
166
181
|
else
|
167
|
-
title =
|
168
|
-
|
169
|
-
' title="%p"' % [ styles ]
|
170
|
-
elsif hint == :info and styles.size == 1
|
171
|
-
" title=\"#{type.to_s.gsub(/_/, " ").capitalize}\""
|
172
|
-
end
|
173
|
-
else
|
174
|
-
''
|
175
|
-
end
|
176
|
-
style = @css[*styles]
|
182
|
+
title = HTML.token_path_to_hint hint, styles
|
183
|
+
style = @css[*classes]
|
177
184
|
h[k] =
|
178
185
|
if style
|
179
186
|
'<span%s style="%s">' % [title, style]
|
@@ -12,9 +12,9 @@ module CodeRay
|
|
12
12
|
NUMERIZABLE_WRAPPINGS = {
|
13
13
|
:table => [:div, :page],
|
14
14
|
:inline => :all,
|
15
|
-
:list => [:div, :page]
|
16
|
-
nil => :all
|
15
|
+
:list => [:div, :page]
|
17
16
|
}
|
17
|
+
NUMERIZABLE_WRAPPINGS.default = :all
|
18
18
|
|
19
19
|
def numerize! mode = :table, options = {}
|
20
20
|
return self unless mode
|
@@ -25,7 +25,7 @@ module CodeRay
|
|
25
25
|
#
|
26
26
|
# a = Output.new '<span class="co">Code</span>'
|
27
27
|
# a.wrap! :page
|
28
|
-
def new string, css, element = nil
|
28
|
+
def new string, css = CSS.new, element = nil
|
29
29
|
output = string.clone.extend self
|
30
30
|
output.wrapped_in = element
|
31
31
|
output.css = css
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# = PluginHost
|
2
2
|
#
|
3
|
-
# $Id: plugin.rb
|
3
|
+
# $Id: plugin.rb 105 2006-02-20 01:41:40Z murphy $
|
4
4
|
#
|
5
5
|
# A simple subclass plugin system.
|
6
6
|
#
|
@@ -178,12 +178,13 @@ protected
|
|
178
178
|
|
179
179
|
# Loads the map file (see map).
|
180
180
|
#
|
181
|
-
# This is done automatically when
|
181
|
+
# This is done automatically when plugin_path is called.
|
182
182
|
def load_map
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
183
|
+
mapfile = path_to '_map'
|
184
|
+
if File.exist? mapfile
|
185
|
+
require mapfile
|
186
|
+
elsif $DEBUG
|
187
|
+
warn 'no _map.rb found for %s' % name
|
187
188
|
end
|
188
189
|
end
|
189
190
|
|
@@ -270,12 +271,23 @@ module Plugin
|
|
270
271
|
self::PLUGIN_HOST
|
271
272
|
end
|
272
273
|
|
274
|
+
# Require some helper files.
|
275
|
+
#
|
276
|
+
# Example:
|
277
|
+
#
|
278
|
+
# class MyPlugin < PluginHost::BaseClass
|
279
|
+
# register_for :my_id
|
280
|
+
# helper :my_helper
|
281
|
+
#
|
282
|
+
# The above example loads the file myplugin/my_helper.rb relative to the
|
283
|
+
# file in which MyPlugin was defined.
|
273
284
|
def helper *helpers
|
274
285
|
for helper in helpers
|
275
286
|
self::PLUGIN_HOST.require_helper plugin_id, helper.to_s
|
276
287
|
end
|
277
288
|
end
|
278
289
|
|
290
|
+
# Returns the pulgin id used by the engine.
|
279
291
|
def plugin_id
|
280
292
|
name[/[\w_]+$/].downcase
|
281
293
|
end
|
@@ -1,108 +1,107 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# = WordList
|
2
|
+
#
|
3
|
+
# Copyright (c) 2006 by murphy (Kornelius Kalnbach) <murphy cYcnus de>
|
4
|
+
#
|
5
|
+
# License:: LGPL / ask the author
|
6
|
+
# Version:: 1.0 (2006-Feb-3)
|
7
|
+
#
|
8
|
+
# A WordList is a Hash with some additional features.
|
9
|
+
# It is intended to be used for keyword recognition.
|
10
|
+
#
|
11
|
+
# WordList is highly optimized to be used in Scanners,
|
12
|
+
# typically to decide whether a given ident is a keyword.
|
13
|
+
#
|
14
|
+
# For case insensitive words use CaseIgnoringWordList.
|
15
|
+
#
|
16
|
+
# Example:
|
17
|
+
#
|
18
|
+
# # define word arrays
|
19
|
+
# RESERVED_WORDS = %w[
|
20
|
+
# asm break case continue default do else
|
21
|
+
# ...
|
22
|
+
# ]
|
23
|
+
#
|
24
|
+
# PREDEFINED_TYPES = %w[
|
25
|
+
# int long short char void
|
26
|
+
# ...
|
27
|
+
# ]
|
28
|
+
#
|
29
|
+
# PREDEFINED_CONSTANTS = %w[
|
30
|
+
# EOF NULL ...
|
31
|
+
# ]
|
32
|
+
#
|
33
|
+
# # make a WordList
|
34
|
+
# IDENT_KIND = WordList.new(:ident).
|
35
|
+
# add(RESERVED_WORDS, :reserved).
|
36
|
+
# add(PREDEFINED_TYPES, :pre_type).
|
37
|
+
# add(PREDEFINED_CONSTANTS, :pre_constant)
|
38
|
+
#
|
39
|
+
# ...
|
40
|
+
#
|
41
|
+
# def scan_tokens tokens, options
|
42
|
+
# ...
|
43
|
+
#
|
44
|
+
# elsif scan(/[A-Za-z_][A-Za-z_0-9]*/)
|
45
|
+
# # use it
|
46
|
+
# kind = IDENT_KIND[match]
|
47
|
+
# ...
|
48
|
+
#
|
49
|
+
class WordList < Hash
|
3
50
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
#
|
12
|
-
# For case insensitive words use CaseIgnoringWordList.
|
13
|
-
#
|
14
|
-
# Example:
|
15
|
-
#
|
16
|
-
# # define word arrays
|
17
|
-
# RESERVED_WORDS = %w[
|
18
|
-
# asm break case continue default do else
|
19
|
-
# ...
|
20
|
-
# ]
|
21
|
-
#
|
22
|
-
# PREDEFINED_TYPES = %w[
|
23
|
-
# int long short char void
|
24
|
-
# ...
|
25
|
-
# ]
|
26
|
-
#
|
27
|
-
# PREDEFINED_CONSTANTS = %w[
|
28
|
-
# EOF NULL ...
|
29
|
-
# ]
|
30
|
-
#
|
31
|
-
# # make a WordList
|
32
|
-
# IDENT_KIND = WordList.new(:ident).
|
33
|
-
# add(RESERVED_WORDS, :reserved).
|
34
|
-
# add(PREDEFINED_TYPES, :pre_type).
|
35
|
-
# add(PREDEFINED_CONSTANTS, :pre_constant)
|
36
|
-
#
|
37
|
-
# ...
|
38
|
-
#
|
39
|
-
# def scan_tokens tokens, options
|
40
|
-
# ...
|
41
|
-
#
|
42
|
-
# elsif scan(/[A-Za-z_][A-Za-z_0-9]*/)
|
43
|
-
# # use it
|
44
|
-
# kind = IDENT_KIND[match]
|
45
|
-
# ...
|
46
|
-
#
|
47
|
-
class WordList < Hash
|
48
|
-
|
49
|
-
# Creates a new WordList with +default+ as default value.
|
50
|
-
def initialize default = false, &block
|
51
|
-
super default, &block
|
52
|
-
end
|
51
|
+
# Create a WordList for the given +words+.
|
52
|
+
#
|
53
|
+
# This WordList responds to [] with +true+, if the word is
|
54
|
+
# in +words+, and with +false+ otherwise.
|
55
|
+
def self.for words
|
56
|
+
new.add words
|
57
|
+
end
|
53
58
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
59
|
+
# Creates a new WordList with +default+ as default value.
|
60
|
+
def initialize default = false, &block
|
61
|
+
super default, &block
|
62
|
+
end
|
58
63
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
end
|
64
|
-
self
|
65
|
-
end
|
64
|
+
# Checks if a word is included.
|
65
|
+
def include? word
|
66
|
+
has_key? word
|
67
|
+
end
|
66
68
|
|
67
|
-
|
68
|
-
|
69
|
+
# Add words to the list and associate them with +kind+.
|
70
|
+
def add words, kind = true
|
71
|
+
words.each do |word|
|
72
|
+
self[word] = kind
|
73
|
+
end
|
74
|
+
self
|
75
|
+
end
|
69
76
|
|
70
|
-
|
71
|
-
# It is intended to be used for keyword recognition.
|
72
|
-
#
|
73
|
-
# Keys are compared case-insensitively.
|
74
|
-
#
|
75
|
-
# See WordList.
|
76
|
-
class CaseIgnoringWordList < WordList
|
77
|
+
end
|
77
78
|
|
78
|
-
# Creates a new WordList with +default+ as default value.
|
79
|
-
#
|
80
|
-
# Text case is ignored.
|
81
|
-
def initialize default = false, &block
|
82
|
-
block ||= proc do |h, k|
|
83
|
-
h[k] = h.fetch k.downcase, default
|
84
|
-
end
|
85
|
-
super default
|
86
|
-
end
|
87
79
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
end
|
80
|
+
# A CaseIgnoringWordList is like a WordList, only that
|
81
|
+
# keys are compared case-insensitively.
|
82
|
+
class CaseIgnoringWordList < WordList
|
92
83
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
84
|
+
# Creates a new WordList with +default+ as default value.
|
85
|
+
#
|
86
|
+
# Text case is ignored.
|
87
|
+
def initialize default = false, &block
|
88
|
+
block ||= proc do |h, k|
|
89
|
+
h[k] = h.fetch k.downcase, default
|
90
|
+
end
|
91
|
+
super default
|
92
|
+
end
|
100
93
|
|
101
|
-
|
94
|
+
# Checks if a word is included.
|
95
|
+
def include? word
|
96
|
+
has_key? word.downcase
|
97
|
+
end
|
102
98
|
|
99
|
+
# Add words to the list and associate them with +kind+.
|
100
|
+
def add words, kind = true
|
101
|
+
words.each do |word|
|
102
|
+
self[word.downcase] = kind
|
103
103
|
end
|
104
|
-
|
104
|
+
self
|
105
105
|
end
|
106
|
-
end
|
107
106
|
|
108
|
-
|
107
|
+
end
|
@@ -134,7 +134,7 @@ module CodeRay module Scanners
|
|
134
134
|
last_state = state # scan one token as normal code, then return here
|
135
135
|
state = :initial
|
136
136
|
else
|
137
|
-
|
137
|
+
raise_inspect 'else-case # reached; #%p not handled' % peek(1), tokens
|
138
138
|
end
|
139
139
|
|
140
140
|
when state.paren
|
@@ -145,7 +145,7 @@ module CodeRay module Scanners
|
|
145
145
|
tokens << [match, :function]
|
146
146
|
|
147
147
|
else
|
148
|
-
|
148
|
+
raise_inspect 'else-case " reached; %p not handled, state = %p' % [match, state], tokens
|
149
149
|
|
150
150
|
end
|
151
151
|
next
|
@@ -178,7 +178,7 @@ module CodeRay module Scanners
|
|
178
178
|
type = :comment
|
179
179
|
regexp_allowed = true
|
180
180
|
else
|
181
|
-
|
181
|
+
raise_inspect 'else-case _ reached, because case %p was not handled' % [matched[0].chr], tokens
|
182
182
|
end
|
183
183
|
tokens << [match, type]
|
184
184
|
next
|
@@ -274,7 +274,7 @@ module CodeRay module Scanners
|
|
274
274
|
|
275
275
|
elsif fancy_allowed and match = scan(/#{FANCY_START}/o)
|
276
276
|
type, interpreted = *FancyStringType.fetch(self[1]) do
|
277
|
-
|
277
|
+
raise_inspect 'Unknown fancy string: %%%p' % k, tokens
|
278
278
|
end
|
279
279
|
tokens << [:open, type]
|
280
280
|
state = StringState.new type, interpreted, self[2]
|
@@ -71,7 +71,7 @@ module CodeRay module Scanners
|
|
71
71
|
EXPONENT = / [eE] [+-]? #{DECIMAL} /ox
|
72
72
|
FLOAT_SUFFIX = / #{EXPONENT} | \. #{DECIMAL} #{EXPONENT}? /ox
|
73
73
|
FLOAT_OR_INT = / #{DECIMAL} (?: #{FLOAT_SUFFIX} () )? /ox
|
74
|
-
NUMERIC = / (?=0) (?: #{OCTAL} | #{HEXADECIMAL} | #{BINARY} ) | #{FLOAT_OR_INT} /ox
|
74
|
+
NUMERIC = / [-+]? (?: (?=0) (?: #{OCTAL} | #{HEXADECIMAL} | #{BINARY} ) | #{FLOAT_OR_INT} ) /ox
|
75
75
|
|
76
76
|
SYMBOL = /
|
77
77
|
:
|
@@ -160,8 +160,8 @@ module CodeRay module Scanners
|
|
160
160
|
STRING_PATTERN = Hash.new { |h, k|
|
161
161
|
delim, interpreted = *k
|
162
162
|
delim_pattern = Regexp.escape(delim.dup)
|
163
|
-
if
|
164
|
-
delim_pattern << Regexp.escape(
|
163
|
+
if closing_paren = CLOSING_PAREN[delim]
|
164
|
+
delim_pattern << Regexp.escape(closing_paren)
|
165
165
|
end
|
166
166
|
|
167
167
|
|
@@ -194,15 +194,15 @@ module CodeRay module Scanners
|
|
194
194
|
}
|
195
195
|
|
196
196
|
def initialize kind, interpreted, delim, heredoc = false
|
197
|
-
if paren = CLOSING_PAREN[delim]
|
198
|
-
delim, paren = paren, delim
|
199
|
-
paren_depth = 1
|
200
|
-
end
|
201
197
|
if heredoc
|
202
198
|
pattern = HEREDOC_PATTERN[ [delim, interpreted, heredoc == :indented] ]
|
203
199
|
delim = nil
|
204
200
|
else
|
205
201
|
pattern = STRING_PATTERN[ [delim, interpreted] ]
|
202
|
+
if paren = CLOSING_PAREN[delim]
|
203
|
+
delim, paren = paren, delim
|
204
|
+
paren_depth = 1
|
205
|
+
end
|
206
206
|
end
|
207
207
|
super kind, interpreted, delim, heredoc, paren, paren_depth, pattern, :initial
|
208
208
|
end
|
metadata
CHANGED
@@ -1,100 +1,102 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.8.
|
2
|
+
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.
|
7
|
-
date:
|
6
|
+
version: 0.5.0.115
|
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:
|
10
|
-
|
10
|
+
- lib
|
11
11
|
email: murphy@cYcnus.de
|
12
12
|
homepage: http://rd.cycnus.de/coderay
|
13
13
|
rubyforge_project: coderay
|
14
|
-
description: "CodeRay is a Ruby library for syntax highlighting. I try to make CodeRay easy to
|
15
|
-
use and intuitive, but at the same time fully featured, complete, fast and
|
16
|
-
efficient. Usage is simple: require 'coderay' code = 'some %q(weird (Ruby)
|
17
|
-
can't shock) me!' puts CodeRay.scan(code, :ruby).html"
|
14
|
+
description: "CodeRay is a Ruby library for syntax highlighting. I try to make CodeRay easy to use and intuitive, but at the same time fully featured, complete, fast and efficient. Usage is simple: require 'coderay' code = 'some %q(weird (Ruby) can't shock) me!' puts CodeRay.scan(code, :ruby).html"
|
18
15
|
autorequire: coderay
|
19
16
|
default_executable:
|
20
17
|
bindir: bin
|
21
18
|
has_rdoc: true
|
22
19
|
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
23
20
|
requirements:
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
version: 0.0.0
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
28
24
|
version:
|
29
25
|
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
30
28
|
authors:
|
31
|
-
|
29
|
+
- murphy
|
32
30
|
files:
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
31
|
+
- ./lib/coderay.rb
|
32
|
+
- ./lib/coderay/encoder.rb
|
33
|
+
- ./lib/coderay/scanner.rb
|
34
|
+
- ./lib/coderay/style.rb
|
35
|
+
- ./lib/coderay/tokens.rb
|
36
|
+
- ./lib/coderay/encoders/count.rb
|
37
|
+
- ./lib/coderay/encoders/debug.rb
|
38
|
+
- ./lib/coderay/encoders/div.rb
|
39
|
+
- ./lib/coderay/encoders/html.rb
|
40
|
+
- ./lib/coderay/encoders/null.rb
|
41
|
+
- ./lib/coderay/encoders/span.rb
|
42
|
+
- ./lib/coderay/encoders/statistic.rb
|
43
|
+
- ./lib/coderay/encoders/text.rb
|
44
|
+
- ./lib/coderay/encoders/tokens.rb
|
45
|
+
- ./lib/coderay/encoders/xml.rb
|
46
|
+
- ./lib/coderay/encoders/yaml.rb
|
47
|
+
- ./lib/coderay/encoders/_map.rb
|
48
|
+
- ./lib/coderay/encoders/html/classes.rb
|
49
|
+
- ./lib/coderay/encoders/html/css.rb
|
50
|
+
- ./lib/coderay/encoders/html/numerization.rb
|
51
|
+
- ./lib/coderay/encoders/html/output.rb
|
52
|
+
- ./lib/coderay/helpers/filetype.rb
|
53
|
+
- ./lib/coderay/helpers/gzip_simple.rb
|
54
|
+
- ./lib/coderay/helpers/plugin.rb
|
55
|
+
- ./lib/coderay/helpers/word_list.rb
|
56
|
+
- ./lib/coderay/scanners/c.rb
|
57
|
+
- ./lib/coderay/scanners/delphi.rb
|
58
|
+
- ./lib/coderay/scanners/plaintext.rb
|
59
|
+
- ./lib/coderay/scanners/ruby.rb
|
60
|
+
- ./lib/coderay/scanners/_map.rb
|
61
|
+
- ./lib/coderay/scanners/ruby/patterns.rb
|
62
|
+
- ./lib/coderay/styles/cycnus.rb
|
63
|
+
- ./lib/coderay/styles/murphy.rb
|
64
|
+
- ./demo/demo_count.rb
|
65
|
+
- ./demo/demo_css.rb
|
66
|
+
- ./demo/demo_div.rb
|
67
|
+
- ./demo/demo_dump.rb
|
68
|
+
- ./demo/demo_encoder.rb
|
69
|
+
- ./demo/demo_global_vars.rb
|
70
|
+
- ./demo/demo_global_vars2.rb
|
71
|
+
- ./demo/demo_highlight.rb
|
72
|
+
- ./demo/demo_html.rb
|
73
|
+
- ./demo/demo_html2.rb
|
74
|
+
- ./demo/demo_load_encoder.rb
|
75
|
+
- ./demo/demo_load_scanner.rb
|
76
|
+
- ./demo/demo_more.rb
|
77
|
+
- ./demo/demo_scanner.rb
|
78
|
+
- ./demo/demo_server.rb
|
79
|
+
- ./demo/demo_simple.rb
|
80
|
+
- ./demo/demo_stream.rb
|
81
|
+
- ./demo/demo_stream2.rb
|
82
|
+
- ./demo/demo_tokens.rb
|
83
|
+
- ./demo/suite.rb
|
84
|
+
- ./README
|
85
|
+
- ./LICENSE
|
88
86
|
test_files: []
|
87
|
+
|
89
88
|
rdoc_options:
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
89
|
+
- -SNw2
|
90
|
+
- -mREADME
|
91
|
+
- -a
|
92
|
+
- -t CodeRay Documentation
|
94
93
|
extra_rdoc_files:
|
95
|
-
|
94
|
+
- ./README
|
96
95
|
executables: []
|
96
|
+
|
97
97
|
extensions: []
|
98
|
+
|
98
99
|
requirements:
|
99
|
-
|
100
|
-
dependencies: []
|
100
|
+
- strscan
|
101
|
+
dependencies: []
|
102
|
+
|