wlang 2.0.0.beta → 2.0.0

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.
Files changed (74) hide show
  1. data/Gemfile +2 -8
  2. data/Gemfile.lock +4 -8
  3. data/Manifest.txt +0 -2
  4. data/README.md +36 -7
  5. data/lib/wlang.rb +3 -0
  6. data/lib/wlang/command.rb +3 -11
  7. data/lib/wlang/compiler.rb +11 -20
  8. data/lib/wlang/compiler/autospacing.rb +4 -2
  9. data/lib/wlang/compiler/dialect_enforcer.rb +1 -1
  10. data/lib/wlang/compiler/to_ruby_code.rb +1 -1
  11. data/lib/wlang/dialect.rb +163 -23
  12. data/lib/wlang/html.rb +9 -8
  13. data/lib/wlang/loader.rb +2 -4
  14. data/lib/wlang/scope.rb +17 -8
  15. data/lib/wlang/scope/proc_scope.rb +18 -0
  16. data/lib/wlang/source.rb +56 -0
  17. data/lib/wlang/source/front_matter.rb +51 -0
  18. data/lib/wlang/template.rb +55 -17
  19. data/lib/wlang/tilt.rb +3 -0
  20. data/lib/wlang/tilt/wlang_template.rb +43 -0
  21. data/lib/wlang/version.rb +1 -2
  22. data/spec/fixtures/templates/{hello.tpl → hello.wlang} +0 -0
  23. data/spec/fixtures/templates/hello_with_data.wlang +4 -0
  24. data/spec/fixtures/templates/hello_with_explicit_locals.wlang +6 -0
  25. data/spec/fixtures/templates/hello_with_partials.wlang +7 -0
  26. data/spec/integration/examples/{1-basics.txt → 1-html-intro/1-basics.md} +1 -1
  27. data/spec/integration/examples/{2-imperative.txt → 1-html-intro/2-imperative.md} +1 -1
  28. data/spec/integration/examples/{3-partials.txt → 1-html-intro/3-partials.md} +0 -0
  29. data/spec/integration/examples/{4-recursion.txt → 1-html-intro/4-recursion.md} +1 -2
  30. data/spec/integration/examples/1-html-intro/5-polymorphism.md +17 -0
  31. data/spec/integration/html/test_caret.rb +15 -2
  32. data/spec/integration/html/test_question.rb +12 -2
  33. data/spec/integration/html/test_sharp.rb +5 -1
  34. data/spec/integration/html/test_star.rb +1 -3
  35. data/spec/integration/test_examples.rb +2 -1
  36. data/spec/integration/test_readme.rb +14 -2
  37. data/spec/integration/tilt/test_wlang_template.rb +13 -0
  38. data/spec/spec_helper.rb +3 -3
  39. data/spec/unit/compiler/test_dialect_enforcer.rb +1 -1
  40. data/spec/unit/compiler/test_to_ruby_proc.rb +15 -0
  41. data/spec/unit/dialect/test_compile.rb +0 -10
  42. data/spec/unit/dialect/test_evaluate.rb +36 -28
  43. data/spec/unit/dialect/test_new.rb +61 -0
  44. data/spec/unit/dialect/test_tag.rb +36 -0
  45. data/spec/unit/dialect/test_tag_dispatching_name.rb +22 -0
  46. data/spec/unit/dialect/test_with_scope.rb +8 -11
  47. data/spec/unit/scope/test_chain.rb +29 -0
  48. data/spec/unit/scope/test_coerce.rb +13 -2
  49. data/spec/unit/scope/test_proc_scope.rb +18 -0
  50. data/spec/unit/source/front_matter/test_locals.rb +39 -0
  51. data/spec/unit/source/front_matter/test_template_content.rb +22 -0
  52. data/spec/unit/source/test_locals.rb +12 -0
  53. data/spec/unit/source/test_path.rb +27 -0
  54. data/spec/unit/source/test_template_content.rb +37 -0
  55. data/spec/unit/source/test_with_front_matter.rb +19 -0
  56. data/spec/unit/template/test_call.rb +16 -0
  57. data/spec/unit/template/test_new.rb +20 -0
  58. data/spec/unit/template/test_path.rb +28 -0
  59. data/spec/unit/template/test_render.rb +44 -0
  60. data/spec/unit/template/test_to_ast.rb +12 -0
  61. data/spec/unit/template/test_to_ruby_code.rb +13 -0
  62. data/spec/unit/template/test_to_ruby_proc.rb +12 -0
  63. data/spec/unit/template/test_yaml_front_matter.rb +22 -0
  64. data/spec/unit/tilt/test_wlang_template.rb +65 -0
  65. data/wlang.gemspec +3 -5
  66. data/wlang.noespec +12 -17
  67. metadata +117 -85
  68. data/lib/wlang/dialect/dispatching.rb +0 -51
  69. data/lib/wlang/dialect/evaluation.rb +0 -30
  70. data/lib/wlang/dialect/tags.rb +0 -50
  71. data/lib/wlang/mustang.rb +0 -90
  72. data/spec/integration/test_mustang.rb +0 -120
  73. data/spec/unit/dialect/test_dispatching.rb +0 -19
  74. data/spec/unit/dialect/test_tags.rb +0 -32
