coderay 0.7.2.168 → 0.7.2.176

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.
@@ -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 113 2006-03-15 23:24:37Z murphy $
6
+ $Id: demo_server.rb 52 2006-03-15 23:14:27Z murphy $
7
7
 
8
8
  Usage:
9
9
  1) Start this and your browser.
@@ -3,7 +3,10 @@ module Encoders
3
3
 
4
4
  class HTML
5
5
 
6
- ClassOfKind = {
6
+ ClassOfKind = Hash.new do |h, k|
7
+ h[k] = k.to_s
8
+ end
9
+ ClassOfKind.update with = {
7
10
  :attribute_name => 'an',
8
11
  :attribute_name_fat => 'af',
9
12
  :attribute_value => 'av',
@@ -65,7 +68,7 @@ module Encoders
65
68
  ClassOfKind[:open] = ClassOfKind[:close] = ClassOfKind[:delimiter]
66
69
  ClassOfKind[:nesting_delimiter] = ClassOfKind[:delimiter]
67
70
  ClassOfKind[:escape] = ClassOfKind[:delimiter]
68
- ClassOfKind.default = ClassOfKind[:error] or raise 'no class found for :error!'
71
+ #ClassOfKind.default = ClassOfKind[:error] or raise 'no class found for :error!'
69
72
 
70
73
  end
71
74
 
@@ -1,180 +1,180 @@
1
- # =FileType
2
- #
3
- # A simple filetype recognizer
4
- #
5
- # Author: murphy (mail to murphy cYcnus de)
6
- #
7
- # Version: 0.1 (2005.september.1)
8
- #
9
- # == Documentation
10
- #
11
- # # determine the type of the given
12
- # lang = FileType[ARGV.first]
13
- #
14
- # # return :plaintext if the file type is unknown
15
- # lang = FileType.fetch ARGV.first, :plaintext
16
- #
17
- # # try the shebang line, too
18
- # lang = FileType.fetch ARGV.first, :plaintext, true
19
- module FileType
20
-
21
- UnknownFileType = Class.new Exception
22
-
23
- class << self
24
-
25
- # Try to determine the file type of the file.
26
- #
27
- # +filename+ is a relative or absolute path to a file.
28
- #
29
- # The file itself is only accessed when +read_shebang+ is set to true.
30
- # That means you can get filetypes from files that don't exist.
31
- def [] filename, read_shebang = false
32
- name = File.basename filename
33
- ext = File.extname name
34
- ext.sub!(/^\./, '') # delete the leading dot
35
-
36
- type =
37
- TypeFromExt[ext] ||
38
- TypeFromExt[ext.downcase] ||
39
- TypeFromName[name] ||
40
- TypeFromName[name.downcase]
41
- type ||= shebang(filename) if read_shebang
42
-
43
- type
44
- end
45
-
46
- def shebang filename
47
- begin
48
- File.open filename, 'r' do |f|
49
- first_line = f.gets
50
- first_line[TypeFromShebang]
51
- end
52
- rescue IOError
53
- nil
54
- end
55
- end
56
-
57
- # This works like Hash#fetch.
58
- #
59
- # If the filetype cannot be found, the +default+ value
60
- # is returned.
61
- def fetch filename, default = nil, read_shebang = false
62
- if default and block_given?
63
- warn 'block supersedes default value argument'
64
- end
65
-
66
- unless type = self[filename, read_shebang]
67
- return yield if block_given?
68
- return default if default
69
- raise UnknownFileType, 'Could not determine type of %p.' % filename
70
- end
71
- type
72
- end
73
-
74
- end
75
-
76
- TypeFromExt = {
77
- 'rb' => :ruby,
78
- 'rbw' => :ruby,
79
- 'rake' => :ruby,
80
- 'cpp' => :c,
81
- 'c' => :c,
82
- 'h' => :c,
83
- 'xml' => :xml,
84
- 'htm' => :html,
85
- 'html' => :html,
86
- 'xhtml' => :xhtml,
87
- 'rhtml' => :rhtml,
88
- 'yaml' => :yaml,
89
- 'yml' => :yaml,
90
- }
91
-
92
- TypeFromShebang = /\b(?:ruby|perl|python|sh)\b/
93
-
94
- TypeFromName = {
95
- 'Rakefile' => :ruby,
96
- 'Rantfile' => :ruby,
97
- }
98
-
99
- end
100
-
101
- if $0 == __FILE__
102
- $VERBOSE = true
103
- eval DATA.read, nil, $0, __LINE__+4
104
- end
105
-
106
- __END__
107
-
108
- require 'test/unit'
109
-
110
- class TC_FileType < Test::Unit::TestCase
111
-
112
- def test_fetch
113
- assert_raise FileType::UnknownFileType do
114
- FileType.fetch ''
115
- end
116
-
117
- assert_throws :not_found do
118
- FileType.fetch '.' do
119
- throw :not_found
120
- end
121
- end
122
-
123
- assert_equal :default, FileType.fetch('c', :default)
124
-
125
- stderr, fake_stderr = $stderr, Object.new
126
- $err = ''
127
- def fake_stderr.write x
128
- $err << x
129
- end
130
- $stderr = fake_stderr
131
- FileType.fetch('c', :default) { }
132
- assert_equal "block supersedes default value argument\n", $err
133
- $stderr = stderr
134
- end
135
-
136
- def test_ruby
137
- assert_equal :ruby, FileType['test.rb']
138
- assert_equal :ruby, FileType['C:\\Program Files\\x\\y\\c\\test.rbw']
139
- assert_equal :ruby, FileType['/usr/bin/something/Rakefile']
140
- assert_equal :ruby, FileType['~/myapp/gem/Rantfile']
141
- assert_equal :ruby, FileType['./lib/tasks\repository.rake']
142
- assert_not_equal :ruby, FileType['test_rb']
143
- assert_not_equal :ruby, FileType['Makefile']
144
- assert_not_equal :ruby, FileType['set.rb/set']
145
- assert_not_equal :ruby, FileType['~/projects/blabla/rb']
146
- end
147
-
148
- def test_c
149
- assert_equal :c, FileType['test.c']
150
- assert_equal :c, FileType['C:\\Program Files\\x\\y\\c\\test.h']
151
- assert_not_equal :c, FileType['test_c']
152
- assert_not_equal :c, FileType['Makefile']
153
- assert_not_equal :c, FileType['set.h/set']
154
- assert_not_equal :c, FileType['~/projects/blabla/c']
155
- end
156
-
157
- def test_html
158
- assert_equal :html, FileType['test.htm']
159
- assert_equal :xhtml, FileType['test.xhtml']
160
- assert_equal :xhtml, FileType['test.html.xhtml']
161
- assert_equal :rhtml, FileType['_form.rhtml']
162
- end
163
-
164
- def test_yaml
165
- assert_equal :yaml, FileType['test.yml']
166
- assert_equal :yaml, FileType['test.yaml']
167
- assert_equal :yaml, FileType['my.html.yaml']
168
- assert_not_equal :yaml, FileType['YAML']
169
- end
170
-
171
- def test_shebang
172
- dir = './test'
173
- if File.directory? dir
174
- Dir.chdir dir do
175
- assert_equal :c, FileType['test.c']
176
- end
177
- end
178
- end
179
-
180
- end
1
+ # =FileType
2
+ #
3
+ # A simple filetype recognizer
4
+ #
5
+ # Author: murphy (mail to murphy cYcnus de)
6
+ #
7
+ # Version: 0.1 (2005.september.1)
8
+ #
9
+ # == Documentation
10
+ #
11
+ # # determine the type of the given
12
+ # lang = FileType[ARGV.first]
13
+ #
14
+ # # return :plaintext if the file type is unknown
15
+ # lang = FileType.fetch ARGV.first, :plaintext
16
+ #
17
+ # # try the shebang line, too
18
+ # lang = FileType.fetch ARGV.first, :plaintext, true
19
+ module FileType
20
+
21
+ UnknownFileType = Class.new Exception
22
+
23
+ class << self
24
+
25
+ # Try to determine the file type of the file.
26
+ #
27
+ # +filename+ is a relative or absolute path to a file.
28
+ #
29
+ # The file itself is only accessed when +read_shebang+ is set to true.
30
+ # That means you can get filetypes from files that don't exist.
31
+ def [] filename, read_shebang = false
32
+ name = File.basename filename
33
+ ext = File.extname name
34
+ ext.sub!(/^\./, '') # delete the leading dot
35
+
36
+ type =
37
+ TypeFromExt[ext] ||
38
+ TypeFromExt[ext.downcase] ||
39
+ TypeFromName[name] ||
40
+ TypeFromName[name.downcase]
41
+ type ||= shebang(filename) if read_shebang
42
+
43
+ type
44
+ end
45
+
46
+ def shebang filename
47
+ begin
48
+ File.open filename, 'r' do |f|
49
+ first_line = f.gets
50
+ first_line[TypeFromShebang]
51
+ end
52
+ rescue IOError
53
+ nil
54
+ end
55
+ end
56
+
57
+ # This works like Hash#fetch.
58
+ #
59
+ # If the filetype cannot be found, the +default+ value
60
+ # is returned.
61
+ def fetch filename, default = nil, read_shebang = false
62
+ if default and block_given?
63
+ warn 'block supersedes default value argument'
64
+ end
65
+
66
+ unless type = self[filename, read_shebang]
67
+ return yield if block_given?
68
+ return default if default
69
+ raise UnknownFileType, 'Could not determine type of %p.' % filename
70
+ end
71
+ type
72
+ end
73
+
74
+ end
75
+
76
+ TypeFromExt = {
77
+ 'rb' => :ruby,
78
+ 'rbw' => :ruby,
79
+ 'rake' => :ruby,
80
+ 'cpp' => :c,
81
+ 'c' => :c,
82
+ 'h' => :c,
83
+ 'xml' => :xml,
84
+ 'htm' => :html,
85
+ 'html' => :html,
86
+ 'xhtml' => :xhtml,
87
+ 'rhtml' => :rhtml,
88
+ 'yaml' => :yaml,
89
+ 'yml' => :yaml,
90
+ }
91
+
92
+ TypeFromShebang = /\b(?:ruby|perl|python|sh)\b/
93
+
94
+ TypeFromName = {
95
+ 'Rakefile' => :ruby,
96
+ 'Rantfile' => :ruby,
97
+ }
98
+
99
+ end
100
+
101
+ if $0 == __FILE__
102
+ $VERBOSE = true
103
+ eval DATA.read, nil, $0, __LINE__+4
104
+ end
105
+
106
+ __END__
107
+
108
+ require 'test/unit'
109
+
110
+ class TC_FileType < Test::Unit::TestCase
111
+
112
+ def test_fetch
113
+ assert_raise FileType::UnknownFileType do
114
+ FileType.fetch ''
115
+ end
116
+
117
+ assert_throws :not_found do
118
+ FileType.fetch '.' do
119
+ throw :not_found
120
+ end
121
+ end
122
+
123
+ assert_equal :default, FileType.fetch('c', :default)
124
+
125
+ stderr, fake_stderr = $stderr, Object.new
126
+ $err = ''
127
+ def fake_stderr.write x
128
+ $err << x
129
+ end
130
+ $stderr = fake_stderr
131
+ FileType.fetch('c', :default) { }
132
+ assert_equal "block supersedes default value argument\n", $err
133
+ $stderr = stderr
134
+ end
135
+
136
+ def test_ruby
137
+ assert_equal :ruby, FileType['test.rb']
138
+ assert_equal :ruby, FileType['C:\\Program Files\\x\\y\\c\\test.rbw']
139
+ assert_equal :ruby, FileType['/usr/bin/something/Rakefile']
140
+ assert_equal :ruby, FileType['~/myapp/gem/Rantfile']
141
+ assert_equal :ruby, FileType['./lib/tasks\repository.rake']
142
+ assert_not_equal :ruby, FileType['test_rb']
143
+ assert_not_equal :ruby, FileType['Makefile']
144
+ assert_not_equal :ruby, FileType['set.rb/set']
145
+ assert_not_equal :ruby, FileType['~/projects/blabla/rb']
146
+ end
147
+
148
+ def test_c
149
+ assert_equal :c, FileType['test.c']
150
+ assert_equal :c, FileType['C:\\Program Files\\x\\y\\c\\test.h']
151
+ assert_not_equal :c, FileType['test_c']
152
+ assert_not_equal :c, FileType['Makefile']
153
+ assert_not_equal :c, FileType['set.h/set']
154
+ assert_not_equal :c, FileType['~/projects/blabla/c']
155
+ end
156
+
157
+ def test_html
158
+ assert_equal :html, FileType['test.htm']
159
+ assert_equal :xhtml, FileType['test.xhtml']
160
+ assert_equal :xhtml, FileType['test.html.xhtml']
161
+ assert_equal :rhtml, FileType['_form.rhtml']
162
+ end
163
+
164
+ def test_yaml
165
+ assert_equal :yaml, FileType['test.yml']
166
+ assert_equal :yaml, FileType['test.yaml']
167
+ assert_equal :yaml, FileType['my.html.yaml']
168
+ assert_not_equal :yaml, FileType['YAML']
169
+ end
170
+
171
+ def test_shebang
172
+ dir = './test'
173
+ if File.directory? dir
174
+ Dir.chdir dir do
175
+ assert_equal :c, FileType['test.c']
176
+ end
177
+ end
178
+ end
179
+
180
+ end
@@ -1,122 +1,122 @@
1
- # =GZip Simple
2
- #
3
- # A simplified interface to the gzip library +zlib+ (from the Ruby Standard Library.)
4
- #
5
- # Author: murphy (mail to murphy cYcnus de)
6
- #
7
- # Version: 0.2 (2005.may.28)
8
- #
9
- # ==Documentation
10
- #
11
- # See +GZip+ module and the +String+ extensions.
12
- #
13
- module GZip
14
-
15
- require 'zlib'
16
-
17
- # The default zipping level. 7 zips good and fast.
18
- DEFAULT_GZIP_LEVEL = 7
19
-
20
- # Unzips the given string +s+.
21
- #
22
- # Example:
23
- # require 'gzip_simple'
24
- # print GZip.gunzip(File.read('adresses.gz'))
25
- def GZip.gunzip s
26
- Zlib::Inflate.inflate s
27
- end
28
-
29
- # Zips the given string +s+.
30
- #
31
- # Example:
32
- # require 'gzip_simple'
33
- # File.open('adresses.gz', 'w') do |file
34
- # file.write GZip.gzip('Mum: 0123 456 789', 9)
35
- # end
36
- #
37
- # If you provide a +level+, you can control how strong
38
- # the string is compressed:
39
- # - 0: no compression, only convert to gzip format
40
- # - 1: compress fast
41
- # - 7: compress more, but still fast (default)
42
- # - 8: compress more, slower
43
- # - 9: compress best, very slow
44
- def GZip.gzip s, level = DEFAULT_GZIP_LEVEL
45
- Zlib::Deflate.new(level).deflate s, Zlib::FINISH
46
- end
47
- end
48
-
49
- # String extensions to use the GZip module.
50
- #
51
- # The methods gzip and gunzip provide an even more simple
52
- # interface to the ZLib:
53
- #
54
- # # create a big string
55
- # x = 'a' * 1000
56
- #
57
- # # zip it
58
- # x_gz = x.gzip
59
- #
60
- # # test the result
61
- # puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size]
62
- # #-> Zipped 1000 bytes to 19 bytes.
63
- #
64
- # # unzipping works
65
- # p x_gz.gunzip == x #-> true
66
- class String
67
- # Returns the string, unzipped.
68
- # See GZip.gunzip
69
- def gunzip
70
- GZip.gunzip self
71
- end
72
- # Replaces the string with its unzipped value.
73
- # See GZip.gunzip
74
- def gunzip!
75
- replace gunzip
76
- end
77
-
78
- # Returns the string, zipped.
79
- # +level+ is the gzip compression level, see GZip.gzip.
80
- def gzip level = GZip::DEFAULT_GZIP_LEVEL
81
- GZip.gzip self, level
82
- end
83
- # Replaces the string with its zipped value.
84
- # See GZip.gzip.
85
- def gzip!(*args)
86
- replace gzip(*args)
87
- end
88
- end
89
-
90
- if $0 == __FILE__
91
- eval DATA.read, nil, $0, __LINE__+4
92
- end
93
-
94
- __END__
95
- #CODE
96
-
97
- # Testing / Benchmark
98
- x = 'a' * 1000
99
- x_gz = x.gzip
100
- puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size] #-> Zipped 1000 bytes to 19 bytes.
101
- p x_gz.gunzip == x #-> true
102
-
103
- require 'benchmark'
104
-
105
- INFO = 'packed to %0.3f%%' # :nodoc:
106
-
107
- x = Array.new(100000) { rand(255).chr + 'aaaaaaaaa' + rand(255).chr }.join
108
- Benchmark.bm(10) do |bm|
109
- for level in 0..9
110
- bm.report "zip #{level}" do
111
- $x = x.gzip level
112
- end
113
- puts INFO % [100.0 * $x.size / x.size]
114
- end
115
- bm.report 'zip' do
116
- $x = x.gzip
117
- end
118
- puts INFO % [100.0 * $x.size / x.size]
119
- bm.report 'unzip' do
120
- $x.gunzip
121
- end
122
- end
1
+ # =GZip Simple
2
+ #
3
+ # A simplified interface to the gzip library +zlib+ (from the Ruby Standard Library.)
4
+ #
5
+ # Author: murphy (mail to murphy cYcnus de)
6
+ #
7
+ # Version: 0.2 (2005.may.28)
8
+ #
9
+ # ==Documentation
10
+ #
11
+ # See +GZip+ module and the +String+ extensions.
12
+ #
13
+ module GZip
14
+
15
+ require 'zlib'
16
+
17
+ # The default zipping level. 7 zips good and fast.
18
+ DEFAULT_GZIP_LEVEL = 7
19
+
20
+ # Unzips the given string +s+.
21
+ #
22
+ # Example:
23
+ # require 'gzip_simple'
24
+ # print GZip.gunzip(File.read('adresses.gz'))
25
+ def GZip.gunzip s
26
+ Zlib::Inflate.inflate s
27
+ end
28
+
29
+ # Zips the given string +s+.
30
+ #
31
+ # Example:
32
+ # require 'gzip_simple'
33
+ # File.open('adresses.gz', 'w') do |file
34
+ # file.write GZip.gzip('Mum: 0123 456 789', 9)
35
+ # end
36
+ #
37
+ # If you provide a +level+, you can control how strong
38
+ # the string is compressed:
39
+ # - 0: no compression, only convert to gzip format
40
+ # - 1: compress fast
41
+ # - 7: compress more, but still fast (default)
42
+ # - 8: compress more, slower
43
+ # - 9: compress best, very slow
44
+ def GZip.gzip s, level = DEFAULT_GZIP_LEVEL
45
+ Zlib::Deflate.new(level).deflate s, Zlib::FINISH
46
+ end
47
+ end
48
+
49
+ # String extensions to use the GZip module.
50
+ #
51
+ # The methods gzip and gunzip provide an even more simple
52
+ # interface to the ZLib:
53
+ #
54
+ # # create a big string
55
+ # x = 'a' * 1000
56
+ #
57
+ # # zip it
58
+ # x_gz = x.gzip
59
+ #
60
+ # # test the result
61
+ # puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size]
62
+ # #-> Zipped 1000 bytes to 19 bytes.
63
+ #
64
+ # # unzipping works
65
+ # p x_gz.gunzip == x #-> true
66
+ class String
67
+ # Returns the string, unzipped.
68
+ # See GZip.gunzip
69
+ def gunzip
70
+ GZip.gunzip self
71
+ end
72
+ # Replaces the string with its unzipped value.
73
+ # See GZip.gunzip
74
+ def gunzip!
75
+ replace gunzip
76
+ end
77
+
78
+ # Returns the string, zipped.
79
+ # +level+ is the gzip compression level, see GZip.gzip.
80
+ def gzip level = GZip::DEFAULT_GZIP_LEVEL
81
+ GZip.gzip self, level
82
+ end
83
+ # Replaces the string with its zipped value.
84
+ # See GZip.gzip.
85
+ def gzip!(*args)
86
+ replace gzip(*args)
87
+ end
88
+ end
89
+
90
+ if $0 == __FILE__
91
+ eval DATA.read, nil, $0, __LINE__+4
92
+ end
93
+
94
+ __END__
95
+ #CODE
96
+
97
+ # Testing / Benchmark
98
+ x = 'a' * 1000
99
+ x_gz = x.gzip
100
+ puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size] #-> Zipped 1000 bytes to 19 bytes.
101
+ p x_gz.gunzip == x #-> true
102
+
103
+ require 'benchmark'
104
+
105
+ INFO = 'packed to %0.3f%%' # :nodoc:
106
+
107
+ x = Array.new(100000) { rand(255).chr + 'aaaaaaaaa' + rand(255).chr }.join
108
+ Benchmark.bm(10) do |bm|
109
+ for level in 0..9
110
+ bm.report "zip #{level}" do
111
+ $x = x.gzip level
112
+ end
113
+ puts INFO % [100.0 * $x.size / x.size]
114
+ end
115
+ bm.report 'zip' do
116
+ $x = x.gzip
117
+ end
118
+ puts INFO % [100.0 * $x.size / x.size]
119
+ bm.report 'unzip' do
120
+ $x.gunzip
121
+ end
122
+ end