wlang 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c13dc41782e57a6c997a991bfd683be1e9ede7887694126d724a7436203bf4f6
4
- data.tar.gz: 9043c388c6a3326e0b2fdd28fe2b2eef7ac88933b18c6d6434d5c38c5fee2ccc
3
+ metadata.gz: e82a5d9c33a44f4d44068433fc341ac105eb6b0abb5859315264fc9c9039af3b
4
+ data.tar.gz: a3ed2db115e809a220e1e0046e8b60178e7c093e03c3ba0eb558ef3e24c6c356
5
5
  SHA512:
6
- metadata.gz: 283d2695c3c096d80806894e376bbc18c6e170a057092ef149a625857c910ae00c9f8f3e00e8f31c655788a6ea148b3c98718bc3bad32a8caeff283609e47ced
7
- data.tar.gz: 9e0427a186128ef78959ca01906baffe296b0730f7cb6f052883f0d3a12b0c5faf7ebc49cc917c8ec399adee03e30030d2e012fbcfa1f09db561f51cd6bff45b
6
+ metadata.gz: ccc8a54926e97ef4a4b4f8b49669f2ea3b1e2e4421900ebf4f4a05d1094b5121145f607b98d4e56ced1224e1c53f728df0028631058301bad315baab080ebce1
7
+ data.tar.gz: 95b57dc614446eddc46eb3eafec0a3b9470a3b440afdfd8ebf2c7c555aea3ae35ab34cdf6d4081e58b889a5c6057efc4d8767f694fd978a3b57fdd300559ceb0
@@ -1,3 +1,7 @@
1
+ # 3.0.1 / 2020-01-07
2
+
3
+ * Resurect Tilt/Sinatra support
4
+
1
5
  # 3.0.0 / 2020-12-29
2
6
 
3
7
  * Clean project to use a standard ruby-2.7 stack
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wlang (3.0.0)
4
+ wlang (3.0.1)
5
5
  citrus (~> 3.0)
6
6
  path (~> 2.0)
7
7
  quickl (~> 0.4.3)
@@ -12,8 +12,13 @@ GEM
12
12
  specs:
13
13
  citrus (3.0.2)
14
14
  diff-lcs (1.4.4)
15
+ mustermann (1.1.1)
16
+ ruby2_keywords (~> 0.0.1)
15
17
  path (2.0.1)
16
18
  quickl (0.4.3)
19
+ rack (2.2.3)
20
+ rack-protection (2.1.0)
21
+ rack
17
22
  rake (13.0.3)
18
23
  rspec (3.10.0)
19
24
  rspec-core (~> 3.10.0)
@@ -28,15 +33,24 @@ GEM
28
33
  diff-lcs (>= 1.2.0, < 2.0)
29
34
  rspec-support (~> 3.10.0)
30
35
  rspec-support (3.10.1)
36
+ ruby2_keywords (0.0.2)
37
+ sinatra (2.1.0)
38
+ mustermann (~> 1.0)
39
+ rack (~> 2.2)
40
+ rack-protection (= 2.1.0)
41
+ tilt (~> 2.0)
31
42
  temple (0.8.2)
43
+ tilt (2.0.10)
32
44
 
33
45
  PLATFORMS
34
- x86_64-darwin-18
46
+ x86_64-darwin-15
35
47
 
36
48
  DEPENDENCIES
37
49
  rake (~> 13.0)
38
50
  rspec (~> 3.0)
51
+ sinatra (~> 2.1)
52
+ tilt (~> 2.0, >= 2.0.10)
39
53
  wlang!
40
54
 
41
55
  BUNDLED WITH
42
- 2.2.2
56
+ 2.2.1
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # WLang
2
2
 
