deplate 0.7.3 → 0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. data/AUTHORS.TXT +3 -0
  2. data/CHANGES.TXT +248 -175
  3. data/LICENSE.TXT +0 -0
  4. data/NEWS.TXT +28 -24
  5. data/README.TXT +0 -0
  6. data/TODO.TXT +174 -88
  7. data/VERSION.TXT +1 -1
  8. data/bin/deplate +0 -0
  9. data/bin/deplate.bat +0 -0
  10. data/etc/deplate.ini +91 -3
  11. data/lib/action_view/helpers/deplate.rb +45 -0
  12. data/lib/deplate.rb +6 -1
  13. data/lib/deplate/abstract-class.rb +0 -0
  14. data/lib/deplate/bib.rb +576 -0
  15. data/lib/deplate/builtin.rb +0 -0
  16. data/lib/deplate/cache.rb +55 -5
  17. data/lib/deplate/commands.rb +346 -183
  18. data/lib/deplate/common.rb +209 -48
  19. data/lib/deplate/converter.rb +12 -6
  20. data/lib/deplate/core.rb +777 -378
  21. data/lib/deplate/counters.rb +254 -0
  22. data/lib/deplate/css/article.css +4 -3
  23. data/lib/deplate/css/deplate.css +121 -5
  24. data/lib/deplate/css/heading-navbar.css +0 -0
  25. data/lib/deplate/css/layout-deplate-print.css +0 -0
  26. data/lib/deplate/css/layout-deplate.css +0 -0
  27. data/lib/deplate/css/sans-serif.css +0 -0
  28. data/lib/deplate/css/serif-e.css +0 -0
  29. data/lib/deplate/css/serif-rel.css +0 -0
  30. data/lib/deplate/css/serif.css +9 -3
  31. data/lib/deplate/css/slides.css +0 -0
  32. data/lib/deplate/css/tabbar-left.css +0 -0
  33. data/lib/deplate/css/tabbar-right-ie.css +3 -9
  34. data/lib/deplate/css/tabbar-right.css +51 -18
  35. data/lib/deplate/css/tabbar-top.css +7 -1
  36. data/lib/deplate/css/tabbar.css +0 -0
  37. data/lib/deplate/css/text-sans-serif.css +0 -0
  38. data/lib/deplate/css/text-serif.css +0 -0
  39. data/lib/deplate/define.rb +183 -177
  40. data/lib/deplate/deplate-string.rb +82 -0
  41. data/lib/deplate/docbook.rb +236 -128
  42. data/lib/deplate/elements.rb +584 -417
  43. data/lib/deplate/etc.rb +163 -101
  44. data/lib/deplate/external.rb +42 -11
  45. data/lib/deplate/fmt/dbk-article-4.1.2.rb +0 -0
  46. data/lib/deplate/fmt/dbk-article.rb +0 -0
  47. data/lib/deplate/fmt/dbk-book.rb +0 -0
  48. data/lib/deplate/fmt/dbk-ref.rb +3 -3
  49. data/lib/deplate/fmt/dbk-slides.rb +0 -0
  50. data/lib/deplate/fmt/dbk-snippet.rb +0 -0
  51. data/lib/deplate/fmt/html-snippet.rb +0 -0
  52. data/lib/deplate/fmt/html.rb +783 -550
  53. data/lib/deplate/fmt/htmlsite.rb +192 -199
  54. data/lib/deplate/fmt/htmlslides.rb +0 -0
  55. data/lib/deplate/fmt/htmlwebsite.rb +3 -3
  56. data/lib/deplate/fmt/latex-snippet.rb +0 -0
  57. data/lib/deplate/fmt/latex.rb +242 -83
  58. data/lib/deplate/fmt/null.rb +32 -0
  59. data/lib/deplate/fmt/php.rb +4 -4
  60. data/lib/deplate/fmt/phpsite.rb +6 -5
  61. data/lib/deplate/fmt/plain.rb +160 -106
  62. data/lib/deplate/fmt/template.rb +0 -0
  63. data/lib/deplate/fmt/xhtml10t.rb +0 -0
  64. data/lib/deplate/formatter-snippet.rb +0 -0
  65. data/lib/deplate/formatter.rb +613 -301
  66. data/lib/deplate/input.rb +202 -142
  67. data/lib/deplate/input/deplate-headings.rb +4 -6
  68. data/lib/deplate/input/deplate-restricted.rb +15 -9
  69. data/lib/deplate/input/deplate.rb +2 -4
  70. data/lib/deplate/input/rdoc.rb +39 -38
  71. data/lib/deplate/input/template.rb +0 -0
  72. data/lib/deplate/lib/Makefile.config +29 -0
  73. data/lib/deplate/lib/latex/deplate.sty +54 -0
  74. data/lib/deplate/lib/latex/highlight-extra.sty +0 -0
  75. data/lib/deplate/lib/latex/highlight-typical.sty +0 -0
  76. data/lib/deplate/lib/php/page-comment.inc.php +216 -0
  77. data/lib/deplate/lib/tabmenu.js +0 -0
  78. data/lib/deplate/locale/de.latin1 +155 -17
  79. data/lib/deplate/locale/ru.koi8-r +0 -0
  80. data/lib/deplate/locale/zh_cn.gb2312 +0 -0
  81. data/lib/deplate/macros.rb +133 -82
  82. data/lib/deplate/messages.rb +6 -4
  83. data/lib/deplate/metadata.rb +0 -0
  84. data/lib/deplate/metadata/marshal.rb +0 -0
  85. data/lib/deplate/metadata/xml.rb +0 -0
  86. data/lib/deplate/metadata/yaml.rb +0 -0
  87. data/lib/deplate/mod/anyword.rb +3 -3
  88. data/lib/deplate/mod/babelfish.rb +4 -4
  89. data/lib/deplate/mod/code-gvim.rb +8 -4
  90. data/lib/deplate/mod/code-highlight.rb +3 -3
  91. data/lib/deplate/mod/colored-log.rb +0 -0
  92. data/lib/deplate/mod/de.rb +2 -2
  93. data/lib/deplate/mod/en.rb +0 -0
  94. data/lib/deplate/mod/endnotes.rb +0 -0
  95. data/lib/deplate/mod/fr.rb +0 -0
  96. data/lib/deplate/mod/html-asciimath.rb +0 -0
  97. data/lib/deplate/mod/html-deplate-button.rb +0 -0
  98. data/lib/deplate/mod/html-headings-navbar.rb +5 -13
  99. data/lib/deplate/mod/html-jsmath.rb +39 -0
  100. data/lib/deplate/mod/html-obfuscate-email.rb +3 -3
  101. data/lib/deplate/mod/html-sidebar.rb +0 -0
  102. data/lib/deplate/mod/htmlslides-navbar-fh.rb +3 -3
  103. data/lib/deplate/mod/iconv.rb +0 -0
  104. data/lib/deplate/mod/imgurl.rb +4 -4
  105. data/lib/deplate/mod/inlatex-compound.rb +7 -10
  106. data/lib/deplate/mod/koma.rb +0 -0
  107. data/lib/deplate/mod/latex-emph-table-head.rb +0 -0
  108. data/lib/deplate/mod/latex-styles.rb +7 -4
  109. data/lib/deplate/mod/latex-verbatim-small.rb +0 -0
  110. data/lib/deplate/mod/makefile.rb +23 -7
  111. data/lib/deplate/mod/mark-external-urls.rb +3 -3
  112. data/lib/deplate/mod/markup-1-warn.rb +10 -10
  113. data/lib/deplate/mod/markup-1.rb +0 -0
  114. data/lib/deplate/mod/navbar-png.rb +24 -8
  115. data/lib/deplate/mod/noindent.rb +0 -0
  116. data/lib/deplate/mod/numpara.rb +0 -0
  117. data/lib/deplate/mod/particle-math.rb +4 -4
  118. data/lib/deplate/mod/php-extra.rb +46 -6
  119. data/lib/deplate/mod/pstoedit.rb +0 -0
  120. data/lib/deplate/mod/recode.rb +0 -0
  121. data/lib/deplate/mod/ru_koi8-r.rb +0 -0
  122. data/lib/deplate/mod/smart-dash.rb +26 -0
  123. data/lib/deplate/mod/smiley.rb +69 -7
  124. data/lib/deplate/mod/soffice.rb +0 -0
  125. data/lib/deplate/mod/symbols-latin1.rb +14 -23
  126. data/lib/deplate/mod/symbols-od-utf-8.rb +5 -3
  127. data/lib/deplate/mod/symbols-plain.rb +5 -35
  128. data/lib/deplate/mod/symbols-sgml.rb +8 -9
  129. data/lib/deplate/mod/symbols-utf-8.rb +8 -9
  130. data/lib/deplate/mod/symbols-xml.rb +5 -9
  131. data/lib/deplate/mod/syntax-region-alt.rb +5 -5
  132. data/lib/deplate/mod/utf8.rb +0 -0
  133. data/lib/deplate/mod/validate-html.rb +0 -0
  134. data/lib/deplate/mod/xmlrpc.rb +0 -0
  135. data/lib/deplate/mod/zh-cn-autospace.rb +18 -20
  136. data/lib/deplate/mod/zh-cn.rb +4 -6
  137. data/lib/deplate/nukumi2.rb +71 -0
  138. data/lib/deplate/once-method.rb +0 -0
  139. data/lib/deplate/output.rb +19 -21
  140. data/lib/deplate/particles.rb +178 -116
  141. data/lib/deplate/regions.rb +99 -58
  142. data/lib/deplate/skeletons.rb +122 -0
  143. data/lib/deplate/structured.rb +164 -106
  144. data/lib/deplate/template.rb +67 -43
  145. data/lib/deplate/templates/html-doc.html +0 -0
  146. data/lib/deplate/templates/html-left-tabbar-js.html +0 -0
  147. data/lib/deplate/templates/html-left-tabbar.html +0 -0
  148. data/lib/deplate/templates/html-tabbar-right-pcomments.php +22 -0
  149. data/lib/deplate/templates/html-tabbar-right-step.html +24 -0
  150. data/lib/deplate/templates/html-tabbar-right-table.html +0 -0
  151. data/lib/deplate/templates/html-tabbar-right.html +2 -4
  152. data/lib/deplate/templates/html-tabbar-top.html +0 -9
  153. data/lib/deplate/templates/html-tabbar.html +0 -0
  154. data/lib/deplate/variables.rb +127 -0
  155. data/lib/deplate/wiki-markup.rb +99 -33
  156. data/lib/deplate/xml.rb +18 -18
  157. data/lib/deplate/zh-cn.rb +0 -0
  158. data/lib/ps2ppm.rb +0 -0
  159. data/man/man1/deplate.1 +564 -474
  160. metadata +201 -186
