templater 0.1.4 → 0.1.5
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.
- data/lib/templater.rb +1 -1
- data/lib/templater/cli/generator.rb +3 -4
- data/lib/templater/cli/manifold.rb +2 -2
- data/lib/templater/generator.rb +10 -2
- data/spec/generator/glob_spec.rb +14 -1
- data/spec/generator/invoke_spec.rb +2 -2
- data/spec/generator/render_spec.rb +21 -0
- data/spec/templates/glob/hellothar.%feh% +1 -0
- data/spec/templates/glob/hellothar.html.%feh% +1 -0
- metadata +5 -2
data/lib/templater.rb
CHANGED
@@ -4,10 +4,9 @@ module Templater
|
|
4
4
|
|
5
5
|
class Generator
|
6
6
|
|
7
|
-
def initialize(generator_name,
|
8
|
-
@destination_root, @
|
9
|
-
@
|
10
|
-
@generator_class = @manifold.generator(@generator_name)
|
7
|
+
def initialize(generator_name, generator_class, destination_root, name, version)
|
8
|
+
@destination_root, @generator_name, @generator_class = destination_root, generator_name, generator_class
|
9
|
+
@name, @version = name, version
|
11
10
|
end
|
12
11
|
|
13
12
|
def version
|
@@ -17,8 +17,8 @@ module Templater
|
|
17
17
|
|
18
18
|
if arguments.first and not arguments.first =~ /^-/ and not arguments.first == "help"
|
19
19
|
generator_name = arguments.shift
|
20
|
-
if manifold.generator(generator_name)
|
21
|
-
Generator.new(generator_name,
|
20
|
+
if generator_class = manifold.generator(generator_name)
|
21
|
+
Generator.new(generator_name, generator_class, destination_root, name, version).run(arguments)
|
22
22
|
else
|
23
23
|
Manifold.new(destination_root, manifold, name, version).run(arguments)
|
24
24
|
end
|
data/lib/templater/generator.rb
CHANGED
@@ -332,7 +332,7 @@ module Templater
|
|
332
332
|
unless ::File.directory?(action)
|
333
333
|
action = action.sub("#{source_root}/", '')
|
334
334
|
|
335
|
-
if template_extensions.include?(::File.extname(action)[1..-1]) or template_extensions.include?(::File.basename(action))
|
335
|
+
if template_extensions.include?(::File.extname(action.sub(/\.%.+%$/,''))[1..-1]) or template_extensions.include?(::File.basename(action))
|
336
336
|
template(action.downcase.gsub(/[^a-z0-9]+/, '_').to_sym, action, action)
|
337
337
|
else
|
338
338
|
file(action.downcase.gsub(/[^a-z0-9]+/, '_').to_sym, action, action)
|
@@ -499,7 +499,15 @@ module Templater
|
|
499
499
|
|
500
500
|
# Invokes the templates for this generator
|
501
501
|
def invoke!
|
502
|
-
|
502
|
+
actions.each { |t| t.invoke! }
|
503
|
+
end
|
504
|
+
|
505
|
+
# Renders all actions in this generator. Use this to verify that rendering templates raises no errors.
|
506
|
+
#
|
507
|
+
# === Returns
|
508
|
+
# [String]:: The results of the rendered actions
|
509
|
+
def render!
|
510
|
+
actions.map { |t| t.render }
|
503
511
|
end
|
504
512
|
|
505
513
|
# Returns this generator's source root
|
data/spec/generator/glob_spec.rb
CHANGED
@@ -69,13 +69,26 @@ describe Templater::Generator, '.glob!' do
|
|
69
69
|
|
70
70
|
@instance.templates.map { |t| t.name }.should == [
|
71
71
|
:arg_js,
|
72
|
+
:hellothar_html_feh_,
|
72
73
|
:readme,
|
73
74
|
:subfolder_monkey_rb,
|
74
|
-
:test_rb
|
75
|
+
:test_rb,
|
75
76
|
]
|
76
77
|
@instance.files.map { |f| f.name }.should == [
|
78
|
+
:hellothar_feh_,
|
77
79
|
:subfolder_jessica_alba_jpg
|
78
80
|
]
|
79
81
|
end
|
80
82
|
|
83
|
+
it "should ignore ending '.%..%' and look at the extension preceding it" do
|
84
|
+
@generator_class.glob!
|
85
|
+
|
86
|
+
@instance = @generator_class.new('/tmp/destination')
|
87
|
+
|
88
|
+
@instance.template(:hellothar_html_feh_).source.should == template_path("glob/hellothar.html.%feh%")
|
89
|
+
@instance.template(:hellothar_html_feh_).destination.should == "/tmp/destination/hellothar.html.%feh%"
|
90
|
+
|
91
|
+
@instance.file(:hellothar_feh_).source.should == template_path("glob/hellothar.%feh%")
|
92
|
+
@instance.file(:hellothar_feh_).destination.should == "/tmp/destination/hellothar.%feh%"
|
93
|
+
end
|
81
94
|
end
|
@@ -94,13 +94,13 @@ describe Templater::Generator, '#invoke!' do
|
|
94
94
|
@generator_class = Class.new(Templater::Generator)
|
95
95
|
end
|
96
96
|
|
97
|
-
it "should invoke all
|
97
|
+
it "should invoke all actions" do
|
98
98
|
template1 = mock('a template')
|
99
99
|
template2 = mock('another template')
|
100
100
|
|
101
101
|
instance = @generator_class.new('/tmp')
|
102
102
|
|
103
|
-
instance.should_receive(:
|
103
|
+
instance.should_receive(:actions).and_return([template1, template2])
|
104
104
|
template1.should_receive(:invoke!)
|
105
105
|
template2.should_receive(:invoke!)
|
106
106
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe Templater::Generator, '#render!' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@generator_class = Class.new(Templater::Generator)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should render all actions and return an array of the results" do
|
10
|
+
template1 = mock('a template')
|
11
|
+
template2 = mock('another template')
|
12
|
+
|
13
|
+
instance = @generator_class.new('/tmp')
|
14
|
+
|
15
|
+
instance.should_receive(:actions).and_return([template1, template2])
|
16
|
+
template1.should_receive(:render).and_return("oh my")
|
17
|
+
template2.should_receive(:render).and_return("monkey")
|
18
|
+
|
19
|
+
instance.render!.should == ["oh my", "monkey"]
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
meh
|
@@ -0,0 +1 @@
|
|
1
|
+
<a href="hello.jpg">hello thar</a>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: templater
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Nicklas
|
@@ -9,7 +9,7 @@ autorequire: templater
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-08-
|
12
|
+
date: 2008-08-07 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- spec/generator/invocations_spec.rb
|
87
87
|
- spec/generator/invoke_spec.rb
|
88
88
|
- spec/generator/option_spec.rb
|
89
|
+
- spec/generator/render_spec.rb
|
89
90
|
- spec/generator/source_root_getter_spec.rb
|
90
91
|
- spec/generator/source_root_spec.rb
|
91
92
|
- spec/generator/template_getter_spec.rb
|
@@ -108,6 +109,8 @@ files:
|
|
108
109
|
- spec/templates/erb.rbt
|
109
110
|
- spec/templates/glob
|
110
111
|
- spec/templates/glob/arg.js
|
112
|
+
- spec/templates/glob/hellothar.%feh%
|
113
|
+
- spec/templates/glob/hellothar.html.%feh%
|
111
114
|
- spec/templates/glob/README
|
112
115
|
- spec/templates/glob/subfolder
|
113
116
|
- spec/templates/glob/subfolder/jessica_alba.jpg
|