coderay 0.8.312 → 0.8.357
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/lib/README +1 -1
- data/lib/coderay/for_redcloth.rb +8 -1
- data/lib/coderay/scanners/ruby.rb +1 -1
- metadata +7 -7
- data/lib/coderay/scanners/sql.Keith.rb +0 -143
- data/lib/coderay/scanners/sql.rb +0 -154
data/lib/README
CHANGED
@@ -18,7 +18,7 @@ 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.8.
|
21
|
+
Version: 0.8.4
|
22
22
|
Author:: murphy (Kornelius Kalnbach)
|
23
23
|
Contact:: murphy rubychan de
|
24
24
|
Website:: coderay.rubychan.de[http://coderay.rubychan.de]
|
data/lib/coderay/for_redcloth.rb
CHANGED
@@ -15,7 +15,9 @@ module CodeRay
|
|
15
15
|
def self.install
|
16
16
|
gem 'RedCloth', '>= 4.0.3' rescue nil
|
17
17
|
require 'redcloth'
|
18
|
-
|
18
|
+
unless RedCloth::VERSION.to_s >= '4.0.3'
|
19
|
+
raise 'CodeRay.for_redcloth needs RedCloth version 4.0.3 or later.'
|
20
|
+
end
|
19
21
|
RedCloth::TextileDoc.send :include, ForRedCloth::TextileDoc
|
20
22
|
RedCloth::Formatters::HTML.module_eval do
|
21
23
|
def unescape(html)
|
@@ -30,6 +32,11 @@ module CodeRay
|
|
30
32
|
undef_method :code, :bc_open, :bc_close, :escape_pre
|
31
33
|
def code(opts) # :nodoc:
|
32
34
|
opts[:block] = true
|
35
|
+
if !opts[:lang] && RedCloth::VERSION.to_s >= '4.2.0'
|
36
|
+
# simulating pre-4.2 behavior
|
37
|
+
opts[:text].sub!(/\A\[(\w+)\]/, '')
|
38
|
+
opts[:lang] = $1
|
39
|
+
end
|
33
40
|
if opts[:lang] && !filter_coderay
|
34
41
|
require 'coderay'
|
35
42
|
@in_bc ||= nil
|
@@ -175,7 +175,7 @@ module Scanners
|
|
175
175
|
## experimental!
|
176
176
|
value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
|
177
177
|
|
178
|
-
elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}/o)
|
178
|
+
elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}|\(/o)
|
179
179
|
kind = :ident
|
180
180
|
value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
|
181
181
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coderay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.357
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- murphy
|
@@ -9,11 +9,11 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-02
|
12
|
+
date: 2009-10-02 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
|
-
description: "CodeRay is a Ruby library for syntax highlighting
|
16
|
+
description: " CodeRay is a Ruby library for syntax highlighting.\n I try to make CodeRay easy to use and intuitive, but at the same time\n fully featured, complete, fast and efficient.\n\n Usage is simple:\n require 'coderay'\n code = 'some %q(weird (Ruby) can't shock) me!'\n puts CodeRay.scan(code, :ruby).html\n"
|
17
17
|
email: murphy@rubychan.de
|
18
18
|
executables:
|
19
19
|
- coderay
|
@@ -65,8 +65,6 @@ files:
|
|
65
65
|
- ./lib/coderay/scanners/ruby/patterns.rb
|
66
66
|
- ./lib/coderay/scanners/ruby.rb
|
67
67
|
- ./lib/coderay/scanners/scheme.rb
|
68
|
-
- ./lib/coderay/scanners/sql.Keith.rb
|
69
|
-
- ./lib/coderay/scanners/sql.rb
|
70
68
|
- ./lib/coderay/scanners/xml.rb
|
71
69
|
- ./lib/coderay/scanners/yaml.rb
|
72
70
|
- ./lib/coderay/style.rb
|
@@ -82,6 +80,8 @@ files:
|
|
82
80
|
- ./FOLDERS
|
83
81
|
has_rdoc: true
|
84
82
|
homepage: http://coderay.rubychan.de
|
83
|
+
licenses: []
|
84
|
+
|
85
85
|
post_install_message:
|
86
86
|
rdoc_options:
|
87
87
|
- -SNw2
|
@@ -105,9 +105,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
105
|
requirements: []
|
106
106
|
|
107
107
|
rubyforge_project: coderay
|
108
|
-
rubygems_version: 1.3.
|
108
|
+
rubygems_version: 1.3.5
|
109
109
|
signing_key:
|
110
|
-
specification_version:
|
110
|
+
specification_version: 3
|
111
111
|
summary: CodeRay is a fast syntax highlighter engine for many languages.
|
112
112
|
test_files: []
|
113
113
|
|
@@ -1,143 +0,0 @@
|
|
1
|
-
module CodeRay
|
2
|
-
module Scanners
|
3
|
-
|
4
|
-
# by Keith Pitt
|
5
|
-
class SQL < Scanner
|
6
|
-
|
7
|
-
register_for :sql
|
8
|
-
|
9
|
-
include Streamable
|
10
|
-
|
11
|
-
RESERVED_WORDS = %w(
|
12
|
-
all alter and any as asc at authid avg begin between
|
13
|
-
body bulk by case char check close cluster coalesce
|
14
|
-
collect comment commit compress connect constant create
|
15
|
-
current currval cursor day declare default delete
|
16
|
-
desc distinct do drop else elsif end exception exclusive
|
17
|
-
execute exists exit extends extract fetch for forall
|
18
|
-
from function goto group having heap hour if immediate in
|
19
|
-
index indicator insert interface intersect
|
20
|
-
interval into is isolation java level like limited lock
|
21
|
-
loop max min minus minute mlslabel mod mode month natural
|
22
|
-
naturaln new nextval nocopy not nowait null nullif
|
23
|
-
number_base ocirowid of on opaque open operator option or
|
24
|
-
order organization others out package partition pctfree
|
25
|
-
pls_integer positive positiven pragma prior private procedure
|
26
|
-
public raise range raw real record ref release return reverse
|
27
|
-
rollback row rowid rownum rowtype savepoint second select
|
28
|
-
separate set share space sql sqlcode sqlerrm start
|
29
|
-
stddev subtype successful sum synonym sysdate table then
|
30
|
-
timezone_region timezone_abbr timezone_minute
|
31
|
-
to trigger true type uid union unique update
|
32
|
-
use user validate values variance view when
|
33
|
-
whenever where while with work write year zone
|
34
|
-
)
|
35
|
-
|
36
|
-
PREDEFINED_TYPES = %w(
|
37
|
-
array bigint bit binary blob boolean binary_integer char
|
38
|
-
character clob date decimal double float char_base
|
39
|
-
int integer nchar nclob smallint timestamp long number
|
40
|
-
timestamp_hour timestamp_minute varchar varying smallint
|
41
|
-
varchar2 nvarchar money time
|
42
|
-
)
|
43
|
-
|
44
|
-
PREDEFINED_CONSTANTS = %w(
|
45
|
-
NULL true false
|
46
|
-
)
|
47
|
-
|
48
|
-
IDENT_KIND = CaseIgnoringWordList.new(:ident).
|
49
|
-
add(RESERVED_WORDS, :reserved).
|
50
|
-
add(PREDEFINED_TYPES, :pre_type).
|
51
|
-
add(PREDEFINED_CONSTANTS, :pre_constant)
|
52
|
-
|
53
|
-
def scan_tokens tokens, options
|
54
|
-
|
55
|
-
state = :initial
|
56
|
-
|
57
|
-
until eos?
|
58
|
-
|
59
|
-
kind = nil
|
60
|
-
match = nil
|
61
|
-
|
62
|
-
case state
|
63
|
-
|
64
|
-
when :initial
|
65
|
-
|
66
|
-
if scan(/ \s+ | \\\n /x)
|
67
|
-
kind = :space
|
68
|
-
|
69
|
-
elsif scan(%r! -- [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
|
70
|
-
kind = :comment
|
71
|
-
|
72
|
-
elsif scan(/ [-+*\/=<>?:;,!&^|()~%]+ | \.(?!\d) /x)
|
73
|
-
kind = :operator
|
74
|
-
|
75
|
-
elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
|
76
|
-
kind = IDENT_KIND[match]
|
77
|
-
if kind == :ident and check(/:(?!:)/)
|
78
|
-
match << scan(/:/)
|
79
|
-
kind = :label
|
80
|
-
end
|
81
|
-
|
82
|
-
elsif match = scan(/'/)
|
83
|
-
tokens << [:open, :string]
|
84
|
-
state = :string
|
85
|
-
kind = :delimiter
|
86
|
-
|
87
|
-
elsif scan(/(?:\d+)(?![.eEfF])/)
|
88
|
-
kind = :integer
|
89
|
-
|
90
|
-
elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
|
91
|
-
kind = :float
|
92
|
-
|
93
|
-
else
|
94
|
-
getch
|
95
|
-
kind = :error
|
96
|
-
|
97
|
-
end
|
98
|
-
|
99
|
-
when :string
|
100
|
-
if scan(/[^\\\n']+/)
|
101
|
-
kind = :content
|
102
|
-
elsif scan(/'/)
|
103
|
-
tokens << ["'", :delimiter]
|
104
|
-
tokens << [:close, :string]
|
105
|
-
state = :initial
|
106
|
-
next
|
107
|
-
elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
|
108
|
-
kind = :char
|
109
|
-
elsif scan(/ \\ | $ /x)
|
110
|
-
tokens << [:close, :string]
|
111
|
-
kind = :error
|
112
|
-
state = :initial
|
113
|
-
else
|
114
|
-
raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
|
115
|
-
end
|
116
|
-
|
117
|
-
else
|
118
|
-
raise_inspect 'Unknown state', tokens
|
119
|
-
|
120
|
-
end
|
121
|
-
|
122
|
-
match ||= matched
|
123
|
-
if $DEBUG and not kind
|
124
|
-
raise_inspect 'Error token %p in line %d' %
|
125
|
-
[[match, kind], line], tokens
|
126
|
-
end
|
127
|
-
raise_inspect 'Empty token', tokens unless match
|
128
|
-
|
129
|
-
tokens << [match, kind]
|
130
|
-
|
131
|
-
end
|
132
|
-
|
133
|
-
if state == :string
|
134
|
-
tokens << [:close, :string]
|
135
|
-
end
|
136
|
-
|
137
|
-
tokens
|
138
|
-
end
|
139
|
-
|
140
|
-
end
|
141
|
-
|
142
|
-
end
|
143
|
-
end
|
data/lib/coderay/scanners/sql.rb
DELETED
@@ -1,154 +0,0 @@
|
|
1
|
-
module CodeRay module Scanners
|
2
|
-
|
3
|
-
# by Josh Goebel
|
4
|
-
class SQL < Scanner
|
5
|
-
|
6
|
-
register_for :sql
|
7
|
-
|
8
|
-
RESERVED_WORDS = %w(
|
9
|
-
create table index trigger drop primary key set select
|
10
|
-
insert update delete replace into
|
11
|
-
on from values before and or if exists case when
|
12
|
-
then else as group order by avg where
|
13
|
-
join inner outer union engine not
|
14
|
-
like
|
15
|
-
)
|
16
|
-
|
17
|
-
PREDEFINED_TYPES = %w(
|
18
|
-
char varchar enum binary text tinytext mediumtext
|
19
|
-
longtext blob tinyblob mediumblob longblob timestamp
|
20
|
-
date time datetime year double decimal float int
|
21
|
-
integer tinyint mediumint bigint smallint unsigned bit
|
22
|
-
bool boolean
|
23
|
-
)
|
24
|
-
|
25
|
-
PREDEFINED_FUNCTIONS = %w( sum cast abs pi count min max avg )
|
26
|
-
|
27
|
-
DIRECTIVES = %w( auto_increment unique default charset )
|
28
|
-
|
29
|
-
PREDEFINED_CONSTANTS = %w( null true false )
|
30
|
-
|
31
|
-
IDENT_KIND = CaseIgnoringWordList.new(:ident).
|
32
|
-
add(RESERVED_WORDS, :reserved).
|
33
|
-
add(PREDEFINED_TYPES, :pre_type).
|
34
|
-
add(PREDEFINED_CONSTANTS, :pre_constant).
|
35
|
-
add(PREDEFINED_FUNCTIONS, :predefined).
|
36
|
-
add(DIRECTIVES, :directive)
|
37
|
-
|
38
|
-
ESCAPE = / [rbfnrtv\n\\\/'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
|
39
|
-
UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
|
40
|
-
|
41
|
-
def scan_tokens tokens, options
|
42
|
-
|
43
|
-
state = :initial
|
44
|
-
string_type = nil
|
45
|
-
string_content = ''
|
46
|
-
|
47
|
-
until eos?
|
48
|
-
|
49
|
-
kind = nil
|
50
|
-
match = nil
|
51
|
-
|
52
|
-
if state == :initial
|
53
|
-
|
54
|
-
if scan(/ \s+ | \\\n /x)
|
55
|
-
kind = :space
|
56
|
-
|
57
|
-
elsif scan(/^(?:--\s|#).*/)
|
58
|
-
kind = :comment
|
59
|
-
|
60
|
-
elsif scan(%r! /\* (?: .*? \*/ | .* ) !mx)
|
61
|
-
kind = :comment
|
62
|
-
|
63
|
-
elsif scan(/ [-+*\/=<>;,!&^|()\[\]{}~%] | \.(?!\d) /x)
|
64
|
-
kind = :operator
|
65
|
-
|
66
|
-
elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
|
67
|
-
kind = IDENT_KIND[match.downcase]
|
68
|
-
|
69
|
-
elsif match = scan(/[`"']/)
|
70
|
-
tokens << [:open, :string]
|
71
|
-
string_type = matched
|
72
|
-
state = :string
|
73
|
-
kind = :delimiter
|
74
|
-
|
75
|
-
elsif scan(/0[xX][0-9A-Fa-f]+/)
|
76
|
-
kind = :hex
|
77
|
-
|
78
|
-
elsif scan(/0[0-7]+(?![89.eEfF])/)
|
79
|
-
kind = :oct
|
80
|
-
|
81
|
-
elsif scan(/\d+(?![.eEfF])/)
|
82
|
-
kind = :integer
|
83
|
-
|
84
|
-
elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
|
85
|
-
kind = :float
|
86
|
-
|
87
|
-
else
|
88
|
-
getch
|
89
|
-
kind = :error
|
90
|
-
|
91
|
-
end
|
92
|
-
|
93
|
-
elsif state == :string
|
94
|
-
if match = scan(/[^\\"'`]+/)
|
95
|
-
string_content << match
|
96
|
-
next
|
97
|
-
elsif match = scan(/["'`]/)
|
98
|
-
if string_type == match
|
99
|
-
if peek(1) == string_type # doubling means escape
|
100
|
-
string_content << string_type << getch
|
101
|
-
next
|
102
|
-
end
|
103
|
-
unless string_content.empty?
|
104
|
-
tokens << [string_content, :content]
|
105
|
-
string_content = ''
|
106
|
-
end
|
107
|
-
tokens << [matched, :delimiter]
|
108
|
-
tokens << [:close, :string]
|
109
|
-
state = :initial
|
110
|
-
string_type = nil
|
111
|
-
next
|
112
|
-
else
|
113
|
-
string_content << match
|
114
|
-
end
|
115
|
-
next
|
116
|
-
elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
|
117
|
-
unless string_content.empty?
|
118
|
-
tokens << [string_content, :content]
|
119
|
-
string_content = ''
|
120
|
-
end
|
121
|
-
kind = :char
|
122
|
-
elsif match = scan(/ \\ . /mox)
|
123
|
-
string_content << match
|
124
|
-
next
|
125
|
-
elsif scan(/ \\ | $ /x)
|
126
|
-
unless string_content.empty?
|
127
|
-
tokens << [string_content, :content]
|
128
|
-
string_content = ''
|
129
|
-
end
|
130
|
-
kind = :error
|
131
|
-
state = :initial
|
132
|
-
else
|
133
|
-
raise "else case \" reached; %p not handled." % peek(1), tokens
|
134
|
-
end
|
135
|
-
|
136
|
-
else
|
137
|
-
raise 'else-case reached', tokens
|
138
|
-
|
139
|
-
end
|
140
|
-
|
141
|
-
match ||= matched
|
142
|
-
# raise [match, kind], tokens if kind == :error
|
143
|
-
|
144
|
-
tokens << [match, kind]
|
145
|
-
|
146
|
-
end
|
147
|
-
# RAILS_DEFAULT_LOGGER.info tokens.inspect
|
148
|
-
tokens
|
149
|
-
|
150
|
-
end
|
151
|
-
|
152
|
-
end
|
153
|
-
|
154
|
-
end end
|