@@ -1,12 +1,12 @@
1
1
  /* Text style: sans-serif */
2
2
  /* @Author: Thomas Link (samul AT web.de) */
3
3
  /* @Created: 13-Apr-2004. */
4
- /* @Last Change: 27-Okt-2005. */
5
- /* @Revision: 0.624 */
4
+ /* @Last Change: 23-Apr-2006. */
5
+ /* @Revision: 0.626 */
6
6
 
7
7
  body, table, div {
8
8
  /* font-family: Georgia, Bookman, Times, Serif; */
9
- font-family: Georgia, Minion Web, Palatino, Book Antiqua, Utopia, "Times New Roman", serif;
9
+ font-family: Georgia, Minion Web, Palatino, "Book Antiqua", Utopia, "Times New Roman", serif;
10
10
  /* font-size-adjust: .5; */
11
11
  font-size: 14px;
12
12
  }
@@ -188,3 +188,9 @@ span.progress {
188
188
  font-size: 10px;
189
189
  }
190
190
 
191
+ input, textarea {
192
+ font-family: Georgia, Minion Web, Palatino, "Book Antiqua", Utopia, "Times New Roman", serif;
193
+ font-size: 90%;
194
+ line-height: 135%;
195
+ }
196
+
File without changes
File without changes
@@ -1,14 +1,8 @@
1
1
  @media screen {
2
- #tabBody {
3
- margin: 0px 40px 40px 240px;
4
- padding: 20px;
5
- }
6
- #tabBar {
2
+ #tabBarRight {
7
3
  position: relative;