@@ -3,16 +3,13 @@ template-info:
3
3
  version: 1.7.4
4
4
  links:
5
5
  source: https://github.com/blambeau/noe
6
- manifest:
7
- lib/__lower__/loader.rb:
8
- safe-override: false
9
6
  variables:
10
7
  lower:
11
8
  wlang
12
9
  upper:
13
10
  WLang
14
11
  version:
15
- 2.0.0.beta
12
+ 2.0.0
16
13
  summary: |-
17
14
  WLang is a powerful code generation and templating engine
18
15
  description: |-
@@ -31,16 +28,14 @@ variables:
31
28
  - http://blambeau.github.com/wlang
32
29
  - http://revision-zero.org/wlang
33
30
  dependencies:
34
- - {name: citrus, version: "~> 2.4.1", groups: [runtime]}
35
- - {name: temple, version: "~> 0.4.0", groups: [runtime]}
36
- - {name: backports, version: "~> 2.6.1", groups: [runtime]}
37
- - {name: quickl, version: "~> 0.4.3", groups: [runtime]}
38
- - {name: awesome_print, version: "~> 1.0.2", groups: [runtime]}
39
- - {name: ruby-prof, version: "~> 0.11.2", groups: [profiling]}
40
- - {name: mustache, version: "~> 0.99.4", groups: [profiling]}
41
- - {name: rake, version: "~> 0.9.2", groups: [development]}
42
- - {name: bundler, version: "~> 1.0", groups: [development]}
43
- - {name: rspec, version: "~> 2.10.0", groups: [development]}
44
- - {name: epath, version: "~> 0.1.0", groups: [development]}
45
- - {name: yard, version: "~> 0.8.1", groups: [development]}
46
- - {name: bluecloth, version: "~> 2.2.0", groups: [development]}
31
+ - {name: citrus, version: "~> 2.4.1", groups: [runtime]}
32
+ - {name: temple, version: "~> 0.4.0", groups: [runtime]}
33
+ - {name: quickl, version: "~> 0.4.3", groups: [runtime]}
34
+ - {name: awesome_print, version: "~> 1.0.2", groups: [runtime]}
35
+ - {name: epath, version: ">= 0.2", groups: [runtime]}
36
+ - {name: tilt, version: "~> 1.3", groups: [development]}
37
+ - {name: rake, version: "~> 0.9.2", groups: [development]}
38
+ - {name: bundler, version: "~> 1.0", groups: [development]}
39
+ - {name: rspec, version: "~> 2.10.0", groups: [development]}
40
+ - {name: yard, version: "~> 0.8.1", groups: [development]}
41
+ - {name: bluecloth, version: "~> 2.2.0", groups: [development]}
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wlang
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta
5
- prerelease: 6
4
+ version: 2.0.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Bernard Lambeau
@@ -10,33 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-06-01 00:00:00.000000000Z
13
+ date: 2012-06-12 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: ruby-prof
17
- requirement: &70335748964040 !ruby/object:Gem::Requirement
16
+ name: tilt
17
+ requirement: &70288043592580 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
21
21
  - !ruby/object:Gem::Version
