tdiary 3.2.2.20130518 → 3.2.2.20130527

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +17 -11
  4. data/Rakefile +2 -0
  5. data/config.ru +2 -1
  6. data/tdiary.gemspec +7 -0
  7. data/tdiary.rb +6 -2
  8. data/tdiary/cli.rb +27 -1
  9. data/tdiary/environment.rb +0 -1
  10. data/tdiary/tasks/release.rake +7 -1
  11. data/tdiary/version.rb +1 -1
  12. metadata +87 -132
  13. data/vendor/hikidoc-0.0.6/COPYING +0 -28
  14. data/vendor/hikidoc-0.0.6/NEWS +0 -30
  15. data/vendor/hikidoc-0.0.6/NEWS.ja +0 -30
  16. data/vendor/hikidoc-0.0.6/README +0 -86
  17. data/vendor/hikidoc-0.0.6/README.ja +0 -83
  18. data/vendor/hikidoc-0.0.6/Rakefile +0 -68
  19. data/vendor/hikidoc-0.0.6/TextFormattingRules +0 -320
  20. data/vendor/hikidoc-0.0.6/TextFormattingRules.ja +0 -318
  21. data/vendor/hikidoc-0.0.6/bin/hikidoc +0 -66
  22. data/vendor/hikidoc-0.0.6/lib/hikidoc.rb +0 -914
  23. data/vendor/hikidoc-0.0.6/setup.rb +0 -1360
  24. data/vendor/hikidoc-0.0.6/test/run-test.rb +0 -13
  25. data/vendor/hikidoc-0.0.6/test/test_hikidoc.rb +0 -506
  26. data/vendor/imagesize-0.1.1/Manifest.txt +0 -19
  27. data/vendor/imagesize-0.1.1/README.txt +0 -49
  28. data/vendor/imagesize-0.1.1/lib/image_size.rb +0 -305
  29. data/vendor/imagesize-0.1.1/lib/image_size/version.rb +0 -9
  30. data/vendor/imagesize-0.1.1/setup.rb +0 -1585
  31. data/vendor/imagesize-0.1.1/test/2-4-7.png +0 -0
  32. data/vendor/imagesize-0.1.1/test/4_1_2.gif +0 -0
  33. data/vendor/imagesize-0.1.1/test/bmp.bmp +0 -0
  34. data/vendor/imagesize-0.1.1/test/cursor.xbm +0 -6
  35. data/vendor/imagesize-0.1.1/test/detect.swf +0 -0
  36. data/vendor/imagesize-0.1.1/test/pbm.pbm +0 -0
  37. data/vendor/imagesize-0.1.1/test/pcx.pcx +0 -0
  38. data/vendor/imagesize-0.1.1/test/pgm.pgm +0 -5
  39. data/vendor/imagesize-0.1.1/test/test.xpm +0 -38
  40. data/vendor/imagesize-0.1.1/test/test_helper.rb +0 -2
  41. data/vendor/imagesize-0.1.1/test/test_image_size.rb +0 -71
  42. data/vendor/imagesize-0.1.1/test/tiff.tiff +0 -0
  43. data/vendor/imagesize-0.1.1/test/tokyo_tower.jpg +0 -0
  44. data/vendor/imagesize-0.1.1/test/tower_e.gif.psd +0 -0
  45. data/vendor/rdtool-0.6.38/COPYING.txt +0 -339
  46. data/vendor/rdtool-0.6.38/Gemfile +0 -3
  47. data/vendor/rdtool-0.6.38/HISTORY +0 -318
  48. data/vendor/rdtool-0.6.38/LGPL-2.1 +0 -502
  49. data/vendor/rdtool-0.6.38/LICENSE.txt +0 -58
  50. data/vendor/rdtool-0.6.38/README.html +0 -66
  51. data/vendor/rdtool-0.6.38/README.ja.html +0 -73
  52. data/vendor/rdtool-0.6.38/README.rd +0 -76
  53. data/vendor/rdtool-0.6.38/README.rd.ja +0 -85
  54. data/vendor/rdtool-0.6.38/Rakefile +0 -152
  55. data/vendor/rdtool-0.6.38/TODO +0 -22
  56. data/vendor/rdtool-0.6.38/bin/rd2 +0 -283
  57. data/vendor/rdtool-0.6.38/bin/rdswap.rb +0 -207
  58. data/vendor/rdtool-0.6.38/doc/rd-draft.html +0 -456
  59. data/vendor/rdtool-0.6.38/doc/rd-draft.ja.html +0 -466
  60. data/vendor/rdtool-0.6.38/doc/rd-draft.rd +0 -479
  61. data/vendor/rdtool-0.6.38/doc/rd-draft.rd.ja +0 -487
  62. data/vendor/rdtool-0.6.38/lib/rd/block-element.rb +0 -114
  63. data/vendor/rdtool-0.6.38/lib/rd/complex-list-item.rb +0 -65
  64. data/vendor/rdtool-0.6.38/lib/rd/desclist.rb +0 -55
  65. data/vendor/rdtool-0.6.38/lib/rd/document-struct.rb +0 -46
  66. data/vendor/rdtool-0.6.38/lib/rd/dot.rd2rc +0 -18
  67. data/vendor/rdtool-0.6.38/lib/rd/element.rb +0 -160
  68. data/vendor/rdtool-0.6.38/lib/rd/filter.rb +0 -255
  69. data/vendor/rdtool-0.6.38/lib/rd/head-filter.rb +0 -14
  70. data/vendor/rdtool-0.6.38/lib/rd/inline-element.rb +0 -233
  71. data/vendor/rdtool-0.6.38/lib/rd/labeled-element.rb +0 -14
  72. data/vendor/rdtool-0.6.38/lib/rd/list.rb +0 -57
  73. data/vendor/rdtool-0.6.38/lib/rd/loose-struct.rb +0 -11
  74. data/vendor/rdtool-0.6.38/lib/rd/methodlist.rb +0 -57
  75. data/vendor/rdtool-0.6.38/lib/rd/output-format-visitor.rb +0 -30
  76. data/vendor/rdtool-0.6.38/lib/rd/package.rb +0 -4
  77. data/vendor/rdtool-0.6.38/lib/rd/parser-util.rb +0 -14
  78. data/vendor/rdtool-0.6.38/lib/rd/post-install +0 -1
  79. data/vendor/rdtool-0.6.38/lib/rd/pre-setup.rb +0 -18
  80. data/vendor/rdtool-0.6.38/lib/rd/rbl-file.rb +0 -69
  81. data/vendor/rdtool-0.6.38/lib/rd/rbl-suite.rb +0 -37
  82. data/vendor/rdtool-0.6.38/lib/rd/rd-struct.rb +0 -86
  83. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-lib.rb +0 -266
  84. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-opt.rb +0 -34
  85. data/vendor/rdtool-0.6.38/lib/rd/rd2html-lib.rb +0 -490
  86. data/vendor/rdtool-0.6.38/lib/rd/rd2html-opt.rb +0 -67
  87. data/vendor/rdtool-0.6.38/lib/rd/rd2man-lib.rb +0 -251
  88. data/vendor/rdtool-0.6.38/lib/rd/rd2rdo-lib.rb +0 -19
  89. data/vendor/rdtool-0.6.38/lib/rd/rd2rmi-lib.rb +0 -32
  90. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.ry +0 -518
  91. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.tab.rb +0 -1061
  92. data/vendor/rdtool-0.6.38/lib/rd/rdfmt.rb +0 -15
  93. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.ry +0 -503
  94. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.tab.rb +0 -1243
  95. data/vendor/rdtool-0.6.38/lib/rd/rdvisitor.rb +0 -214
  96. data/vendor/rdtool-0.6.38/lib/rd/reference-resolver.rb +0 -114
  97. data/vendor/rdtool-0.6.38/lib/rd/search-file.rb +0 -14
  98. data/vendor/rdtool-0.6.38/lib/rd/tree.rb +0 -103
  99. data/vendor/rdtool-0.6.38/lib/rd/version.rb +0 -41
  100. data/vendor/rdtool-0.6.38/lib/rd/visitor.rb +0 -86
  101. data/vendor/rdtool-0.6.38/rdtool.gemspec +0 -125
  102. data/vendor/rdtool-0.6.38/setup.rb +0 -1596
  103. data/vendor/rdtool-0.6.38/test/data/includee1.html +0 -1
  104. data/vendor/rdtool-0.6.38/test/data/includee2.html +0 -1
  105. data/vendor/rdtool-0.6.38/test/data/includee3.nothtml +0 -1
  106. data/vendor/rdtool-0.6.38/test/data/includee4.xhtml +0 -0
  107. data/vendor/rdtool-0.6.38/test/data/label.rbl +0 -2
  108. data/vendor/rdtool-0.6.38/test/data/label2.rbl +0 -2
  109. data/vendor/rdtool-0.6.38/test/data/sub/includee2.html +0 -1
  110. data/vendor/rdtool-0.6.38/test/data/sub/includee4.html +0 -0
  111. data/vendor/rdtool-0.6.38/test/dummy-observer.rb +0 -6
  112. data/vendor/rdtool-0.6.38/test/dummy.rb +0 -33
  113. data/vendor/rdtool-0.6.38/test/temp-dir.rb +0 -19
  114. data/vendor/rdtool-0.6.38/test/test-block-parser.rb +0 -46
  115. data/vendor/rdtool-0.6.38/test/test-desclist-item.rb +0 -219
  116. data/vendor/rdtool-0.6.38/test/test-document-element.rb +0 -46
  117. data/vendor/rdtool-0.6.38/test/test-document-struct.rb +0 -66
  118. data/vendor/rdtool-0.6.38/test/test-element.rb +0 -46
  119. data/vendor/rdtool-0.6.38/test/test-headline.rb +0 -80
  120. data/vendor/rdtool-0.6.38/test/test-inline-parser.rb +0 -46
  121. data/vendor/rdtool-0.6.38/test/test-list-item.rb +0 -54
  122. data/vendor/rdtool-0.6.38/test/test-list.rb +0 -53
  123. data/vendor/rdtool-0.6.38/test/test-methodlist-item.rb +0 -73
  124. data/vendor/rdtool-0.6.38/test/test-nonterminal-element.rb +0 -170
  125. data/vendor/rdtool-0.6.38/test/test-nonterminal-inline.rb +0 -33
  126. data/vendor/rdtool-0.6.38/test/test-output-format-visitor.rb +0 -48
  127. data/vendor/rdtool-0.6.38/test/test-parser-util.rb +0 -41
  128. data/vendor/rdtool-0.6.38/test/test-rbl-file.rb +0 -156
  129. data/vendor/rdtool-0.6.38/test/test-rbl-suite.rb +0 -43
  130. data/vendor/rdtool-0.6.38/test/test-rd2html-lib.rb +0 -496
  131. data/vendor/rdtool-0.6.38/test/test-rdtree.rb +0 -17
  132. data/vendor/rdtool-0.6.38/test/test-rdvisitor.rb +0 -29
  133. data/vendor/rdtool-0.6.38/test/test-reference-resolver.rb +0 -202
  134. data/vendor/rdtool-0.6.38/test/test-reference.rb +0 -132
  135. data/vendor/rdtool-0.6.38/test/test-search-file.rb +0 -22
  136. data/vendor/rdtool-0.6.38/test/test-terminal-inline.rb +0 -41
  137. data/vendor/rdtool-0.6.38/test/test-textblock.rb +0 -44
  138. data/vendor/rdtool-0.6.38/test/test-tree.rb +0 -82
  139. data/vendor/rdtool-0.6.38/test/test-version.rb +0 -57
  140. data/vendor/rdtool-0.6.38/test/test-visitor.rb +0 -230
  141. data/vendor/rdtool-0.6.38/utils/rd-mode.el +0 -464