8
- top: 10px;
4
+ /* top: 10px; */
9
5
  left: 10px;
10
- }
11
- table.tabBarRight {
12
- border-collapse: collapse;
6
+ width: 160px;
13
7
  }
14
8
  }
@@ -1,13 +1,13 @@
1
1
  @import url(deplate.css);
2
2
 
3
3
  body {
4
- background-color: #e0e0ff;
4
+ background-color: #d9e0f0;
5
5
  }
6
6
 
7
7
  #tabFrame {
8
8
  /* display: table; */
9
9
  /* border-spacing: 0; */
10
- background-color: #e0e0ff;
10
+ background-color: #d9e0f0;
11
11
  border-spacing: 0;
12
12
  border-collapse: collapse;
13
13
  border: 0;
@@ -25,7 +25,7 @@ body {
25
25
  border: 0;
26
26
  padding: 10px 0 0 0;
27
27
  margin: 0;
28
- background-color: #e0e0ff;
28
+ background-color: #d9e0f0;
29
29
  }
30
30
  #tabBodyFrame {
31
31
  /* display: table-cell; */
@@ -35,7 +35,7 @@ body {
35
35
  float: left;
36
36
  text-align: left;
37
37
  vertical-align: top;
38
- background-color: #e0e0ff;
38
+ background-color: #d9e0f0;
39
39
  width: 750px;
40
40
  padding: 0;
41
41
  margin: 0;
@@ -56,12 +56,12 @@ body {
56
56
 
57
57
  .tabFrameRow {
58
58
  /* display: table-row; */
59
- background-color: #e0e0ff;
59
+ background-color: #d9e0f0;
60
60
  border: 0;
61
61
  }
62
62
  .tabFrameCell {
63
63
  /* display: table-cell; */
64
- background-color: #e0e0ff;
64
+ background-color: #d9e0f0;
65
65
  border: 0;
66
66
  }
67
67
 
@@ -73,36 +73,65 @@ table.tabBarRight {
73
73
  margin: 0;
74
74
  /* padding: 10px; */
75
75
  border-spacing: 0;
76
- max-width: 140px;
76
+ /* max-width: 160px; */
77
+ width: 160px;
78
+ /* min-width: 140px; */
77
79
  }
78
80
  tr.tabBarRight {
79
81
  }
80
82
  td.tabBarRight {
81
83
  }
82
84
 
83
- .tabBarRightActive {
85
+ *[class|=tabBarRightActive] {
84
86
  background-color: #fafafa;
85
87
  }
86
- tr.tabBarRightActive {
88
+ tr[class|=tabBarRightActive] {
87
89
  }
88
- td.tabBarRightActive {
89
- border: 1px inset #e0e0e0;
90
- /* border-left: 4px solid #e0e0e0; */
91
- /* border-right: 4px solid #afafaf; */
90
+ td[class|=tabBarRightActive] {
91
+ border-top: 0;
92
+ border-bottom: 0;
92
93
  padding: 2px;
93
94
  }
94
95
 
95
- .tabBarRightInactive {
96
+ tr.tabBarRightActive-Level1 {
97
+ border-top: 0;
98
+ border-bottom: 0;
99
+ }
100
+ tr.tabBarRightActive-Level2 {
101
+ border-top: 0;
102
+ border-bottom: 0;
103
+ }
104
+
105
+ td.tabBarRightActive-Level1 {
106
+ border-top: 1px solid #555555;
107
+ border-left: 1px solid #555555;
108
+ border-bottom: 0 none;
109
+ background-color: #fff3d0;
110
+ margin: 5px;
111
+ }
112
+ td.tabBarRightActive-Level2 {
113
+ border-left: 1px solid #555555;
114
+ border-top: 0 none;
115
+ border-bottom: 0 none;
116
+ background-color: #ffffff;
117
+ margin: 5px;
118
+ }
119
+
120
+ *[class|=tabBarRightInactive] {
96
121
  background-color: #f0f0f0;
97
122
  }
98
- tr.tabBarRightInactive {
123
+ tr[class|=tabBarRightInactive] {
99
124
  }
100
- td.tabBarRightInactive {
125
+ td[class|=tabBarRightInactive] {
101
126
  border: 1px solid #fafafa;
102
- /* border-left: 4px solid #afafaf; */
103
- /* border-right: 4px solid #e0e0e0; */
104
127
  padding: 2px;
105
128
  }
129
+ td.tabBarRightInactive-Level1 {
130
+ border-top: 0 none;
131
+ border-bottom: 0 none;
132
+ background-color: #f0f0f0;
133
+ margin: 5px;
134
+ }
106
135
 
107
136
  .tabBarRightButtons {
108
137
  }
@@ -116,3 +145,7 @@ td.tabBarRightButtons {
116
145
  text-align: center;
117
146
  }
118
147
 
148
+ table.comment_form, td.comment_form {
149
+ background-color: #d9e0f0;
150
+ }
151
+
@@ -1,5 +1,9 @@
1
1
  @import url(deplate.css);
2
2
 
3
+ body {
4
+ background-color: #d9e0f0;
5
+ }
6
+
3
7
  #tabFrame {
4
8
  position: absolute;
5
9
  top: 0;
@@ -11,7 +15,7 @@
11
15
  padding: 0;
12
16
  border: 0;
13
17
  margin: 10px 0 0 0;
14
- background-color: #e9e9ff;
18
+ background-color: #d9e0f0;
15
19
  }
16
20
  #tabBodyFrame {
17
21
  /* text-align: left; */
@@ -35,11 +39,13 @@ table.tabBarTop {
35
39
  border-spacing: 0;
36
40
  position: relative;
37
41
  top: 1px;
42
+ text-align: center;
38
43
  }
39
44
  tr.tabBarTop {
40
45
  border: 0;
41
46
  margin: 0;
42
47
  padding: 0;
48
+ text-align: center;
43
49
  }
44
50
  td.tabBarTopActive {
45
51
  margin: 0;
File without changes
File without changes
File without changes
@@ -3,11 +3,11 @@
3
3
  # @Website: http://deplate.sf.net/
4
4
  # @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
5
5
  # @Created: 19-Okt-2004.
6
- # @Last Change: 23-Okt-2005.
7
- # @Revision: 0.402
6
+ # @Last Change: 29-Apr-2006.
7
+ # @Revision: 0.500
8
8
 
9
- require "deplate/commands"
10
- require "deplate/macros"
9
+ require 'deplate/commands'
10
+ require 'deplate/macros'
11
11
 
12
12
  module Deplate::DefRegions; end
13
13
  module Deplate::DefElements; end
@@ -24,14 +24,12 @@ module Deplate::DefMacro; end
24
24
  # CHANGES:
25
25
  #
26
26
  class Deplate::Define < Deplate::Region
27
- @line_cont = true
28
-
29
27
  class << self
30
28
  def let_variables(deplate, args, &block)
31
29
  unset = []
32
30
  saved = {}
33
31
  begin
34
- for key, val in args
32
+ args.each do |key, val|
35
33
  if key.kind_of?(String)
36
34
  opt = deplate.variables[key]
37
35
  if opt
@@ -42,12 +40,12 @@ class Deplate::Define < Deplate::Region
42
40
  deplate.variables[key] = val
43
41
  end
44
42
  end
45
- block.call
43
+ return block.call
46
44
  ensure
47
- for key in unset
45
+ unset.each do |key|
48
46
  deplate.variables.delete(key)
49
47
  end
50
- for key, val in saved
48
+ saved.each do |key, val|
51
49
  deplate.variables[key] = val
52
50
  end
53
51
  end
@@ -57,7 +55,7 @@ class Deplate::Define < Deplate::Region
57
55
  if mandatory
58
56
  diff = mandatory.split(/\s+/) - args.keys
59
57
  unless diff.empty?
60
- Deplate::Core.log(["Missing arguments", diff], :error, source)
58
+ Deplate::Core.log(['Missing arguments', diff], :error, source)
61
59
  end
62
60
  end
63
61
  end
@@ -71,7 +69,7 @@ class Deplate::Define < Deplate::Region
71
69
 
72
70
  def valid_id?(id)
73
71
  if id =~ /\W/
74
- log(["Invalid id", id], :error)
72
+ log(['Invalid ID', id], :error)
75
73
  return false
76
74
  else
77
75
  return true
@@ -93,16 +91,16 @@ end
93
91
 
94
92
  # class Deplate::Define::Region < Deplate::Region::SecondOrder
95
93
  class Deplate::Define::Region < Deplate::Region
96
- @line_cont = true
97
94
  def finish
98
95
  finish_accum
99
96
  setup_template
100
- @args["@body"] = @accum.join("\n")
101
- @args["@note"] = @regNote
97
+ @args['@body'] = @accum.join("\n")
98
+ @args['@note'] = @regNote
102
99
  Deplate::Define.check_arguments(@mandatory, @args, @source)
103
100
  @expected = Deplate::Element
104
101
  @elt = []
105
102
  Deplate::Define.let_variables(@deplate, @args) do
103
+ # p "DBG DefineRegion: #{@deplate.options.counters.inspect}"
106
104
  @elt = @deplate.parsed_array_from_strings(@template, @source.begin, @source.file)
107
105
  end
108
106
  unless @elt.empty?
@@ -113,122 +111,133 @@ class Deplate::Define::Region < Deplate::Region
113
111
  end
114
112
 
115
113
  class Deplate::Regions::DefRegion < Deplate::Define
116
- @@regions["DefRegion"] = self
117
- @@regions["DefineRegion"] = self
118
- @@regions["Defr"] = self
114
+ @@regions['DefRegion'] = self
115
+ @@regions['DefineRegion'] = self
116
+ @@regions['Defr'] = self
119
117
 
120
118
  def define
121
- id = @args["id"] || @regNote
119
+ id = @args['id'] ||= @regNote
122
120
  if valid_id?(id)
123
- region = %{
124
- class Deplate::DefRegions::#{id} < Deplate::Define::Region
125
- @@regions["#{id}"] = self
126
- def setup_template
127
- @template = #{@accum.inspect}
128
- @mandatory = #{@args["args"].inspect}
129
- end
121
+ # if @args['lineCont'] == false
122
+ line_cont = 'set_line_cont false'
123
+ # else
124
+ # line_cont = ''
125
+ # end
126
+ body = <<-EOR
127
+ #{line_cont}
128
+ def setup_template
129
+ @template = #{@accum.inspect}
130
+ @mandatory = #{@args['args'].inspect}
130
131
  end
131
- }
132
- eval region
132
+ EOR
133
+ @args[:register] = true
134
+ @args[:super] = Deplate::Define::Region
135
+ cls = Deplate::Cache.region(@deplate, body, @args)
133
136
  end
134
137
  end
135
138
  end
136
139
 
140
+ class Deplate::Define::Element < Deplate::Element
141
+ def finish
142
+ m = self.class.match(@accum.join(' '))
143
+ if m
144
+ m.captures.each_with_index do |e, i|
145
+ @args[(i + 1).to_s] = e
146
+ end
147
+ @expected = Deplate::Element
148
+ tmpl = Deplate::Template.new(:template => self.class.tpl,
149
+ :source => @source,
150
+ :container => self)
151
+ Deplate::Define.let_variables(@deplate, @args) do
152
+ @accum = tmpl.fill_in(@deplate, :source => @source)
153
+ end
154
+ @accum.flatten!
155
+ @accum.collect! {|l| l.split("\n")}
156
+ @accum.flatten!
157
+ else
158
+ raise 'Internal error!'
159
+ end
160
+ @elt = @deplate.parsed_array_from_strings(@accum, @source.begin, @source.file)
161
+ return @elt
162
+ end
163
+ end
137
164
 
138
165
  class Deplate::Regions::DefElement < Deplate::Define
139
- @@regions["DefElement"] = self
140
- @@regions["DefineElement"] = self
141
- @@regions["Defe"] = self
166
+ @@regions['DefElement'] = self
167
+ @@regions['DefineElement'] = self
168
+ @@regions['Defe'] = self
142
169
  @@def_element_counter = 0
143
170
 
144
- @line_cont = false
171
+ set_line_cont false
145
172
 
146
173
  def define
147
- rx = @args['rx'] || @regNote
174
+ rx = @args['rx'] ||= @regNote
148
175
  if rx
149
176
  @@def_element_counter += 1
150
- template = @accum.join("\n").gsub(/\'/, "\\\\\'")
151
- rx = Regexp.new(rx).source.gsub(/\//, '\\\\/')
177
+ # template = @accum.join("\n").gsub(/\'/, "\\\\\'")
178
+ template = @accum.join("\n")
179
+ # rx = Regexp.new(rx).source.gsub(/\//, '\\\\/')
180
+ rx = %r{^#{rx}}
152
181
  multiline = valid_switch(@args['multiline'], 'true')
153
182
  collapse = valid_switch(@args['collapse'], 'false')
154
- eval %{
155
- class Deplate::DefElements::Elt#{@@def_element_counter} < Deplate::Element
156
- @@elements << self
157
- @rx = /^#{rx}/
158
- TPL = '#{template}'
159
-
160
- def setup
161
- @multiliner = #{multiline}
162
- @collapse = #{collapse}
163
- @accum = [@match[0]]
164
- end
165
-
166
- def finish
167
- m = self.class.match(@accum.join(' '))
168
- if m
169
- m.captures.each_with_index do |e, i|
170
- @args[(i + 1).to_s] = e
171
- end
172
- @expected = Deplate::Element
173
- tmpl = Deplate::Template.new(:template => TPL,
174
- :source => @source,
175
- :container => self)
176
- Deplate::Define.let_variables(@deplate, @args) do
177
- @accum = tmpl.fill_in(@deplate, :source => @source)
178
- end
179
- @accum.flatten!
180
- @accum.collect! {|l| l.split("\n")}
181
- @accum.flatten!
182
- else
183
- raise 'Internal error!'
184
- end
185
- @elt = @deplate.parsed_array_from_strings(@accum, @source.begin, @source.file)
186
- return @elt
187
- end
183
+ body = <<-EOR
184
+ set_rx(#{rx.inspect})
185
+ class_attribute :tpl, #{template.inspect}
186
+ def setup
187
+ @multiliner = #{multiline}
188
+ @collapse = #{collapse}
189
+ @accum = [@match[0]]
188
190
  end
189
- }
191
+ EOR
192
+ @args[:register] = true
193
+ @args[:super] = Deplate::Define::Element
194
+ cls = Deplate::Cache.element(@deplate, body, @args)
190
195
  end
191
196
  end
192
197
  end
193
198
 
199
+ class Deplate::Define::Particle < Deplate::Particle
200
+ def setup
201
+ @match.captures.each_with_index do |e, i|
202
+ @args[(i + 1).to_s] = e
203
+ end
204
+ @expected = Deplate::Particle
205
+ tmpl = Deplate::Template.new(:template => self.class.tpl,
206
+ :source => @source,
207
+ :container => self)
208
+ Deplate::Define.let_variables(@deplate, @args) do
209
+ @elt = tmpl.fill_in(@deplate, :source => @source)
210
+ end
211
+ @elt = @deplate.parse(@container, @elt.join(' '))
212
+ end
213
+
214
+ def process
215
+ @elt = @deplate.format_particles(@elt)
216
+ end
217
+ end
194
218
 
195
219
  class Deplate::Regions::DefParticle < Deplate::Define
196
- @@regions["DefParticle"] = self
197
- @@regions["DefineParticle"] = self
198
- @@regions["Defp"] = self
220
+ @@regions['DefParticle'] = self
221
+ @@regions['DefineParticle'] = self
222
+ @@regions['Defp'] = self
199
223
  @@def_particle_counter = 0
200
224
 
201
225
  def define
202
- rx = @args['rx'] || @regNote
203
- if rx
204
- template = @accum.join("\n").gsub(/\'/, "\\\\\'")
205
- rx = Regexp.new(rx).source
226
+ rs = @args['rx'] ||= @regNote
227
+ if rs
228
+ # template = @accum.join("\n").gsub(/\'/, "\\\\\'")
229
+ template = @accum.join("\n")
230
+ rx = %r{^#{rs}}
206
231
  multiline = valid_switch(@args['multiline'], 'true')
207
232
  collapse = valid_switch(@args['collapse'], 'false')
208
- cls = @deplate.formatter.retrieve_particle(rx, template)
233
+ # cls = @deplate.formatter.retrieve_particle(rx.source, template)
209
234
  body = <<-EOR
210
- @rx = /^#{rx}/
211
- TPL = '#{template}'
212
-
213
- def setup
214
- @match.captures.each_with_index do |e, i|
215
- @args[(i + 1).to_s] = e
216
- end
217
- @expected = Deplate::Particle
218
- tmpl = Deplate::Template.new(:template => TPL,
219
- :source => @source,
220
- :container => self)
221
- Deplate::Define.let_variables(@deplate, @args) do
222
- @elt = tmpl.fill_in(@deplate, :source => @source)
223
- end
224
- @elt = @deplate.parse(@container, @elt.join(' '))
225
- end
226
-
227
- def process
228
- @elt = @deplate.format_particles(@elt)
229
- end
235
+ set_rx(#{rx.inspect})
236
+ class_attribute :tpl, #{template.inspect}
230
237
  EOR
231
- cls = Deplate::Cache.particle(deplate, body, :register => true)
238
+ @args[:register] = true
239
+ @args[:super] = Deplate::Define::Particle
240
+ cls = Deplate::Cache.particle(deplate, body, @args)
232
241
  end
233
242
  end
234
243
  end
@@ -239,7 +248,7 @@ class Deplate::Define::Command < Deplate::Command
239
248
  def accumulate(source, array, deplate, text, match, args, cmd)
240
249
  Deplate::Core.log("%s: %s" % [cmd, text], :debug)
241
250
  template, mandatory = setup_template(text, deplate)
242
- args["@body"] = text
251
+ args['@body'] = text
243
252
  Deplate::Define.check_arguments(mandatory, args, source)
244
253
  Deplate::Define.let_variables(deplate, args) do
245
254
  deplate.include_stringarray(template, array, source.begin, source.file)
@@ -250,34 +259,33 @@ end
250
259
 
251
260
 
252
261
  class Deplate::Regions::DefCommand < Deplate::Define
253
- @@regions["DefCommand"] = self
254
- @@regions["DefCmd"] = self
255
- @@regions["DefineCommand"] = self
256
- @@regions["Defc"] = self
262
+ @@regions['DefCommand'] = self
263
+ @@regions['DefCmd'] = self
264
+ @@regions['DefineCommand'] = self
265
+ @@regions['Defc'] = self
257
266
 
258
267
  def define
259
- id = @args["id"] || @regNote
268
+ id = @args['id'] ||= @regNote
260
269
  if valid_id?(id)
261
- eval %{
262
- class Deplate::DefCommand::#{id} < Deplate::Define::Command
263
- @@commands["#{id}"] = self
264
- class << self
265
- def setup_template(text, deplate)
266
- [#{@accum.inspect}, #{@args["args"].inspect}]
267
- end
270
+ body = <<-EOR
271
+ class << self
272
+ def setup_template(text, deplate)
273
+ [#{@accum.inspect}, #{@args['args'].inspect}]
268
274
  end
269
275
  end
270
- }
276
+ EOR
277
+ @args[:register] = true
278
+ @args[:super] = Deplate::Define::Command
279
+ cls = Deplate::Cache.command(@deplate, body, @args)
271
280
  end
272
281
  end
273
282
  end
274
283
 
275
284
 
276
285
  class Deplate::Define::Macro < Deplate::Macro
277
- @line_cont = true
278
286
  def setup(text)
279
287
  setup_template(text)
280
- @args["@body"] = text
288
+ @args['@body'] = text
281
289
  Deplate::Define.check_arguments(@mandatory, @args, @container.source)
282
290
  tmpl = Deplate::Template.new(:master => @deplate,
283
291
  :template => @template,
@@ -293,23 +301,22 @@ end
293
301
 
294
302
 
295
303
  class Deplate::Regions::DefMacro < Deplate::Define
296
- @@regions["DefMacro"] = self
297
- @@regions["DefineMacro"] = self
298
- @@regions["Defm"] = self
304
+ @@regions['DefMacro'] = self
305
+ @@regions['DefineMacro'] = self
306
+ @@regions['Defm'] = self
299
307
  def define
300
- id = @args["id"] || @regNote
308
+ id = @args['id'] ||= @regNote
301
309
  if valid_id?(id)
302
- eval %{
303
- class Deplate::DefMacro::Define_#{id} < Deplate::Define::Macro
304
- @@macros[#{id.inspect}] = self
305
- def setup_template(text)
306
- @template = #{@accum.join("\n").inspect}
307
- @mandatory = #{@args["args"].inspect}
308
- @macro_id = #{id.inspect}
309
- end
310
+ body = <<-EOR
311
+ def setup_template(text)
312
+ @template = #{@accum.join("\n").inspect}
313
+ @mandatory = #{@args['args'].inspect}
314
+ @macro_id = #{id.inspect}
310
315
  end
311
- }
312
- # @deplate.initialize_particles(true)
316
+ EOR
317
+ @args[:register] = true
318
+ @args[:super] = Deplate::Define::Macro
319
+ cls = Deplate::Cache.macro(@deplate, body, @args)
313
320
  end
314
321
  end
315
322
  end
@@ -318,15 +325,15 @@ end
318
325
 
319
326
  class Deplate::Regions::Native
320
327
  def expand_template
321
- @args["@note"] = @regNote
322
- @args["@body"] = @accum.join("\n")
328
+ @args['@note'] = @regNote
329
+ @args['@body'] = @accum.join("\n")
323
330
  tmpl = Deplate::Template.new(:master => @deplate,
324
331
  :template => @template,
325
332
  :source => @source,
326
333
  :container => self)
327
334
  rv = nil
328
335
  Deplate::Define.let_variables(@deplate, @args) do
329
- rv = tmpl.fill_in(@deplate, :body => @args["@body"], :source => @source)
336
+ rv = tmpl.fill_in(@deplate, :body => @args['@body'], :source => @source)
330
337
  end
331
338
  return rv
332
339
  end
@@ -334,24 +341,24 @@ end
334
341
 
335
342
 
336
343
  class Deplate::Regions::DefRegionN < Deplate::Define
337
- @@regions["DefRegionN"] = self
338
- @@regions["DefineRegionN"] = self
339
- @@regions["Defrn"] = self
344
+ @@regions['DefRegionN'] = self
345
+ @@regions['DefineRegionN'] = self
346
+ @@regions['Defrn'] = self
340
347
  def define
341
- id = @args["id"] || @regNote
348
+ id = @args['id'] ||= @regNote
342
349
  if valid_id?(id)
343
- eval %{
344
- class Deplate::DefRegions::#{id} < Deplate::Regions::Native
345
- @@regions["#{id}"] = self
346
- def finish
347
- finish_accum
348
- @template = #{@accum.join("\n").inspect}
349
- @mandatory = #{@args["args"].inspect}
350
- @elt = [ expand_template ]
351
- return self
352
- end
350
+ body = <<-EOR
351
+ def finish
352
+ finish_accum
353
+ @template = #{@accum.join("\n").inspect}
354
+ @mandatory = #{@args['args'].inspect}
355
+ @elt = [ expand_template ]
356
+ return self
353
357
  end
354
- }
358
+ EOR
359
+ @args[:register] = true
360
+ @args[:super] = Deplate::Regions::Native
361
+ cls = Deplate::Cache.region(@deplate, body, @args)
355
362
  end
356
363
  end
357
364
  end
@@ -359,7 +366,7 @@ end
359
366
 
360
367
  class Deplate::Define::CommandNative < Deplate::Command
361
368
  def expand_template
362
- @args["@body"] = @accum.join(" ")
369
+ @args['@body'] = @accum.join(' ')
363
370
  tmpl = Deplate::Template.new(:master => @deplate,
364
371
  :template => @template,
365
372
  :source => @source,
@@ -378,24 +385,24 @@ end
378
385
 
379
386
 
380
387
  class Deplate::Regions::DefCommandN < Deplate::Define
381
- @@regions["DefCommandN"] = self
382
- @@regions["DefCmdN"] = self
383
- @@regions["DefineCommandN"] = self
384
- @@regions["Defcn"] = self
388
+ @@regions['DefCommandN'] = self
389
+ @@regions['DefCmdN'] = self
390
+ @@regions['DefineCommandN'] = self
391
+ @@regions['Defcn'] = self
385
392
  def define
386
- id = @args["id"] || @regNote
393
+ id = @args['id'] ||= @regNote
387
394
  if valid_id?(id)
388
- eval %{
389
- class Deplate::DefCommand::#{id} < Deplate::Define::CommandNative
390
- @@commands["#{id}"] = self
391
- def finish
392
- @template = #{@accum.join("\n").inspect}
393
- @mandatory = #{@args["args"].inspect}
394
- @elt = [ expand_template ]
395
- return self
396
- end
395
+ body = <<-EOR
396
+ def finish
397
+ @template = #{@accum.join("\n").inspect}
398
+ @mandatory = #{@args['args'].inspect}
399
+ @elt = [ expand_template ]
400
+ return self
397
401
  end
398
- }
402
+ EOR
403
+ @args[:register] = true
404
+ @args[:super] = Deplate::Define::CommandNative
405
+ cls = Deplate::Cache.command(@deplate, body, @args)
399
406
  end
400
407
  end
401
408
  end
@@ -404,7 +411,7 @@ end
404
411
  class Deplate::Define::MacroNative < Deplate::Macro
405
412
  def setup(text)
406
413
  setup_template
407
- @args["@body"] = text
414
+ @args['@body'] = text
408
415
  tmpl = Deplate::Template.new(:master => @deplate,
409
416
  :template => @template,
410
417
  :source => @source,
@@ -417,22 +424,21 @@ end
417
424
 
418
425
 
419
426
  class Deplate::Regions::DefMacroN < Deplate::Define
420
- @@regions["DefMacroN"] = self
421
- @@regions["DefineMacroN"] = self
422
- @@regions["Defmn"] = self
427
+ @@regions['DefMacroN'] = self
428
+ @@regions['DefineMacroN'] = self
429
+ @@regions['Defmn'] = self
423
430
  def define
424
- id = @args["id"] || @regNote
431
+ id = @args['id'] ||= @regNote
425
432
  if valid_id?(id)
426
- eval %{
427
- class Deplate::DefMacro::Define_#{id} < Deplate::Define::MacroNative
428
- @@macros[#{id.inspect}] = self
429
- def setup_template
430
- @template = #{@accum.join(" ").inspect}
431
- @mandatory = #{@args["args"].inspect}
432
- end
433
+ body = <<-EOR
434
+ def setup_template
435
+ @template = #{@accum.join(' ').inspect}
436
+ @mandatory = #{@args['args'].inspect}
433
437
  end
434
- }
435
- # @deplate.initialize_particles(true)
438
+ EOR
439
+ @args[:register] = true
440
+ @args[:super] = Deplate::Define::MacroNative
441
+ cls = Deplate::Cache.macro(@deplate, body, @args)
436
442
  end
437
443
  end
438
444
  end