22
- version: 0.11.2
22
+ version: '1.3'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *70335748964040
26
- - !ruby/object:Gem::Dependency
27
- name: mustache
28
- requirement: &70335748962060 !ruby/object:Gem::Requirement
29
- none: false
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: 0.99.4
34
- type: :development
35
- prerelease: false
36
- version_requirements: *70335748962060
25
+ version_requirements: *70288043592580
37
26
  - !ruby/object:Gem::Dependency
38
27
  name: rake
39
- requirement: &70335748960500 !ruby/object:Gem::Requirement
28
+ requirement: &70288043592080 !ruby/object:Gem::Requirement
40
29
  none: false
41
30
  requirements:
42
31
  - - ~>
@@ -44,10 +33,10 @@ dependencies:
44
33
  version: 0.9.2
45
34
  type: :development
46
35
  prerelease: false
47
- version_requirements: *70335748960500
36
+ version_requirements: *70288043592080
48
37
  - !ruby/object:Gem::Dependency
49
38
  name: bundler
50
- requirement: &70335748958700 !ruby/object:Gem::Requirement
39
+ requirement: &70288043591620 !ruby/object:Gem::Requirement
51
40
  none: false
52
41
  requirements:
53
42
  - - ~>
@@ -55,10 +44,10 @@ dependencies:
55
44
  version: '1.0'
56
45
  type: :development
57
46
  prerelease: false
58
- version_requirements: *70335748958700
47
+ version_requirements: *70288043591620
59
48
  - !ruby/object:Gem::Dependency
60
49
  name: rspec
61
- requirement: &70335748956940 !ruby/object:Gem::Requirement
50
+ requirement: &70288043591160 !ruby/object:Gem::Requirement
62
51
  none: false
63
52
  requirements:
64
53
  - - ~>
@@ -66,21 +55,10 @@ dependencies:
66
55
  version: 2.10.0
67
56
  type: :development
68
57
  prerelease: false
69
- version_requirements: *70335748956940
70
- - !ruby/object:Gem::Dependency
71
- name: epath
72
- requirement: &70335748940940 !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: 0.1.0
78
- type: :development
79
- prerelease: false
80
- version_requirements: *70335748940940
58
+ version_requirements: *70288043591160
81
59
  - !ruby/object:Gem::Dependency
82
60
  name: yard
83
- requirement: &70335748940200 !ruby/object:Gem::Requirement
61
+ requirement: &70288043590700 !ruby/object:Gem::Requirement
84
62
  none: false
85
63
  requirements:
86
64
  - - ~>
@@ -88,10 +66,10 @@ dependencies:
88
66
  version: 0.8.1
89
67
  type: :development
90
68
  prerelease: false
91
- version_requirements: *70335748940200
69
+ version_requirements: *70288043590700
92
70
  - !ruby/object:Gem::Dependency
93
71
  name: bluecloth
94
- requirement: &70335748939300 !ruby/object:Gem::Requirement
72
+ requirement: &70288043590240 !ruby/object:Gem::Requirement
95
73
  none: false
96
74
  requirements:
97
75
  - - ~>
@@ -99,10 +77,10 @@ dependencies:
99
77
  version: 2.2.0
100
78
  type: :development
101
79
  prerelease: false
102
- version_requirements: *70335748939300
80
+ version_requirements: *70288043590240
103
81
  - !ruby/object:Gem::Dependency
104
82
  name: citrus
105
- requirement: &70335748938360 !ruby/object:Gem::Requirement
83
+ requirement: &70288043589780 !ruby/object:Gem::Requirement
106
84
  none: false