@@ -1,22 +0,0 @@
1
- # -*- mode: rd; coding: utf-8; indent-tabs-mode: nil -*-
2
- = TODO
3
-
4
- * HTML5 出力できるように
5
- * 後方互換性を維持するならば, rd2html5-lib.rb でも作るのかな?
6
- * rd2html-ext-lib, Hash#index -> Hash#key
7
-
8
- == Moonwolf さんから指摘された事
9
-
10
- * Ruby1,9での動作確認(全機能)+encoding周り
11
- * gem化した際に、通常のsetup.rbによるインストール方法も残すか
12
- * 原作者のToshさんの認識していたバグが直っているかの確認(できるの?)
13
- ((<URL:http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RDtool+Bug+List>))
14
-
15
- == 佐々木が気になっている事/やりたいこと
16
-
17
- * Windows での, テストしておくべき Ruby 環境ってドレなの?
18
-
19
- == Done
20
-
21
- * COPYRIGHT の表記. きちんとまとめておきたい|おくべき.
22
- * makerdtool.rb などを Rake のタスクに落としこむ
@@ -1,283 +0,0 @@
1
- #! /usr/bin/ruby1.9.1 -Kn
2
- # -*- coding: ASCII-8BIT -*-
3
- =begin
4
- = NAME
5
- rd2 - converter from RD to other mark-up language.
6
- = SYNOPSIS
7
- rd2 [-r <visitor>] [options] <file>
8
-
9
- = DESCRIPTION
10
- rd2 inputs from ((|<file>|)) and outputs into (({STDOUT})). you can
11
- choose ((|<visitor>|)) to select output format. For example, use
12
- "rd/rd2html-lib.rb" to translate it into HTML, and "rd/rd2man-lib.rb"
13
- to tranlate it into roff with man macros.
14
-
15
- = OPTIONS
16
- please read output of
17
- % rd2 --help
18
- and
19
- % rd2 -r rd/rd2html-lib.rb --help
20
-
21
- = FILES
22
- * ~/.rd2rc - User configration file.
23
-
24
- = SEE ALSO
25
- ruby(1)
26
- =end
27
-
28
- require "kconv"
29
- require "optparse"
30
- require "rd/rdfmt"
31
- require "rd/visitor"
32
- require "rd/version"
33
-
34
- module Kconv
35
- NAME2CONST = {
36
- "iso-2022-jp" => Kconv::JIS,
37
- "euc-jp" => Kconv::EUC,
38
- "shift_jis" => Kconv::SJIS,
39
- }
40
- NAME_ALIAS = {
41
- 'jis' => 'iso-2022-jp',
42
- 'euc' => 'euc-jp',
43
- 'sjis' => 'shift_jis',
44
- 'shift-jis' => 'shift_jis',
45
- }
46
- if defined?(Kconv::UTF8)
47
- NAME2CONST['utf-8'] = Kconv::UTF8
48
- NAME_ALIAS['utf8'] = 'utf-8'
49
- end
50
- end
51
-
52
- include RD
53
-
54
- SYSTEM_NAME = "RDtool -- rd2"
55
- SYSTEM_VERSION = "$Version: "+RD::VERSION + "$" #"
56
- RD2_VERSION = Version.new_from_version_string(SYSTEM_NAME, SYSTEM_VERSION)
57
-
58
- # global vars
59
- $Visitor_Class = nil
60
- $Visitor = nil
61
- $RD2_Sub_OptionParser = nil
62
-
63
- # local vars
64
- include_path = []
65
- with_part = []
66
- output_file = nil
67
- output_index = nil
68
- out_code = nil
69
- from_rdo = nil
70
-
71
- # user option
72
- $DEFAULT_FORMAT_LIB = "rd/rd2html-lib"
73
- $RC = {}
74
- $RC["filter"] = Hash.new(RD::INCLUDE_FILTER)
75
- begin
76
- if test(?r, File.expand_path("~/.rd2rc"))
77
- load "~/.rd2rc"
78
- # STDERR << "#{$0}: loading ~/.rd2rc\n"
79
- else
80
- load "rd/dot.rd2rc"
81
- # STDERR << "#{$0}: loading rd/dot.rd2rc\n"
82
- end
83
- rescue
84
- load "rd/dot.rd2rc"
85
- end
86
-
87
- # initialize OptionParser
88
- ARGV.options do |q|
89
- q.banner = "Usage: #{$0} [options] rd-file > output\n"
90
- q.on_head("global options:")
91
-
92
- q.on("-rLIB", "--require=LIB",
93
- String,
94
- "choose format library.") do |i|
95
- # require LIB
96
- require i
97
- if $Visitor_Class && !$Visitor
98
- $Visitor = $Visitor_Class.new()
99
- if $RD2_Sub_OptionParser
100
- require $RD2_Sub_OptionParser
101
- $RD2_Sub_OptionParser = nil
102
- end
103
- end
104
- end
105
-
106
- q.on("-oNAME",
107
- String,
108
- "indicate base name of output file") do |i|
109
- output_file = i
110
- end
111
-
112
- q.on("--out-code=KCODE",
113
- Kconv::NAME2CONST.keys, Kconv::NAME_ALIAS,
114
- "character encoding of output.(jis|euc|sjis|utf8)") do |i|
115
- out_code = i
116
- end
117
-
118
- q.on("--output-index",
119
- "output method index file (*.rmi)") do |i|
120
- output_index = true
121
- end
122
-
123
- q.on("-IPATH", "--include-path=PATH",
124
- String,
125
- "add PATH to list of include path") do |i|
126
- # add to include path
127
- include_path.unshift(i)
128
- end
129
-
130
- # accept "PART:FILTER" and "PART"
131
- class PART ; end
132
- q.accept(PART, /(\w+)(?:\s*:\s*(\w+))?/) {|s, p, f| [s, p, f] }
133
- q.on("--with-part=PART",
134
- PART,
135
- "include PART with Filter") do |src, part, filter|
136
- with_part.push([part, filter || part])
137
- unless include_path.index(RD::RDTree.tmp_dir)
138
- include_path.push(RD::RDTree.tmp_dir)
139
- end
140
- end
141
-
142
- q.on("--from-rdo",
143
- "load from *.rdo instead of *.rd") do
144
- from_rdo = true
145
- end
146
-
147
- q.on("--version",
148
- "print versions.") do
149
- STDERR.puts RD2_VERSION
150
- STDERR.puts Tree::version
151
- STDERR.puts Visitor::version
152
- STDERR.puts $Visitor_Class.version if $Visitor_Class
153
- exit(0)
154
- end
155
-
156
- q.on_tail("--help",
157
- "print this message") do
158
- STDERR.print(q.to_s)
159
- exit(0)
160
- end
161
- end # OptionParser.new
162
-
163
- # require format lib implicitly
164
- if /rd2.+/ =~ File.basename($0, ".*").downcase
165
- visitor_lib = "rd/" + $& + "-lib.rb"
166
- require visitor_lib
167
- require $RD2_Sub_OptionParser if $RD2_Sub_OptionParser
168
- # make visitor
169
- $Visitor = $Visitor_Class.new()
170
- end
171
-
172
- begin
173
- ARGV.parse!
174
- rescue
175
- STDERR.print("Error: " + $!.inspect + "\n")
176
- STDERR.print(ARGV.options.to_s)
177
- exit(1)
178
- end
179
-
180
- unless $Visitor_Class
181
- require $DEFAULT_FORMAT_LIB
182
- $Visitor = $Visitor_Class.new
183
- end
184
-
185
- $Visitor.input_filename = ARGF.filename
186
-
187
- # make tree (but not parsed yet)
188
- if from_rdo
189
- rdos = []
190
- ARGV.each do |path|
191
- rdos.push(File.open(path))
192
- dirname = File.dirname(path)
193
- include_path.push(dirname, dirname + "/include")
194
- end
195
- tree = RDTree.new_from_rdo(*rdos)
196
- tree.include_path = include_path
197
- else
198
- # set Include_Path
199
- if ARGF.filename
200
- dir = File.dirname(ARGF.filename)
201
- else
202
- dir = "."
203
- end
204
- include_path.push(dir)
205
- include_path.push(dir + "/include")
206
-
207
- # input from ARGF
208
- src = readlines
209
- if src.find{|i| /\S/ === i } and !src.find{|i| /^=begin\b/ === i }
210
- src.unshift("=begin\n").push("=end\n")
211
- end
212
-
213
- tree = RDTree.new(src, include_path, nil)
214
-
215
- # filter set tree.filter
216
- with_part.each do |i|
217
- tree.filter[i[0]] = $RC["filter"][i[1]]
218
- end
219
-
220
- # parse
221
- begin
222
- tree.parse
223
- rescue Racc::ParseError
224
- STDERR.puts($!.message)
225
- exit(10)
226
- end
227
- end
228
-
229
- # filter: set visitor.include_suffix
230
- with_part.each do |i|
231
- $Visitor.include_suffix.push(i[0])
232
- end
233
-
234
- # file base name setup
235
- $Visitor.filename = output_file if output_file
236
-
237
- # character encoding
238
- if out_code
239
- begin
240
- $Visitor.charcode = out_code
241
- $Visitor.lang = "ja"
242
- rescue NameError
243
- end
244
- end
245
-
246
- # output
247
- out = $Visitor.visit(tree)
248
-
249
- # character encoding convert
250
- out = Kconv.kconv(out, Kconv::NAME2CONST[out_code], Kconv::AUTO) if out_code
251
-
252
- if output_file
253
- filename = output_file + "." + $Visitor.class::OUTPUT_SUFFIX
254
- file = open(filename, "w")
255
- file.print(out)
256
- file.close
257
- STDERR.print("#{$0}: output to #{filename}...\n")
258
- else
259
- print(out)
260
- end
261
-
262
- # RMI
263
- if output_index
264
- if output_file
265
- require "rd/rd2rmi-lib"
266
- rmivisitor = RD2RMIVisitor.new
267
- rmivisitor.filename = output_file
268
- rmi = rmivisitor.visit(tree)
269
- filename = output_file + ".rmi"
270
- file = open(filename, "w")
271
- file.print(rmi)
272
- file.close
273
- STDERR.print("#{$0}: output to #{filename}...\n")
274
- else
275
- raise %Q[Error: option "--output-index" must be used with option "-oNAME"]
276
- end
277
- end
278
-
279
-
280
- # filter: remove tmp file
281
- Dir.glob("#{RD::RDTree.tmp_dir}/rdtmp.#{$$}.*.*").each do |i|
282
- File.delete(i)
283
- end
@@ -1,207 +0,0 @@
1
- #! /usr/bin/ruby1.9.1 -s
2
- #######
3
- # rdswap.rb (c) C.Hintze <c.hintze@gmx.net> 30.08.1999
4
- #######
5
-
6
-
7
- require "ostruct";
8
-
9
- if ARGV.size < 2 and not ($h or $help)
10
- print "Wrong # of paramter! Use `-h' for help.\n";
11
- exit 1;
12
- elsif $h or $help
13
- print eval('"'+DATA.read+'"');
14
- exit 0;
15
- end
16
-
17
- srcfile = ARGV.select{|fn| fn =~ /\.rb$/o};
18
- case srcfile.size
19
- when 0
20
- $stderr.print "Warning: No `.rb' file given! Take first file as source.\n";
21
- srcfile = ARGV[0];
22
- when 1
23
- srcfile = srcfile[0];
24
- else
25
- print "Sorry! Only one source file (`.rb') allowed!\n";
26
- exit(1);
27
- end
28
-
29
- docs = {};
30
- srcs = {};
31
-
32
- rddoc, rddocs = nil, [];
33
- source, sources = [], [[]];
34
-
35
- while gets
36
- lang = $1 if File::basename(String($<)) =~ /^.*?([^.]+)$/o;
37
- if /^=begin/o .. /^=end/o
38
- title = $2 if /^=begin(\s+(.*))?$/o;
39
- unless rddoc.nil?
40
- unless /^=end/o
41
- rddoc.lines << $_;
42
- else
43
- rddocs << rddoc;
44
- sources << [];
45
- rddoc = nil;
46
- title = nil;
47
- end
48
- else # New RD block found! Instantiate data container.
49
- rddoc = OpenStruct.new
50
- rddoc.kind, rddoc.lines = title, [];
51
- end
52
- else # It is not a RD block means, it is a source line!
53
- sources[-1] << $_;
54
- end
55
- if $<.eof? # One file finished. Remember data and proceed.
56
- docs[lang] = rddocs;
57
- srcs[lang] = sources;
58
- rddoc, rddocs = nil, [];
59
- source, sources = [], [[]];
60
- end
61
- end
62
-
63
- langs = docs.keys;
64
- langs.delete("rb"); # `rb' is not a language but the script!
65
- source = srcs["rb"]; # Assign it for preventing later look-ups
66
- srcdoc = docs["rb"];
67
- sourcesize = source.size; # Do not recalculate size again and again.
68
- srcdocsize = srcdoc.size;
69
-
70
- for lang in langs
71
- docblk = docs[lang];
72
- max = [sourcesize, srcdocsize, docblk.size].max;
73
- filename = File.join(srcfile+"."+lang);
74
- open(filename, "w+") do |fd|
75
- j = 0;
76
- for i in 0...max # Goto every block; be it source or RD.
77
- fd.print source[i].join unless source[i].nil? || source[i].empty?;
78
- sblk, dblk = srcdoc[i], docblk[j];
79
- blk = (dblk and (dblk.kind == sblk.kind)) ? dblk : sblk;
80
- next unless blk;
81
- j += 1 if blk == dblk;
82
- fd.print "=begin #{blk && blk.kind}\n", blk.lines.join, "=end\n";
83
- end
84
- end
85
- print "File `#{filename}' created.\n" if $v;
86
- end
87
-
88
- exit(0);
89
-
90
- __END__
91
-
92
- Purpose:
93
- This tool is written to support you to write multi-language documents
94
- using the Ruby-Document-Format (RD).
95
-
96
- The idea for such a tool was originated by
97
-
98
- Minero Aoki <aamine@dp.u-netsurf.ne.jp>,
99
-
100
- how has thought about, how to make life easier for developers who have to
101
- write and maintain scripts in more than one language.
102
-
103
- You have to specify at least two filenames on the command line. One
104
- containing the Ruby script, the second containing a translated RD. If the
105
- script does *not* end with `.rb', it has to be the first filename mentioned
106
- on the command line! In opposition, all files containing translations *must
107
- not* ending with `.rb'! They should use a extension that describes the
108
- language. So that would give us the following picture:
109
-
110
- - sample.rb : Script contains the original documentation.
111
- - sample.jp : Documentation written in Japanese.
112
- - sample.de : Translation to German.
113
-
114
- The tool doesn't care about the language extensions. You can name them as
115
- you like! So the file containing the Japanese translation above, could also
116
- be names e.g. `sample.japan' or even `japantranslation.japan'.
117
-
118
- For every translation file, a new file will be created. The name is build
119
- from the script filename plus the language extension. So regarding the
120
- example above, following files would be created:
121
-
122
- - sample.rb.jp
123
- - sample.rb.de
124
-
125
- or, given the alternative translation filename as mentioned above...
126
-
127
- - sample.rb.japan
128
-
129
- How does it work?
130
- The contents of all files will be split into source and RD blocks. The
131
- source of the translation files, will be discarded! Every RD block may
132
- be of a certain type. The type will be taken from the contents directly
133
- following the `=begin' on the same line. If there is only a lonely `=begin'
134
- on a line by itself, the type of the block is `nil'. That means in
135
-
136
- :
137
- =begin
138
- bla bla
139
- =end
140
- :
141
- =begin whatever or not
142
- blub blub
143
- =end
144
- :
145
-
146
- the first block would be of type `nil' and the second one of type `whatever
147
- or not'.
148
-
149
- Block types are important for the translation. If a source will be
150
- generated from a script and a translation file, only these blocks are taken
151
- from the translation files, that comes in the right sequence *and* contains
152
- the same type as the block in the script! For example:
153
-
154
- # File sample.rb
155
- :
156
- =begin gnark
157
- Some comment
158
- =end
159
- :
160
- =begin
161
- block 2
162
- =end
163
- :
164
- =begin
165
- block 3
166
- =end
167
- :
168
-
169
- # File sample.de
170
- :
171
- =begin
172
- Block zwei
173
- =end
174
- :
175
- =begin
176
- Block drei
177
- =end
178
- :
179
-
180
- Here, the first block of `sample.rb' will *not* be translated, as there is
181
- no translation block with that type in sample.de! So the first block would
182
- be inserted as-it-is into the translated script. The blocks afterwards,
183
- however, are translated as the block type does match (it is `nil' there).
184
-
185
- Attention: In a translation file, a second block will only be used, if
186
- a first one was already used (matched). A third block will
187
- only be used, if a second one was used already!
188
-
189
- That means, if the first block of `sample.de' would be of type e.g. `Never
190
- match', then no block would ever be taken to replace anyone of `sample.rb'.
191
-
192
- Syntax:
193
- #{File::basename $0} [-h|-v] <filename>...
194
-
195
- Whereby:
196
- -h shows this help text.
197
- -v shows some more text during processing.
198
- <filename> Means a file, that contains RD and/or Ruby code.
199
-
200
- Examples:
201
- #{File::basename $0} -v sample.rb sample.ja sample.de
202
- #{File::basename $0} -v sample.ja sample.rb sample.de
203
- #{File::basename $0} -v sample.ja sample.de sample.rb
204
- #{File::basename $0} -v sample.??
205
-
206
- Author:
207
- Clemens Hintze <c.hintze@gmx.net>.