3
+ ![](https://travis-ci.org/blambeau/wlang.svg?branch=master)
4
+
3
5
  WLang is a powerful code generation and templating engine, implemented on top o
4
6
  [temple](https://github.com/judofyr/temple) and much inspired by the excellent
5
7
  [mustache](http://mustache.github.com/).
@@ -64,3 +66,57 @@ WLang already provides a few useful dialects, such as WLang::Html
64
66
  match your needs, it is up to you to define you own dialect for making your
65
67
  generation task easy. Have a look at the implementation of WLang's ones, it's
66
68
  pretty simple to get started!
69
+
70
+ # Tilt integration
71
+
72
+ WLang has built-in support for [Tilt](https://github.com/rtomayko/tilt) facade to templating engines. In order to use that API:
73
+
74
+ ```ruby
75
+ require 'tilt' # needed in your bundle, not a wlang dependency
76
+ require 'wlang' # loads Tilt support provided Tilt has already been required
77
+
78
+ template = Tilt.new("path/to/a/template.wlang") # suppose 'Hello ${who}!'
79
+ template.render(:who => "world")
80
+ # => Hello world!
81
+
82
+ template = Tilt.new("path/to/a/template.wlang", :dialect => Highlighter)
83
+ template.render(:who => "world")
84
+ # => Hello WORLD!
85
+ ```
86
+
87
+ Please note that you should require tilt first, then wlang. Otherwise, you'll have to require `wlang/tilt` explicitely.
88
+
89
+ # Sinatra integration
90
+
91
+ WLang comes bundled with built-in support for [Sinatra](https://github.com/sinatra/sinatra) >= 1.4 (release still in progress). As usual in Sinatra, you can simply invoke wlang as follows:
92
+
93
+ ```ruby
94
+ get '/' do
95
+ wlang :index, :locals => { ... }
96
+ end
97
+ ```
98
+
99
+ As wlang encourages logic-less templates, you should always use locals. However, there is specific support for layouts and partials, as the following example demonstrates:
100
+
101
+ ```ruby
102
+ get '/' do
103
+ wlang :index, :locals => {:who => "world"}
104
+ end
105
+
106
+ __END__
107
+
108
+ @@layout
109
+ <html>
110
+ >{yield}
111
+ </html>
112
+
113
+ @@index
114
+ Hello from a partial: >{partial}
115
+
116
+ @@partial
117
+ yeah, a partial saying hello to '${who}'!
118
+
119
+ Returned body will be (ignoring carriage returns):
120
+
121
+ <html>Hello from a partial: yeah, a partial saying hello to 'world'!</html>
122
+ ```
@@ -27,6 +27,14 @@ module WLang
27
27
  end
28
28
  module_function :dialect
29
29
 
30
+ SinatraApp = proc{|arg|
31
+ defined?(Sinatra::Base) && Sinatra::Base===arg
32
+ }
33
+
34
+ TiltTemplate = proc{|arg|
35
+ defined?(Tilt::Template) && Tilt::Template===arg
36
+ }
37
+
30
38
  end # module WLang
31
39
  require 'wlang/compiler'
32
40
  require 'wlang/source'
@@ -34,3 +42,4 @@ require 'wlang/template'
34
42
  require 'wlang/dialect'
35
43
  require 'wlang/scope'
36
44
  require 'wlang/html'
45
+ require 'wlang/tilt' if defined?(::Tilt)
@@ -17,6 +17,7 @@ module WLang
17
17
  case arg
18
18
  when Hash then ObjectScope.new(arg)
19
19
  when Scope then arg
20
+ when SinatraApp then SinatraScope.new(arg)
20
21
  when Binding then BindingScope.new(arg)
21
22
  when Proc then ProcScope.new(arg)
22
23
  else
@@ -102,3 +103,4 @@ require 'wlang/scope/null_scope'
102
103
  require 'wlang/scope/object_scope'
103
104
  require 'wlang/scope/binding_scope'
104
105
  require 'wlang/scope/proc_scope'
106
+ require 'wlang/scope/sinatra_scope'
@@ -0,0 +1,49 @@
1
+ module WLang
2
+ class Scope
3
+ class SinatraScope < ObjectScope
4
+
5
+ def fetch(key, dialect = nil, unfound = nil)
6
+ find_partial(key, subject) || super
7
+ end
8
+
9
+ def inspect
10
+ "SinatraScope"
11
+ end
12
+ alias :to_s :inspect
13
+
14
+ private
15
+
16
+ def find_partial(key, app)
17
+ find_internal_partial(key, app) || find_external_partial(key, app)
18
+ end
19
+
20
+ def find_internal_partial(key, app)
21
+ return unless app.settings.templates[key]
22
+ app.send(:compile_template, :wlang, key, {}, app.settings.views)
23
+ end
24
+
25
+ def find_external_partial(key, app)
26
+ views = app.settings.views
27
+ find_files(views, key) do |file|
28
+ if engine = Tilt[file]
29
+ tpl = app.template_cache.fetch(file) do
30
+ options = if app.settings.respond_to?(:wlang)
31
+ app.settings.wlang
32
+ else
33
+ {}
34
+ end
35
+ engine.new(file.to_s, 1, options)
36
+ end
37
+ return tpl
38
+ end
39
+ end
40
+ nil
41
+ end
42
+
43
+ def find_files(folder, name, &bl)
44
+ Path(folder).glob("#{name}.*").each(&bl)
45
+ end
46
+
47
+ end # class SinatraScope
48
+ end # class Scope
49
+ end # module WLang
@@ -0,0 +1,3 @@
1
+ require 'wlang' unless defined?(WLang)
2
+ require 'tilt' unless defined?(Tilt)
3
+ require 'wlang/tilt/wlang_template'
@@ -0,0 +1,44 @@
1
+ module Tilt
2
+ class WLangTemplate < ::Tilt::Template
3
+
4
+ class << self
5
+
6
+ def engine_initialized?
7
+ defined? ::WLang
8
+ end
9
+
10
+ def with_options(options)
11
+ Class.new(WLangTemplate).tap{|c| c.default_options = options }
12
+ end
13
+
14
+ def default_options=(options)
15
+ @default_options = options
16
+ end
17
+
18
+ def default_options
19
+ @default_options ||= {}
20
+ (superclass.default_options rescue {}).merge(@default_options)
21
+ end
22
+
23
+ end
24
+
25
+ def initialize_engine
26
+ require_template_library('wlang')
27
+ end
28
+
29
+ protected
30
+
31
+ def prepare
32
+ opts = self.class.default_options.merge(self.options)
33
+ opts.merge!(:path => file) if file
34
+ @engine = WLang::Template.new(data, opts)
35
+ end
36
+
37
+ def evaluate(scope, locals, &block)
38
+ locals[:yield] = block if block
39
+ @engine.render(scope, locals.empty? ? nil : locals)
40
+ end
41
+
42
+ end
43
+ register WLangTemplate, 'wlang'
44
+ end
@@ -3,7 +3,7 @@ module WLang
3
3
 
4
4
  MAJOR = 3
5
5
  MINOR = 0
6
- TINY = 0
6
+ TINY = 1
7
7
 
8
8
  def self.to_s
9
9
  [ MAJOR, MINOR, TINY ].join('.')
@@ -0,0 +1,13 @@
1
+ require 'tilt'
2
+ require 'wlang/tilt'
3
+ describe 'WLang integration with tilt' do
4
+
5
+ it 'allows invoking tilt directly' do
6
+ Tilt.new(hello_path.to_s).render(:who => "world").should eq("Hello world!")
7
+ end
8
+
9
+ it 'allows specifying the dialect' do
10
+ Tilt.new(hello_path.to_s, :dialect => Upcasing).render.should eq("Hello WHO!")
11
+ end
12
+
13
+ end
@@ -1,6 +1,9 @@
1
1
  require 'path'
2
2
  $root_folder ||= Path.backfind('.[Rakefile]')
3
3
 
4
+ require 'tilt'
5
+ require 'sinatra/base'
6
+
4
7
  # Require wlang
5
8
  $LOAD_PATH.unshift(($root_folder/:lib).to_s)
6
9
  require 'wlang'
@@ -53,6 +56,10 @@ module Helpers
53
56
  end
54
57
  end
55
58
 
59
+ def sinatra_app(&block)
60
+ Sinatra.new(Sinatra::Base, &block).new!
61
+ end
62
+
56
63
  end
57
64
  include Helpers
58
65
 
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ module WLang
3
+ class Scope
4
+ describe SinatraScope, 'fetch' do
5
+
6
+ let(:app){
7
+ sinatra_app do
8
+ set :accessible, "world"
9
+ set :views, fixtures_folder/'templates'
10
+ helpers do
11
+ def accessible; settings.accessible; end
12
+ end
13
+ end
14
+ }
15
+
16
+ let(:scope){ Scope::SinatraScope.new(app) }
17
+
18
+ it 'delegates to helpers correctly' do
19
+ scope.fetch(:accessible).should eq("world")
20
+ end
21
+
22
+ it 'returns Tilt templates on existing views' do
23
+ scope.fetch('hello', app).should be_a(Tilt::Template)
24
+ end
25
+
26
+ end
27
+ end
28
+ end
@@ -10,6 +10,10 @@ module WLang
10
10
  Scope.coerce(lambda{}).should be_a(Scope::ProcScope)
11
11
  end
12
12
 
13
+ it 'recognizes Sinatra applications' do
14
+ Scope.coerce(sinatra_app).should be_a(Scope::SinatraScope)
15
+ end
16
+
13
17
  it 'falls back to ObjectScope on Hash' do
14
18
  Scope.coerce({}).should be_a(Scope::ObjectScope)
15
19
  end
@@ -0,0 +1,61 @@
1
+ require 'tilt'
2
+ require 'wlang/tilt'
3
+ describe Tilt::WLangTemplate do
4
+
5
+ it 'supports basic rendering with no scope no locals' do
6
+ template = Tilt::WLangTemplate.new{ "Hello" }
7
+ template.render.should eq("Hello")
8
+ end
9
+
10
+ it 'supports a binding scope' do
11
+ template = Tilt::WLangTemplate.new{ "Hello ${who}" }
12
+ who = "world"
13
+ template.render(binding).should eq("Hello world")
14
+ end
15
+
16
+ it 'supports a Hash scope' do
17
+ template = Tilt::WLangTemplate.new{ "Hello ${who}" }
18
+ scope = {:who => "world"}
19
+ template.render(scope).should eq("Hello world")
20
+ end
21
+
22
+ it 'supports both a scope and locals' do
23
+ template = Tilt::WLangTemplate.new{ "Hello ${who} and ${who_else}" }
24
+ who = "world"
25
+ template.render(binding, :who_else => 'wlang').should eq("Hello world and wlang")
26
+ end
27
+
28
+ it 'supports being rendered multiple times' do
29
+ template = Tilt::WLangTemplate.new{ "Hello ${i}" }
30
+ 3.times{|i| template.render(binding).should eq("Hello #{i}") }
31
+ end
32
+
33
+ it 'supports passing a block for yielding' do
34
+ template = Tilt::WLangTemplate.new{ "Hello ${yield}" }
35
+ template.render{ "world" }.should eq('Hello world')
36
+ end
37
+
38
+ it 'supports expressions on yield' do
39
+ template = Tilt::WLangTemplate.new{ "Hello ${yield.upcase}" }
40
+ template.render{ "world" }.should eq('Hello WORLD')
41
+ end
42
+
43
+ it 'passes :path option to the underlying template' do
44
+ tpl = Tilt::WLangTemplate.new(hello_path.to_s)
45
+ tpl = tpl.send(:prepare)
46
+ tpl.should be_a(WLang::Template)
47
+ tpl.path.should eq(hello_path.to_s)
48
+ end
49
+
50
+ it 'supports passing a dialect as options' do
51
+ template = Tilt::WLangTemplate.new(:dialect => Upcasing){ "Hello ${who}" }
52
+ template.render.should eq("Hello WHO")
53
+ end
54
+
55
+ it 'supports options through inheritance' do
56
+ tpl_class = Tilt::WLangTemplate.with_options(:dialect => Upcasing)
57
+ template = tpl_class.new{ "Hello ${who}" }
58
+ template.render.should eq("Hello WHO")
59
+ end
60
+
61
+ end
@@ -21,6 +21,8 @@ Gem::Specification.new do |s|
21
21
 
22
22
  s.add_development_dependency("rake", "~> 13.0")
23
23
  s.add_development_dependency("rspec", "~> 3.0")
24
+ s.add_development_dependency("sinatra", "~> 2.1")
25
+ s.add_development_dependency("tilt", "~> 2.0", ">= 2.0.10")
24
26
 
25
27
  s.add_dependency("citrus", "~> 3.0")
26
28
  s.add_dependency("quickl", "~> 0.4.3")
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wlang
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bernard Lambeau
8
8
  - Louis Lambeau
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-12-29 00:00:00.000000000 Z
12
+ date: 2021-01-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -39,6 +39,40 @@ dependencies:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '3.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: sinatra
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '2.1'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '2.1'
56
+ - !ruby/object:Gem::Dependency
57
+ name: tilt
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '2.0'
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 2.0.10
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '2.0'
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 2.0.10
42
76
  - !ruby/object:Gem::Dependency
43
77
  name: citrus
44
78
  requirement: !ruby/object:Gem::Requirement
@@ -143,9 +177,12 @@ files:
143
177
  - lib/wlang/scope/null_scope.rb
144
178
  - lib/wlang/scope/object_scope.rb
145
179
  - lib/wlang/scope/proc_scope.rb
180
+ - lib/wlang/scope/sinatra_scope.rb
146
181
  - lib/wlang/source.rb
147
182
  - lib/wlang/source/front_matter.rb
148
183
  - lib/wlang/template.rb
184
+ - lib/wlang/tilt.rb
185
+ - lib/wlang/tilt/wlang_template.rb
149
186
  - lib/wlang/version.rb
150
187
  - spec/assumptions/test_core.rb
151
188
  - spec/fixtures/dialect/foobar.rb
@@ -176,6 +213,7 @@ files:
176
213
  - spec/integration/test_examples.rb
177
214
  - spec/integration/test_readme.rb
178
215
  - spec/integration/test_upcasing.rb
216
+ - spec/integration/tilt/test_wlang_template.rb
179
217
  - spec/spec_helper.rb
180
218
  - spec/test_wlang.rb
181
219
  - spec/unit/command/test_install.rb
@@ -198,6 +236,7 @@ files:
198
236
  - spec/unit/dialect/test_tag.rb
199
237
  - spec/unit/dialect/test_tag_dispatching_name.rb
200
238
  - spec/unit/dialect/test_with_scope.rb
239
+ - spec/unit/scope/sinatra_scope/test_fetch.rb
201
240
  - spec/unit/scope/test_binding_scope.rb
202
241
  - spec/unit/scope/test_chain.rb
203
242
  - spec/unit/scope/test_coerce.rb
@@ -222,13 +261,14 @@ files:
222
261
  - spec/unit/template/test_yaml_front_matter.rb
223
262
  - spec/unit/test_assumptions.rb
224
263
  - spec/unit/test_scope.rb
264
+ - spec/unit/tilt/test_wlang_template.rb
225
265
  - tasks/gem.rake
226
266
  - tasks/test.rake
227
267
  - wlang.gemspec
228
268
  homepage: http://github.com/blambeau/wlang
229
269
  licenses: []
230
270
  metadata: {}
231
- post_install_message:
271
+ post_install_message:
232
272
  rdoc_options: []
233
273
  require_paths:
234
274
  - lib
@@ -243,83 +283,86 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
283
  - !ruby/object:Gem::Version
244
284
  version: '0'
245
285
  requirements: []
246
- rubygems_version: 3.1.4
247
- signing_key:
286
+ rubygems_version: 3.2.1
287
+ signing_key:
248
288
  specification_version: 4
249
289
  summary: WLang is a powerful code generation and templating engine
250
290
  test_files:
291
+ - spec/assumptions/test_core.rb
292
+ - spec/fixtures/dialect/foobar.rb
293
+ - spec/fixtures/dialect/upcasing.rb
294
+ - spec/fixtures/templates/front_matter.wlang
295
+ - spec/fixtures/templates/hello.wlang
296
+ - spec/fixtures/templates/hello_from_sinatra.wlang
297
+ - spec/fixtures/templates/hello_with_data.wlang
298
+ - spec/fixtures/templates/hello_with_explicit_locals.wlang
299
+ - spec/fixtures/templates/hello_with_partials.wlang
300
+ - spec/integration/examples/1-html-intro/1-basics.md
301
+ - spec/integration/examples/1-html-intro/2-imperative.md
302
+ - spec/integration/examples/1-html-intro/3-partials.md
303
+ - spec/integration/examples/1-html-intro/4-recursion.md
304
+ - spec/integration/examples/1-html-intro/5-polymorphism.md
305
+ - spec/integration/html/test_ampersand.rb
306
+ - spec/integration/html/test_bang.rb
307
+ - spec/integration/html/test_caret.rb
308
+ - spec/integration/html/test_dollar.rb
309
+ - spec/integration/html/test_greater.rb
310
+ - spec/integration/html/test_modulo.rb
311
+ - spec/integration/html/test_plus.rb
312
+ - spec/integration/html/test_question.rb
313
+ - spec/integration/html/test_sharp.rb
314
+ - spec/integration/html/test_slash.rb
315
+ - spec/integration/html/test_star.rb
316
+ - spec/integration/test_dummy.rb
317
+ - spec/integration/test_examples.rb
318
+ - spec/integration/test_readme.rb
319
+ - spec/integration/test_upcasing.rb
320
+ - spec/integration/tilt/test_wlang_template.rb
251
321
  - spec/spec_helper.rb
252
- - spec/unit/source/front_matter/test_template_content.rb
322
+ - spec/test_wlang.rb
323
+ - spec/unit/command/test_install.rb
324
+ - spec/unit/compiler/autospacing/test_right_strip.rb
325
+ - spec/unit/compiler/autospacing/test_unindent.rb
326
+ - spec/unit/compiler/test_dialect_enforcer.rb
327
+ - spec/unit/compiler/test_grammar.rb
328
+ - spec/unit/compiler/test_parser.rb
329
+ - spec/unit/compiler/test_proc_call_removal.rb
330
+ - spec/unit/compiler/test_static_merger.rb
331
+ - spec/unit/compiler/test_strconcat_flattener.rb
332
+ - spec/unit/compiler/test_to_ruby_abstraction.rb
333
+ - spec/unit/compiler/test_to_ruby_code.rb
334
+ - spec/unit/compiler/test_to_ruby_proc.rb
335
+ - spec/unit/dialect/test_compile.rb
336
+ - spec/unit/dialect/test_context.rb
337
+ - spec/unit/dialect/test_evaluate.rb
338
+ - spec/unit/dialect/test_new.rb
339
+ - spec/unit/dialect/test_render.rb
340
+ - spec/unit/dialect/test_tag.rb
341
+ - spec/unit/dialect/test_tag_dispatching_name.rb
342
+ - spec/unit/dialect/test_with_scope.rb
343
+ - spec/unit/scope/sinatra_scope/test_fetch.rb
344
+ - spec/unit/scope/test_binding_scope.rb
345
+ - spec/unit/scope/test_chain.rb
346
+ - spec/unit/scope/test_coerce.rb
347
+ - spec/unit/scope/test_null_scope.rb
348
+ - spec/unit/scope/test_object_scope.rb
349
+ - spec/unit/scope/test_proc_scope.rb
350
+ - spec/unit/scope/test_push.rb
253
351
  - spec/unit/source/front_matter/test_locals.rb
254
- - spec/unit/source/test_template_content.rb
352
+ - spec/unit/source/front_matter/test_template_content.rb
353
+ - spec/unit/source/test_locals.rb
255
354
  - spec/unit/source/test_path.rb
355
+ - spec/unit/source/test_template_content.rb
256
356
  - spec/unit/source/test_with_front_matter.rb
257
- - spec/unit/source/test_locals.rb
258
- - spec/unit/test_assumptions.rb
259
357
  - spec/unit/template/test_call.rb
260
- - spec/unit/template/test_to_ast.rb
261
- - spec/unit/template/test_to_ruby_code.rb
358
+ - spec/unit/template/test_call_args_conventions.rb
262
359
  - spec/unit/template/test_new.rb
263
360
  - spec/unit/template/test_path.rb
264
- - spec/unit/template/test_to_ruby_proc.rb
265
361
  - spec/unit/template/test_render.rb
362
+ - spec/unit/template/test_to_ast.rb
363
+ - spec/unit/template/test_to_ruby_code.rb
364
+ - spec/unit/template/test_to_ruby_proc.rb
266
365
  - spec/unit/template/test_yaml_front_matter.rb
267
- - spec/unit/template/test_call_args_conventions.rb
268
- - spec/unit/scope/test_chain.rb
269
- - spec/unit/scope/test_push.rb
270
- - spec/unit/scope/test_object_scope.rb
271
- - spec/unit/scope/test_binding_scope.rb
272
- - spec/unit/scope/test_proc_scope.rb
273
- - spec/unit/scope/test_null_scope.rb
274
- - spec/unit/scope/test_coerce.rb
366
+ - spec/unit/test_assumptions.rb
275
367
  - spec/unit/test_scope.rb
276
- - spec/unit/command/test_install.rb
277
- - spec/unit/dialect/test_new.rb
278
- - spec/unit/dialect/test_render.rb
279
- - spec/unit/dialect/test_context.rb
280
- - spec/unit/dialect/test_tag.rb
281
- - spec/unit/dialect/test_evaluate.rb
282
- - spec/unit/dialect/test_compile.rb
283
- - spec/unit/dialect/test_with_scope.rb
284
- - spec/unit/dialect/test_tag_dispatching_name.rb
285
- - spec/unit/compiler/test_to_ruby_code.rb
286
- - spec/unit/compiler/test_proc_call_removal.rb
287
- - spec/unit/compiler/test_to_ruby_proc.rb
288
- - spec/unit/compiler/test_strconcat_flattener.rb
289
- - spec/unit/compiler/test_dialect_enforcer.rb
290
- - spec/unit/compiler/test_to_ruby_abstraction.rb
291
- - spec/unit/compiler/test_grammar.rb
292
- - spec/unit/compiler/test_parser.rb
293
- - spec/unit/compiler/autospacing/test_right_strip.rb
294
- - spec/unit/compiler/autospacing/test_unindent.rb
295
- - spec/unit/compiler/test_static_merger.rb
296
- - spec/integration/test_examples.rb
297
- - spec/integration/test_readme.rb
298
- - spec/integration/html/test_greater.rb
299
- - spec/integration/html/test_ampersand.rb
300
- - spec/integration/html/test_bang.rb
301
- - spec/integration/html/test_slash.rb
302
- - spec/integration/html/test_sharp.rb
303
- - spec/integration/html/test_star.rb
304
- - spec/integration/html/test_caret.rb
305
- - spec/integration/html/test_question.rb
306
- - spec/integration/html/test_modulo.rb
307
- - spec/integration/html/test_dollar.rb
308
- - spec/integration/html/test_plus.rb
309
- - spec/integration/test_dummy.rb
310
- - spec/integration/test_upcasing.rb
311
- - spec/integration/examples/1-html-intro/5-polymorphism.md
312
- - spec/integration/examples/1-html-intro/2-imperative.md
313
- - spec/integration/examples/1-html-intro/1-basics.md
314
- - spec/integration/examples/1-html-intro/3-partials.md
315
- - spec/integration/examples/1-html-intro/4-recursion.md
316
- - spec/assumptions/test_core.rb
317
- - spec/test_wlang.rb
318
- - spec/fixtures/templates/hello_with_explicit_locals.wlang
319
- - spec/fixtures/templates/hello_from_sinatra.wlang
320
- - spec/fixtures/templates/front_matter.wlang
321
- - spec/fixtures/templates/hello.wlang
322
- - spec/fixtures/templates/hello_with_partials.wlang
323
- - spec/fixtures/templates/hello_with_data.wlang
324
- - spec/fixtures/dialect/foobar.rb
325
- - spec/fixtures/dialect/upcasing.rb
368
+ - spec/unit/tilt/test_wlang_template.rb