107
85
  requirements:
108
86
  - - ~>
@@ -110,10 +88,10 @@ dependencies:
110
88
  version: 2.4.1
111
89
  type: :runtime
112
90
  prerelease: false
113
- version_requirements: *70335748938360
91
+ version_requirements: *70288043589780
114
92
  - !ruby/object:Gem::Dependency
115
93
  name: temple
116
- requirement: &70335748937360 !ruby/object:Gem::Requirement
94
+ requirement: &70288043609780 !ruby/object:Gem::Requirement
117
95
  none: false
118
96
  requirements:
119
97
  - - ~>
@@ -121,47 +99,54 @@ dependencies:
121
99
  version: 0.4.0
122
100
  type: :runtime
123
101
  prerelease: false
124
- version_requirements: *70335748937360
102
+ version_requirements: *70288043609780
125
103
  - !ruby/object:Gem::Dependency
126
- name: backports
127
- requirement: &70335748936160 !ruby/object:Gem::Requirement
104
+ name: quickl
105
+ requirement: &70288043609320 !ruby/object:Gem::Requirement
128
106
  none: false
129
107
  requirements:
130
108
  - - ~>
131
109
  - !ruby/object:Gem::Version
132
- version: 2.6.1
110
+ version: 0.4.3
133
111
  type: :runtime
134
112
  prerelease: false
135
- version_requirements: *70335748936160
113
+ version_requirements: *70288043609320
136
114
  - !ruby/object:Gem::Dependency
137
- name: quickl
138
- requirement: &70335748934880 !ruby/object:Gem::Requirement
115
+ name: awesome_print
116
+ requirement: &70288043608860 !ruby/object:Gem::Requirement
139
117
  none: false
140
118
  requirements:
141
119
  - - ~>
142
120
  - !ruby/object:Gem::Version
143
- version: 0.4.3
121
+ version: 1.0.2
144
122
  type: :runtime
145
123
  prerelease: false
146
- version_requirements: *70335748934880
124
+ version_requirements: *70288043608860
147
125
  - !ruby/object:Gem::Dependency
148
- name: awesome_print
149
- requirement: &70335748933680 !ruby/object:Gem::Requirement
126
+ name: epath
127
+ requirement: &70288043608400 !ruby/object:Gem::Requirement
150
128
  none: false
151
129
  requirements:
152
- - - ~>
130
+ - - ! '>='
153
131
  - !ruby/object:Gem::Version
154
- version: 1.0.2
132
+ version: '0.2'
155
133
  type: :runtime
156
134
  prerelease: false
157
- version_requirements: *70335748933680
158
- description: ! "WLang is a general-purpose *code generation*/*templating engine*.
159
- It's main aim is to help you generating\nweb pages, sql queries, ruby code (that
160
- is, generating code in general) without having to worry too much \nabout html entities
161
- encoding, sql back quoting, string escaping and the like. WLang proposes a generic
162
- \nengine that you can extend to fit your needs. It also proposes standard instantiations
163
- of this engine \nfor common tasks such as creating SQL queries, instantiating web
164
- pages, and so on."
135
+ version_requirements: *70288043608400
136
+ description: ! 'WLang is a general-purpose *code generation*/*templating engine*.
137
+ It''s main aim is to
138
+
139
+ help you generating web pages, sql queries, ruby code (that is, generating text
140
+ in
141
+
142
+ general) without having to worry too much about html entities encoding, sql back
143
+
144
+ quoting, string escaping and the like. WLang proposes a generic engine that you
145
+ can
146
+
147
+ easily extend to fit your needs. It also proposes standard instantiations of this
148
+
149
+ engine for common tasks such as rendering HTML web pages.'
165
150
  email:
166
151
  - blambeau@gmail.com
167
152
  - llambeau@gmail.com
@@ -191,20 +176,21 @@ files:
191
176
  - lib/wlang/compiler/to_ruby_abstraction.rb
192
177
  - lib/wlang/compiler/to_ruby_code.rb
