deas-erubis 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +1 -2
- data/deas-erubis.gemspec +4 -4
- data/lib/deas-erubis.rb +2 -0
- data/lib/deas-erubis/source.rb +12 -13
- data/lib/deas-erubis/version.rb +1 -1
- data/test/support/templates/{basic.erb → basic.html.erb} +0 -0
- data/test/support/templates/basic_alt.erubis +2 -0
- data/test/system/template_engine_tests.rb +6 -6
- data/test/unit/source_tests.rb +24 -28
- data/test/unit/template_engine_tests.rb +1 -1
- metadata +25 -58
- data/Rakefile +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
data.tar.gz: 14a40f9a2156fb042ae7aefccadeb3e33f62c1b2
|
4
|
+
metadata.gz: 32bdec58016585f5f676dea9100fa80a30a236c5
|
5
|
+
SHA512:
|
6
|
+
data.tar.gz: c03d7b4af3b4cfa33b44699bc976929274e35f537b4ac9d6fbdc0653c1022345db4d6ec019f9c53604f4e21ca79a52a9322068a870647aa4fe96605f09ff09b3
|
7
|
+
metadata.gz: 6943df339e7905f07f7bbe17356c4f7b5f6a3af65ad42d4754f894a5279f1a201ad09d6e936302d0106dcdcd28355ecbe63b4c8933a5060962dd370e9c2c0dc5
|
data/Gemfile
CHANGED
data/deas-erubis.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.version = Deas::Erubis::VERSION
|
9
9
|
gem.authors = ["Kelly Redding", "Collin Redding"]
|
10
10
|
gem.email = ["kelly@kellyredding.com", "collin.redding@me.com"]
|
11
|
-
gem.description = %q{Deas template engine for rendering erb templates using Erubis}
|
12
11
|
gem.summary = %q{Deas template engine for rendering erb templates using Erubis}
|
12
|
+
gem.description = %q{Deas template engine for rendering erb templates using Erubis}
|
13
13
|
gem.homepage = "http://github.com/redding/deas-erubis"
|
14
14
|
gem.license = 'MIT'
|
15
15
|
|
@@ -18,10 +18,10 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
19
|
gem.require_paths = ["lib"]
|
20
20
|
|
21
|
-
gem.add_development_dependency("assert", ["~> 2.15"])
|
21
|
+
gem.add_development_dependency("assert", ["~> 2.15.1"])
|
22
22
|
|
23
|
-
gem.add_dependency("deas", ["~> 0.39"])
|
23
|
+
gem.add_dependency("deas", ["~> 0.39.2"])
|
24
24
|
gem.add_dependency("erubis")
|
25
|
-
gem.add_dependency("much-plugin", ["~> 0.1"])
|
25
|
+
gem.add_dependency("much-plugin", ["~> 0.1.0"])
|
26
26
|
|
27
27
|
end
|
data/lib/deas-erubis.rb
CHANGED
@@ -39,6 +39,8 @@ module Deas::Erubis
|
|
39
39
|
self.erb_source.render(template_name, locals, &content)
|
40
40
|
end
|
41
41
|
|
42
|
+
# this is used when chaining engines where another engine initially loads the
|
43
|
+
# template file
|
42
44
|
def compile(template_name, compiled_content)
|
43
45
|
self.erb_source.compile(template_name, compiled_content)
|
44
46
|
end
|
data/lib/deas-erubis/source.rb
CHANGED
@@ -7,7 +7,6 @@ module Deas::Erubis
|
|
7
7
|
|
8
8
|
class Source
|
9
9
|
|
10
|
-
EXT = '.erb'.freeze
|
11
10
|
BUFVAR_NAME = '@_erb_buf'.freeze
|
12
11
|
DEFAULT_ERUBY = ::Erubis::Eruby
|
13
12
|
|
@@ -22,12 +21,12 @@ module Deas::Erubis
|
|
22
21
|
@default_source = opts[:default_source]
|
23
22
|
end
|
24
23
|
|
25
|
-
def render(
|
26
|
-
load(
|
24
|
+
def render(template_name, locals, &content)
|
25
|
+
load(template_name).evaluate(@context_class.new(@default_source, locals), &content)
|
27
26
|
end
|
28
27
|
|
29
|
-
def compile(
|
30
|
-
template(
|
28
|
+
def compile(template_name, content)
|
29
|
+
template(template_name, content).evaluate(@context_class.new(@default_source, {}))
|
31
30
|
end
|
32
31
|
|
33
32
|
def template(filename, content)
|
@@ -45,16 +44,16 @@ module Deas::Erubis
|
|
45
44
|
|
46
45
|
private
|
47
46
|
|
48
|
-
def load(
|
49
|
-
@cache[
|
50
|
-
filename = source_file_path(
|
47
|
+
def load(template_name)
|
48
|
+
@cache[template_name] ||= begin
|
49
|
+
filename = source_file_path(template_name).to_s
|
51
50
|
content = File.send(File.respond_to?(:binread) ? :binread : :read, filename)
|
52
51
|
template(filename, content)
|
53
52
|
end
|
54
53
|
end
|
55
54
|
|
56
|
-
def source_file_path(
|
57
|
-
self.root.join("#{
|
55
|
+
def source_file_path(template_name)
|
56
|
+
Dir.glob(self.root.join("#{template_name}*")).first
|
58
57
|
end
|
59
58
|
|
60
59
|
def build_context_class(opts)
|
@@ -92,9 +91,9 @@ module Deas::Erubis
|
|
92
91
|
end
|
93
92
|
|
94
93
|
class NullCache
|
95
|
-
def [](
|
96
|
-
def []=(
|
97
|
-
def keys; [];
|
94
|
+
def [](template_name); end
|
95
|
+
def []=(template_name, value); end
|
96
|
+
def keys; []; end
|
98
97
|
end
|
99
98
|
|
100
99
|
end
|
data/lib/deas-erubis/version.rb
CHANGED
File without changes
|
@@ -10,9 +10,9 @@ class Deas::Erubis::TemplateEngine
|
|
10
10
|
setup do
|
11
11
|
@view = OpenStruct.new({
|
12
12
|
:identifier => Factory.integer,
|
13
|
-
:name
|
13
|
+
:name => Factory.string
|
14
14
|
})
|
15
|
-
@locals
|
15
|
+
@locals = { 'local1' => Factory.string }
|
16
16
|
@content = Proc.new{ "<span>some content</span>" }
|
17
17
|
|
18
18
|
@engine = Deas::Erubis::TemplateEngine.new('source_path' => TEMPLATE_ROOT)
|
@@ -40,12 +40,12 @@ class Deas::Erubis::TemplateEngine
|
|
40
40
|
end
|
41
41
|
|
42
42
|
should "compile raw template markup" do
|
43
|
-
|
44
|
-
file_path
|
45
|
-
file_content
|
43
|
+
template_name = 'compile'
|
44
|
+
file_path = TEMPLATE_ROOT.join("#{template_name}.erb").to_s
|
45
|
+
file_content = File.read(file_path)
|
46
46
|
|
47
47
|
exp = Factory.compile_erb_rendered(subject)
|
48
|
-
assert_equal exp, subject.compile(
|
48
|
+
assert_equal exp, subject.compile(template_name, file_content)
|
49
49
|
end
|
50
50
|
|
51
51
|
end
|
data/test/unit/source_tests.rb
CHANGED
@@ -12,10 +12,6 @@ class Deas::Erubis::Source
|
|
12
12
|
end
|
13
13
|
subject{ @source_class }
|
14
14
|
|
15
|
-
should "know its extension" do
|
16
|
-
assert_equal '.erb', subject::EXT
|
17
|
-
end
|
18
|
-
|
19
15
|
should "know the bufvar name to use" do
|
20
16
|
assert_equal '@_erb_buf', subject::BUFVAR_NAME
|
21
17
|
end
|
@@ -51,15 +47,6 @@ class Deas::Erubis::Source
|
|
51
47
|
assert_equal eruby, source.eruby_class
|
52
48
|
end
|
53
49
|
|
54
|
-
should "build template objects for template files" do
|
55
|
-
filename = 'basic'
|
56
|
-
template = subject.template(filename, Factory.string)
|
57
|
-
|
58
|
-
assert_equal filename, template.filename
|
59
|
-
assert_equal subject.eruby_class, template.eruby_class
|
60
|
-
assert_equal Deas::Erubis::Source::BUFVAR_NAME, template.eruby_bufvar
|
61
|
-
end
|
62
|
-
|
63
50
|
should "not cache templates by default" do
|
64
51
|
assert_kind_of NullCache, subject.cache
|
65
52
|
end
|
@@ -120,21 +107,30 @@ class Deas::Erubis::Source
|
|
120
107
|
assert_equal default_source, context.instance_variable_get('@default_source')
|
121
108
|
end
|
122
109
|
|
110
|
+
should "build template objects for template files" do
|
111
|
+
filename = 'basic'
|
112
|
+
template = subject.template(filename, Factory.string)
|
113
|
+
|
114
|
+
assert_equal filename, template.filename
|
115
|
+
assert_equal subject.eruby_class, template.eruby_class
|
116
|
+
assert_equal Deas::Erubis::Source::BUFVAR_NAME, template.eruby_bufvar
|
117
|
+
end
|
118
|
+
|
123
119
|
end
|
124
120
|
|
125
121
|
class RenderTests < InitTests
|
126
122
|
desc "`render` method"
|
127
123
|
setup do
|
128
|
-
@
|
124
|
+
@template_name = ['basic', 'basic_alt'].choice
|
129
125
|
@file_locals = {
|
130
126
|
'name' => Factory.string,
|
131
127
|
'local1' => Factory.integer
|
132
128
|
}
|
133
129
|
end
|
134
130
|
|
135
|
-
should "render a template for the given
|
131
|
+
should "render a template for the given template name and return its data" do
|
136
132
|
exp = Factory.basic_erb_rendered(@file_locals)
|
137
|
-
assert_equal exp, subject.render(@
|
133
|
+
assert_equal exp, subject.render(@template_name, @file_locals)
|
138
134
|
end
|
139
135
|
|
140
136
|
should "pass its default source to its context class" do
|
@@ -144,7 +140,7 @@ class Deas::Erubis::Source
|
|
144
140
|
Assert.stub(source.context_class, :new) do |s, l|
|
145
141
|
context_class = ContextClassSpy.new(s, l)
|
146
142
|
end
|
147
|
-
source.render(@
|
143
|
+
source.render(@template_name, @file_locals)
|
148
144
|
|
149
145
|
assert_equal default_source, context_class.default_source
|
150
146
|
end
|
@@ -157,12 +153,12 @@ class Deas::Erubis::Source
|
|
157
153
|
@source = @source_class.new(@root, :cache => true)
|
158
154
|
end
|
159
155
|
|
160
|
-
should "cache templates by their
|
156
|
+
should "cache templates by their template name" do
|
161
157
|
exp = Factory.basic_erb_rendered(@file_locals)
|
162
|
-
assert_equal exp, @source.render(@
|
158
|
+
assert_equal exp, @source.render(@template_name, @file_locals)
|
163
159
|
|
164
|
-
assert_equal [@
|
165
|
-
assert_kind_of Template, @source.cache[@
|
160
|
+
assert_equal [@template_name], @source.cache.keys
|
161
|
+
assert_kind_of Template, @source.cache[@template_name]
|
166
162
|
end
|
167
163
|
|
168
164
|
end
|
@@ -175,7 +171,7 @@ class Deas::Erubis::Source
|
|
175
171
|
|
176
172
|
should "not cache templates" do
|
177
173
|
exp = Factory.basic_erb_rendered(@file_locals)
|
178
|
-
assert_equal exp, @source.render(@
|
174
|
+
assert_equal exp, @source.render(@template_name, @file_locals)
|
179
175
|
|
180
176
|
assert_equal [], @source.cache.keys
|
181
177
|
end
|
@@ -185,13 +181,13 @@ class Deas::Erubis::Source
|
|
185
181
|
class RenderContentTests < RenderTests
|
186
182
|
desc "when yielding to a given content block"
|
187
183
|
setup do
|
188
|
-
@
|
184
|
+
@template_name = "yield"
|
189
185
|
@content = Proc.new{ "<span>some content</span>" }
|
190
186
|
end
|
191
187
|
|
192
|
-
should "render the template for the given
|
188
|
+
should "render the template for the given template name and return its data" do
|
193
189
|
exp = Factory.yield_erb_rendered(@file_locals, &@content)
|
194
|
-
assert_equal exp, subject.render(@
|
190
|
+
assert_equal exp, subject.render(@template_name, @file_locals, &@content)
|
195
191
|
end
|
196
192
|
|
197
193
|
end
|
@@ -199,7 +195,7 @@ class Deas::Erubis::Source
|
|
199
195
|
class CompileTests < InitTests
|
200
196
|
desc "`compile` method"
|
201
197
|
|
202
|
-
should "
|
198
|
+
should "evaluate raw template output and return it" do
|
203
199
|
raw = "<p><%= 1 + 1 %></p>"
|
204
200
|
exp = "<p>2</p>"
|
205
201
|
assert_equal exp, subject.compile('compile', raw)
|
@@ -216,11 +212,11 @@ class Deas::Erubis::Source
|
|
216
212
|
|
217
213
|
should have_imeths :[], :[]=, :keys
|
218
214
|
|
219
|
-
should "take a
|
215
|
+
should "take a template name and return nothing on index" do
|
220
216
|
assert_nil subject[Factory.path]
|
221
217
|
end
|
222
218
|
|
223
|
-
should "take a
|
219
|
+
should "take a template name and value and do nothing on index write" do
|
224
220
|
assert_nothing_raised do
|
225
221
|
subject[Factory.path] = Factory.string
|
226
222
|
end
|
@@ -16,7 +16,7 @@ class Deas::Erubis::TemplateEngine
|
|
16
16
|
subject{ @engine }
|
17
17
|
|
18
18
|
should have_imeths :erb_source, :erb_handler_local, :erb_logger_local
|
19
|
-
should have_imeths :render, :partial
|
19
|
+
should have_imeths :render, :partial, :compile
|
20
20
|
|
21
21
|
should "be a Deas template engine" do
|
22
22
|
assert_kind_of Deas::TemplateEngine, subject
|
metadata
CHANGED
@@ -1,13 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deas-erubis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 5
|
9
|
-
- 0
|
10
|
-
version: 0.5.0
|
4
|
+
version: 0.5.1
|
11
5
|
platform: ruby
|
12
6
|
authors:
|
13
7
|
- Kelly Redding
|
@@ -16,67 +10,49 @@ autorequire:
|
|
16
10
|
bindir: bin
|
17
11
|
cert_chain: []
|
18
12
|
|
19
|
-
date:
|
13
|
+
date: 2016-04-05 00:00:00 Z
|
20
14
|
dependencies:
|
21
15
|
- !ruby/object:Gem::Dependency
|
16
|
+
name: assert
|
17
|
+
prerelease: false
|
22
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
-
none: false
|
24
19
|
requirements:
|
25
20
|
- - ~>
|
26
21
|
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
segments:
|
29
|
-
- 2
|
30
|
-
- 15
|
31
|
-
version: "2.15"
|
22
|
+
version: 2.15.1
|
32
23
|
type: :development
|
33
|
-
name: assert
|
34
24
|
version_requirements: *id001
|
35
|
-
prerelease: false
|
36
25
|
- !ruby/object:Gem::Dependency
|
26
|
+
name: deas
|
27
|
+
prerelease: false
|
37
28
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
-
none: false
|
39
29
|
requirements:
|
40
30
|
- - ~>
|
41
31
|
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
- 39
|
46
|
-
version: "0.39"
|
32
|
+
version: 0.39.2
|
47
33
|
type: :runtime
|
48
|
-
name: deas
|
49
34
|
version_requirements: *id002
|
50
|
-
prerelease: false
|
51
35
|
- !ruby/object:Gem::Dependency
|
36
|
+
name: erubis
|
37
|
+
prerelease: false
|
52
38
|
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
-
none: false
|
54
39
|
requirements:
|
55
|
-
-
|
40
|
+
- &id005
|
41
|
+
- ">="
|
56
42
|
- !ruby/object:Gem::Version
|
57
|
-
hash: 3
|
58
|
-
segments:
|
59
|
-
- 0
|
60
43
|
version: "0"
|
61
44
|
type: :runtime
|
62
|
-
name: erubis
|
63
45
|
version_requirements: *id003
|
64
|
-
prerelease: false
|
65
46
|
- !ruby/object:Gem::Dependency
|
47
|
+
name: much-plugin
|
48
|
+
prerelease: false
|
66
49
|
requirement: &id004 !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
50
|
requirements:
|
69
51
|
- - ~>
|
70
52
|
- !ruby/object:Gem::Version
|
71
|
-
|
72
|
-
segments:
|
73
|
-
- 0
|
74
|
-
- 1
|
75
|
-
version: "0.1"
|
53
|
+
version: 0.1.0
|
76
54
|
type: :runtime
|
77
|
-
name: much-plugin
|
78
55
|
version_requirements: *id004
|
79
|
-
prerelease: false
|
80
56
|
description: Deas template engine for rendering erb templates using Erubis
|
81
57
|
email:
|
82
58
|
- kelly@kellyredding.com
|
@@ -92,7 +68,6 @@ files:
|
|
92
68
|
- Gemfile
|
93
69
|
- LICENSE
|
94
70
|
- README.md
|
95
|
-
- Rakefile
|
96
71
|
- deas-erubis.gemspec
|
97
72
|
- lib/deas-erubis.rb
|
98
73
|
- lib/deas-erubis/source.rb
|
@@ -104,7 +79,8 @@ files:
|
|
104
79
|
- test/support/templates/_partial.erb
|
105
80
|
- test/support/templates/_partial_no_locals.erb
|
106
81
|
- test/support/templates/_yield_partial.erb
|
107
|
-
- test/support/templates/basic.erb
|
82
|
+
- test/support/templates/basic.html.erb
|
83
|
+
- test/support/templates/basic_alt.erubis
|
108
84
|
- test/support/templates/compile.erb
|
109
85
|
- test/support/templates/view.erb
|
110
86
|
- test/support/templates/with_capture_partial.erb
|
@@ -119,35 +95,25 @@ files:
|
|
119
95
|
homepage: http://github.com/redding/deas-erubis
|
120
96
|
licenses:
|
121
97
|
- MIT
|
98
|
+
metadata: {}
|
99
|
+
|
122
100
|
post_install_message:
|
123
101
|
rdoc_options: []
|
124
102
|
|
125
103
|
require_paths:
|
126
104
|
- lib
|
127
105
|
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
-
none: false
|
129
106
|
requirements:
|
130
|
-
-
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
hash: 3
|
133
|
-
segments:
|
134
|
-
- 0
|
135
|
-
version: "0"
|
107
|
+
- *id005
|
136
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
109
|
requirements:
|
139
|
-
-
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
hash: 3
|
142
|
-
segments:
|
143
|
-
- 0
|
144
|
-
version: "0"
|
110
|
+
- *id005
|
145
111
|
requirements: []
|
146
112
|
|
147
113
|
rubyforge_project:
|
148
|
-
rubygems_version:
|
114
|
+
rubygems_version: 2.5.1
|
149
115
|
signing_key:
|
150
|
-
specification_version:
|
116
|
+
specification_version: 4
|
151
117
|
summary: Deas template engine for rendering erb templates using Erubis
|
152
118
|
test_files:
|
153
119
|
- test/helper.rb
|
@@ -155,7 +121,8 @@ test_files:
|
|
155
121
|
- test/support/templates/_partial.erb
|
156
122
|
- test/support/templates/_partial_no_locals.erb
|
157
123
|
- test/support/templates/_yield_partial.erb
|
158
|
-
- test/support/templates/basic.erb
|
124
|
+
- test/support/templates/basic.html.erb
|
125
|
+
- test/support/templates/basic_alt.erubis
|
159
126
|
- test/support/templates/compile.erb
|
160
127
|
- test/support/templates/view.erb
|
161
128
|
- test/support/templates/with_capture_partial.erb
|
data/Rakefile
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require "bundler/gem_tasks"
|