wlang 2.1.2 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +5 -0
- data/Gemfile +0 -2
- data/Gemfile.lock +0 -4
- data/lib/wlang/command.rb +32 -14
- data/lib/wlang/version.rb +2 -2
- data/spec/unit/command/test_install.rb +60 -0
- data/wlang.gemspec +0 -2
- data/wlang.noespec +2 -4
- metadata +6 -36
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -17,8 +17,6 @@ group :development do
|
|
17
17
|
gem "rake", "~> 0.9.2"
|
18
18
|
gem "bundler", "~> 1.0"
|
19
19
|
gem "rspec", "~> 2.10.0"
|
20
|
-
gem "yard", "~> 0.8.1"
|
21
|
-
gem "bluecloth", "~> 2.2.0"
|
22
20
|
gem "sinatra", :git => "git://github.com/sinatra/sinatra" #">= 1.4"
|
23
21
|
gem "rack-test", "~> 0.6.1"
|
24
22
|
end
|
data/Gemfile.lock
CHANGED
@@ -12,7 +12,6 @@ GEM
|
|
12
12
|
specs:
|
13
13
|
awesome_print (1.0.2)
|
14
14
|
backports (2.6.1)
|
15
|
-
bluecloth (2.2.0)
|
16
15
|
citrus (2.4.1)
|
17
16
|
diff-lcs (1.1.3)
|
18
17
|
path (1.3.1)
|
@@ -33,7 +32,6 @@ GEM
|
|
33
32
|
rspec-mocks (2.10.1)
|
34
33
|
temple (0.4.0)
|
35
34
|
tilt (1.3.3)
|
36
|
-
yard (0.8.1)
|
37
35
|
|
38
36
|
PLATFORMS
|
39
37
|
ruby
|
@@ -41,7 +39,6 @@ PLATFORMS
|
|
41
39
|
DEPENDENCIES
|
42
40
|
awesome_print (~> 1.0.2)
|
43
41
|
backports (~> 2.6)
|
44
|
-
bluecloth (~> 2.2.0)
|
45
42
|
bundler (~> 1.0)
|
46
43
|
citrus (~> 2.4.1)
|
47
44
|
path (~> 1.3)
|
@@ -52,4 +49,3 @@ DEPENDENCIES
|
|
52
49
|
sinatra!
|
53
50
|
temple (~> 0.4.0)
|
54
51
|
tilt (~> 1.3)
|
55
|
-
yard (~> 0.8.1)
|
data/lib/wlang/command.rb
CHANGED
@@ -5,32 +5,50 @@ module WLang
|
|
5
5
|
# wlang -- templating engine
|
6
6
|
#
|
7
7
|
# SYNOPSIS
|
8
|
-
# Usage: wlang [options] TEMPLATE
|
8
|
+
# Usage: wlang [options] TEMPLATE [ATTR1 VALUE1 ATTR2 VALUE2]
|
9
9
|
#
|
10
10
|
# OPTIONS:
|
11
11
|
# #{summarized_options}
|
12
12
|
#
|
13
13
|
# DESCRIPTION
|
14
|
-
# This command invokes the wlang templating engine on TEMPLATE
|
15
|
-
#
|
14
|
+
# This command invokes the wlang templating engine on TEMPLATE and flushes the
|
15
|
+
# rendering result on standard output.
|
16
|
+
#
|
17
|
+
# Commandline template data can be passed through ATTR and VALUE arguments.
|
16
18
|
#
|
17
19
|
class Command < Quickl::Command(__FILE__, __LINE__)
|
18
20
|
|
19
|
-
|
21
|
+
attr_reader :output
|
22
|
+
attr_reader :yaml_front_matter
|
23
|
+
attr_reader :ast
|
24
|
+
attr_reader :compiling_options
|
25
|
+
attr_reader :context
|
26
|
+
attr_reader :dialect
|
27
|
+
attr_reader :tpl_file
|
28
|
+
attr_reader :template
|
29
|
+
|
30
|
+
def initialize(*args)
|
31
|
+
require 'wlang/html'
|
32
|
+
super
|
20
33
|
@output = nil
|
34
|
+
@yaml_front_matter = true
|
35
|
+
@ast = false
|
36
|
+
@compiling_options = {}
|
37
|
+
@context = {}
|
38
|
+
@dialect = WLang::Html
|
39
|
+
end
|
40
|
+
|
41
|
+
options do |opt|
|
21
42
|
opt.on('--output=FILE', 'Render output in FILE') do |file|
|
22
43
|
@output = file
|
23
44
|
end
|
24
|
-
@yaml_front_matter = true
|
25
45
|
opt.on("--[no-]yaml-front-matter",
|
26
46
|
"Enable/disable YAML front mater (defaults to true)") do |val|
|
27
47
|
@yaml_front_matter = val
|
28
48
|
end
|
29
|
-
@ast = false
|
30
49
|
opt.on('--ast', "Debugs the AST") do
|
31
50
|
@ast = true
|
32
51
|
end
|
33
|
-
@compiling_options = {}
|
34
52
|
opt.on('--[no-]auto-spacing') do |val|
|
35
53
|
@compiling_options[:autospacing] = val
|
36
54
|
end
|
@@ -63,20 +81,20 @@ module WLang
|
|
63
81
|
private
|
64
82
|
|
65
83
|
def install(argv)
|
66
|
-
raise Quickl::Help unless argv.size == 1
|
84
|
+
raise Quickl::Help unless (argv.size % 2) == 1
|
67
85
|
|
68
86
|
# template file
|
69
|
-
unless
|
87
|
+
unless (@tpl_file = Path(argv.shift)).exist?
|
70
88
|
raise Quickl::Exit, "No such template #{tpl_file}"
|
71
89
|
end
|
72
90
|
|
73
|
-
#
|
74
|
-
|
75
|
-
|
91
|
+
# context
|
92
|
+
argv.each_slice(2) do |(k,v)|
|
93
|
+
@context[k] = v
|
94
|
+
end
|
76
95
|
|
77
96
|
# template and context
|
78
|
-
@template
|
79
|
-
@context = {}
|
97
|
+
@template = Template.new(@tpl_file, @compiling_options)
|
80
98
|
end
|
81
99
|
|
82
100
|
def with_output(&proc)
|
data/lib/wlang/version.rb
CHANGED
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'wlang/command'
|
3
|
+
module WLang
|
4
|
+
describe Command, 'install' do
|
5
|
+
|
6
|
+
class Command
|
7
|
+
public :install
|
8
|
+
end
|
9
|
+
|
10
|
+
let(:cmd){ Command.new }
|
11
|
+
|
12
|
+
subject{
|
13
|
+
cmd.install(argv)
|
14
|
+
}
|
15
|
+
|
16
|
+
context 'with empty ARGV' do
|
17
|
+
let(:argv){ [] }
|
18
|
+
|
19
|
+
it 'raises an error' do
|
20
|
+
lambda{
|
21
|
+
subject
|
22
|
+
}.should raise_error
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'with a single unexisting file' do
|
27
|
+
let(:argv){ [ "foo" ] }
|
28
|
+
|
29
|
+
it 'raises an error' do
|
30
|
+
lambda{
|
31
|
+
subject
|
32
|
+
}.should raise_error
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'with a single existing file' do
|
37
|
+
let(:argv){ [ __FILE__ ] }
|
38
|
+
|
39
|
+
it 'sets the file correctly' do
|
40
|
+
subject
|
41
|
+
cmd.tpl_file.should eq(Path(__FILE__))
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'with an existing file and key/value pairs' do
|
46
|
+
let(:argv){ [ __FILE__, "foo", "bar", "name", "wlang" ] }
|
47
|
+
|
48
|
+
it 'sets the file correctly' do
|
49
|
+
subject
|
50
|
+
cmd.tpl_file.should eq(Path(__FILE__))
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'sets the context correctly' do
|
54
|
+
subject
|
55
|
+
cmd.context.should eq("foo" => "bar", "name" => "wlang")
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
data/wlang.gemspec
CHANGED
@@ -128,8 +128,6 @@ Gem::Specification.new do |s|
|
|
128
128
|
s.add_development_dependency("rake", "~> 0.9.2")
|
129
129
|
s.add_development_dependency("bundler", "~> 1.0")
|
130
130
|
s.add_development_dependency("rspec", "~> 2.10.0")
|
131
|
-
s.add_development_dependency("yard", "~> 0.8.1")
|
132
|
-
s.add_development_dependency("bluecloth", "~> 2.2.0")
|
133
131
|
s.add_development_dependency("sinatra", ">= 1.4")
|
134
132
|
s.add_development_dependency("rack-test", "~> 0.6.1")
|
135
133
|
s.add_dependency("citrus", "~> 2.4.1")
|
data/wlang.noespec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
template-info:
|
2
2
|
name: "rubygem.noe"
|
3
|
-
version:
|
3
|
+
version: 2.0.0
|
4
4
|
links:
|
5
5
|
source: https://github.com/blambeau/noe
|
6
6
|
manifest:
|
@@ -12,7 +12,7 @@ variables:
|
|
12
12
|
upper:
|
13
13
|
WLang
|
14
14
|
version:
|
15
|
-
2.
|
15
|
+
2.2.0
|
16
16
|
summary: |-
|
17
17
|
WLang is a powerful code generation and templating engine
|
18
18
|
description: |-
|
@@ -41,7 +41,5 @@ variables:
|
|
41
41
|
- {name: rake, version: "~> 0.9.2", groups: [development]}
|
42
42
|
- {name: bundler, version: "~> 1.0", groups: [development]}
|
43
43
|
- {name: rspec, version: "~> 2.10.0", groups: [development]}
|
44
|
-
- {name: yard, version: "~> 0.8.1", groups: [development]}
|
45
|
-
- {name: bluecloth, version: "~> 2.2.0", groups: [development]}
|
46
44
|
- {name: sinatra, version: ">= 1.4", groups: [development]}
|
47
45
|
- {name: rack-test, version: "~> 0.6.1", groups: [development]}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wlang
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-03-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: awesome_print
|
@@ -92,38 +92,6 @@ dependencies:
|
|
92
92
|
- - ~>
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: 2.10.0
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: yard
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
|
-
requirements:
|
100
|
-
- - ~>
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: 0.8.1
|
103
|
-
type: :development
|
104
|
-
prerelease: false
|
105
|
-
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
|
-
requirements:
|
108
|
-
- - ~>
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 0.8.1
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: bluecloth
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
|
-
requirements:
|
116
|
-
- - ~>
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: 2.2.0
|
119
|
-
type: :development
|
120
|
-
prerelease: false
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
|
-
requirements:
|
124
|
-
- - ~>
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version: 2.2.0
|
127
95
|
- !ruby/object:Gem::Dependency
|
128
96
|
name: sinatra
|
129
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -332,6 +300,7 @@ files:
|
|
332
300
|
- spec/integration/tilt/test_wlang_template.rb
|
333
301
|
- spec/spec_helper.rb
|
334
302
|
- spec/test_wlang.rb
|
303
|
+
- spec/unit/command/test_install.rb
|
335
304
|
- spec/unit/compiler/autospacing/test_right_strip.rb
|
336
305
|
- spec/unit/compiler/autospacing/test_unindent.rb
|
337
306
|
- spec/unit/compiler/test_dialect_enforcer.rb
|
@@ -397,7 +366,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
397
366
|
version: '0'
|
398
367
|
segments:
|
399
368
|
- 0
|
400
|
-
hash:
|
369
|
+
hash: 1035684278937019643
|
401
370
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
402
371
|
none: false
|
403
372
|
requirements:
|
@@ -406,7 +375,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
406
375
|
version: '0'
|
407
376
|
segments:
|
408
377
|
- 0
|
409
|
-
hash:
|
378
|
+
hash: 1035684278937019643
|
410
379
|
requirements: []
|
411
380
|
rubyforge_project:
|
412
381
|
rubygems_version: 1.8.24
|
@@ -446,6 +415,7 @@ test_files:
|
|
446
415
|
- spec/integration/tilt/test_wlang_template.rb
|
447
416
|
- spec/spec_helper.rb
|
448
417
|
- spec/test_wlang.rb
|
418
|
+
- spec/unit/command/test_install.rb
|
449
419
|
- spec/unit/compiler/autospacing/test_right_strip.rb
|
450
420
|
- spec/unit/compiler/autospacing/test_unindent.rb
|
451
421
|
- spec/unit/compiler/test_dialect_enforcer.rb
|