193
178
  - lib/wlang/compiler.rb
194
- - lib/wlang/dialect/dispatching.rb
195
- - lib/wlang/dialect/evaluation.rb
196
- - lib/wlang/dialect/tags.rb
197
179
  - lib/wlang/dialect.rb
198
180
  - lib/wlang/dummy.rb
199
181
  - lib/wlang/html.rb
200
182
  - lib/wlang/loader.rb
201
- - lib/wlang/mustang.rb
202
183
  - lib/wlang/scope/binding_scope.rb
203
184
  - lib/wlang/scope/object_scope.rb
185
+ - lib/wlang/scope/proc_scope.rb
204
186
  - lib/wlang/scope/proxy_scope.rb
205
187
  - lib/wlang/scope/root_scope.rb
206
188
  - lib/wlang/scope.rb
189
+ - lib/wlang/source/front_matter.rb
190
+ - lib/wlang/source.rb
207
191
  - lib/wlang/template.rb
192
+ - lib/wlang/tilt/wlang_template.rb
193
+ - lib/wlang/tilt.rb
208
194
  - lib/wlang/version.rb
209
195
  - lib/wlang.rb
210
196
  - LICENCE.md
@@ -213,11 +199,15 @@ files:
213
199
  - README.md
214
200
  - spec/fixtures/dialect/foobar.rb
215
201
  - spec/fixtures/dialect/upcasing.rb
216
- - spec/fixtures/templates/hello.tpl
217
- - spec/integration/examples/1-basics.txt
218
- - spec/integration/examples/2-imperative.txt
219
- - spec/integration/examples/3-partials.txt
220
- - spec/integration/examples/4-recursion.txt
202
+ - spec/fixtures/templates/hello.wlang
203
+ - spec/fixtures/templates/hello_with_data.wlang
204
+ - spec/fixtures/templates/hello_with_explicit_locals.wlang
205
+ - spec/fixtures/templates/hello_with_partials.wlang
206
+ - spec/integration/examples/1-html-intro/1-basics.md
207
+ - spec/integration/examples/1-html-intro/2-imperative.md
208
+ - spec/integration/examples/1-html-intro/3-partials.md
209
+ - spec/integration/examples/1-html-intro/4-recursion.md
210
+ - spec/integration/examples/1-html-intro/5-polymorphism.md
221
211
  - spec/integration/html/test_ampersand.rb
222
212
  - spec/integration/html/test_bang.rb
223
213
  - spec/integration/html/test_caret.rb
@@ -231,9 +221,9 @@ files:
231
221
  - spec/integration/html/test_star.rb
232
222
  - spec/integration/test_dummy.rb
233
223
  - spec/integration/test_examples.rb
234
- - spec/integration/test_mustang.rb
235
224
  - spec/integration/test_readme.rb
236
225
  - spec/integration/test_upcasing.rb
226
+ - spec/integration/tilt/test_wlang_template.rb
237
227
  - spec/spec_helper.rb
238
228
  - spec/test_wlang.rb
239
229
  - spec/unit/compiler/autospacing/test_right_strip.rb
@@ -246,19 +236,38 @@ files:
246
236
  - spec/unit/compiler/test_strconcat_flattener.rb
247
237
  - spec/unit/compiler/test_to_ruby_abstraction.rb
248
238
  - spec/unit/compiler/test_to_ruby_code.rb
239
+ - spec/unit/compiler/test_to_ruby_proc.rb
249
240
  - spec/unit/dialect/test_compile.rb
250
- - spec/unit/dialect/test_dispatching.rb
251
241
  - spec/unit/dialect/test_evaluate.rb
242
+ - spec/unit/dialect/test_new.rb
252
243
  - spec/unit/dialect/test_render.rb
253
- - spec/unit/dialect/test_tags.rb
244
+ - spec/unit/dialect/test_tag.rb
245
+ - spec/unit/dialect/test_tag_dispatching_name.rb
254
246
  - spec/unit/dialect/test_with_scope.rb
255
247
  - spec/unit/scope/test_binding_scope.rb
248
+ - spec/unit/scope/test_chain.rb
256
249
  - spec/unit/scope/test_coerce.rb
257
250
  - spec/unit/scope/test_object_scope.rb
251
+ - spec/unit/scope/test_proc_scope.rb
258
252
  - spec/unit/scope/test_proxy_scope.rb
259
253
  - spec/unit/scope/test_root_scope.rb
254
+ - spec/unit/source/front_matter/test_locals.rb
255
+ - spec/unit/source/front_matter/test_template_content.rb
256
+ - spec/unit/source/test_locals.rb
257
+ - spec/unit/source/test_path.rb
258
+ - spec/unit/source/test_template_content.rb
259
+ - spec/unit/source/test_with_front_matter.rb
260
+ - spec/unit/template/test_call.rb
261
+ - spec/unit/template/test_new.rb
262
+ - spec/unit/template/test_path.rb
263
+ - spec/unit/template/test_render.rb
264
+ - spec/unit/template/test_to_ast.rb
265
+ - spec/unit/template/test_to_ruby_code.rb
266
+ - spec/unit/template/test_to_ruby_proc.rb
267
+ - spec/unit/template/test_yaml_front_matter.rb
260
268
  - spec/unit/test_assumptions.rb
261
269
  - spec/unit/test_scope.rb
270
+ - spec/unit/tilt/test_wlang_template.rb
262
271
  - tasks/debug_mail.rake
263
272
  - tasks/debug_mail.txt
264
273
  - tasks/gem.rake
@@ -280,9 +289,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
280
289
  required_rubygems_version: !ruby/object:Gem::Requirement
281
290
  none: false
282
291
  requirements:
283
- - - ! '>'
292
+ - - ! '>='
284
293
  - !ruby/object:Gem::Version
285
- version: 1.3.1
294
+ version: '0'
286
295
  requirements: []
287
296
  rubyforge_project:
288
297
  rubygems_version: 1.8.10
@@ -292,11 +301,15 @@ summary: WLang is a powerful code generation and templating engine
292
301
  test_files:
293
302
  - spec/fixtures/dialect/foobar.rb
294
303
  - spec/fixtures/dialect/upcasing.rb
295
- - spec/fixtures/templates/hello.tpl
296
- - spec/integration/examples/1-basics.txt
297
- - spec/integration/examples/2-imperative.txt
298
- - spec/integration/examples/3-partials.txt
299
- - spec/integration/examples/4-recursion.txt
304
+ - spec/fixtures/templates/hello.wlang
305
+ - spec/fixtures/templates/hello_with_data.wlang
306
+ - spec/fixtures/templates/hello_with_explicit_locals.wlang
307
+ - spec/fixtures/templates/hello_with_partials.wlang
308
+ - spec/integration/examples/1-html-intro/1-basics.md
309
+ - spec/integration/examples/1-html-intro/2-imperative.md
310
+ - spec/integration/examples/1-html-intro/3-partials.md
311
+ - spec/integration/examples/1-html-intro/4-recursion.md
312
+ - spec/integration/examples/1-html-intro/5-polymorphism.md
300
313
  - spec/integration/html/test_ampersand.rb
301
314
  - spec/integration/html/test_bang.rb
302
315
  - spec/integration/html/test_caret.rb
@@ -310,9 +323,9 @@ test_files:
310
323
  - spec/integration/html/test_star.rb
311
324
  - spec/integration/test_dummy.rb
312
325
  - spec/integration/test_examples.rb
313
- - spec/integration/test_mustang.rb
314
326
  - spec/integration/test_readme.rb
315
327
  - spec/integration/test_upcasing.rb
328
+ - spec/integration/tilt/test_wlang_template.rb
316
329
  - spec/spec_helper.rb
317
330
  - spec/test_wlang.rb
318
331
  - spec/unit/compiler/autospacing/test_right_strip.rb
@@ -325,16 +338,35 @@ test_files:
325
338
  - spec/unit/compiler/test_strconcat_flattener.rb
326
339
  - spec/unit/compiler/test_to_ruby_abstraction.rb
327
340
  - spec/unit/compiler/test_to_ruby_code.rb
341
+ - spec/unit/compiler/test_to_ruby_proc.rb
328
342
  - spec/unit/dialect/test_compile.rb
329
- - spec/unit/dialect/test_dispatching.rb
330
343
  - spec/unit/dialect/test_evaluate.rb
344
+ - spec/unit/dialect/test_new.rb
331
345
  - spec/unit/dialect/test_render.rb
332
- - spec/unit/dialect/test_tags.rb
346
+ - spec/unit/dialect/test_tag.rb
347
+ - spec/unit/dialect/test_tag_dispatching_name.rb
333
348
  - spec/unit/dialect/test_with_scope.rb
334
349
  - spec/unit/scope/test_binding_scope.rb
350
+ - spec/unit/scope/test_chain.rb
335
351
  - spec/unit/scope/test_coerce.rb
336
352
  - spec/unit/scope/test_object_scope.rb
353
+ - spec/unit/scope/test_proc_scope.rb
337
354
  - spec/unit/scope/test_proxy_scope.rb
338
355
  - spec/unit/scope/test_root_scope.rb
356
+ - spec/unit/source/front_matter/test_locals.rb
357
+ - spec/unit/source/front_matter/test_template_content.rb
358
+ - spec/unit/source/test_locals.rb
359
+ - spec/unit/source/test_path.rb
360
+ - spec/unit/source/test_template_content.rb
361
+ - spec/unit/source/test_with_front_matter.rb
362
+ - spec/unit/template/test_call.rb
363
+ - spec/unit/template/test_new.rb
364
+ - spec/unit/template/test_path.rb
365
+ - spec/unit/template/test_render.rb
366
+ - spec/unit/template/test_to_ast.rb
367
+ - spec/unit/template/test_to_ruby_code.rb
368
+ - spec/unit/template/test_to_ruby_proc.rb
369
+ - spec/unit/template/test_yaml_front_matter.rb
339
370
  - spec/unit/test_assumptions.rb
340
371
  - spec/unit/test_scope.rb
372
+ - spec/unit/tilt/test_wlang_template.rb
@@ -1,51 +0,0 @@
1
- module WLang
2
- class Dialect
3
- module Dispatching
4
-
5
- module ClassMethods
6
-
7
- def tag_dispatching_name(symbols, prefix = "_tag")
8
- symbols = symbols.chars unless symbols.is_a?(Array)
9
- chars = symbols.map{|s| s.ord}.join("_")
10
- "#{prefix}_#{chars}".to_sym
11
- end
12
-
13
- private
14
-
15
- def define_tag_method(symbols, dialects, code)
16
- rulename = tag_dispatching_name(symbols, "_tag")
17
- case code
18
- when Symbol
19
- module_eval %Q{ alias :#{rulename} #{code} }
20
- when Proc
21
- define_method(rulename, code)
22
- else
23
- raise "Unable to use #{code} for a tag"
24
- end
25
- dialects_info_name = tag_dispatching_name(symbols, "_diatag")
26
- define_method(dialects_info_name) do dialects end
27
- end
28
-
29
- end # module ClassMethods
30
-
31
- module InstanceMethods
32
-
33
- def dialects_for(symbols)
34
- info = Dialect.tag_dispatching_name(symbols, "_diatag")
35
- if respond_to?(info)
36
- send(info)
37
- else
38
- raise ArgumentError, "No tag for #{symbols}"
39
- end
40
- end
41
-
42
- end # module InstanceMethods
43
-
44
- def self.included(mod)
45
- mod.instance_eval{ include(Dispatching::InstanceMethods) }
46
- mod.extend(ClassMethods)
47
- end
48
-
49
- end # module Dispatching
50
- end # class Dialect
51
- end # module WLang