deas-erubis 0.5.1 → 0.5.2

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
  SHA1:
3
- data.tar.gz: 14a40f9a2156fb042ae7aefccadeb3e33f62c1b2
4
- metadata.gz: 32bdec58016585f5f676dea9100fa80a30a236c5
3
+ metadata.gz: 05e87846e97f40eef052aca4ee79b73b030b94f6
4
+ data.tar.gz: e10a30275cb69eb9c806632f6c4f14a1eff92cd8
5
5
  SHA512:
6
- data.tar.gz: c03d7b4af3b4cfa33b44699bc976929274e35f537b4ac9d6fbdc0653c1022345db4d6ec019f9c53604f4e21ca79a52a9322068a870647aa4fe96605f09ff09b3
7
- metadata.gz: 6943df339e7905f07f7bbe17356c4f7b5f6a3af65ad42d4754f894a5279f1a201ad09d6e936302d0106dcdcd28355ecbe63b4c8933a5060962dd370e9c2c0dc5
6
+ metadata.gz: 3126c4599310a15840838be33c4396349b5712fbaecbf6151ff2a81b300d5d1f677c3f873b50f5bb4c84c5f489ca0680d54b01c147acdd065052b3c9a4e578bb
7
+ data.tar.gz: 659d77c67276550f8942c06cfe7f6d6180f669fcaba94e635e4067f5f832813daf62eef516490d6a9a91b6b33fe5aafe0b8acd9c733127f5629344b437fe373a
data/deas-erubis.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
20
20
 
21
21
  gem.add_development_dependency("assert", ["~> 2.15.1"])
22
22
 
23
- gem.add_dependency("deas", ["~> 0.39.2"])
23
+ gem.add_dependency("deas", ["~> 0.40.0"])
24
24
  gem.add_dependency("erubis")
25
25
  gem.add_dependency("much-plugin", ["~> 0.1.0"])
26
26
 
data/lib/deas-erubis.rb CHANGED
@@ -13,6 +13,7 @@ module Deas::Erubis
13
13
 
14
14
  def erb_source
15
15
  @erb_source ||= Source.new(self.source_path, {
16
+ :ext => self.opts['ext'],
16
17
  :eruby => self.opts['eruby'],
17
18
  :cache => self.opts['cache'],
18
19
  :default_source => self.opts['default_template_source'],
@@ -10,10 +10,11 @@ module Deas::Erubis
10
10
  BUFVAR_NAME = '@_erb_buf'.freeze
11
11
  DEFAULT_ERUBY = ::Erubis::Eruby
12
12
 
13
- attr_reader :root, :eruby_class, :cache, :context_class
13
+ attr_reader :root, :ext, :eruby_class, :cache, :context_class
14
14
 
15
15
  def initialize(root, opts)
16
16
  @root = Pathname.new(root.to_s)
17
+ @ext = opts[:ext] ? ".#{opts[:ext]}" : nil
17
18
  @eruby_class = opts[:eruby] || DEFAULT_ERUBY
18
19
  @cache = opts[:cache] ? Hash.new : NullCache.new
19
20
  @context_class = build_context_class(opts)
@@ -46,14 +47,20 @@ module Deas::Erubis
46
47
 
47
48
  def load(template_name)
48
49
  @cache[template_name] ||= begin
49
- filename = source_file_path(template_name).to_s
50
- content = File.send(File.respond_to?(:binread) ? :binread : :read, filename)
50
+ if (filename = source_file_path(template_name)).nil?
51
+ template_desc = "a template file named #{template_name.inspect}"
52
+ if !@ext.nil?
53
+ template_desc += " that ends in #{@ext.inspect}"
54
+ end
55
+ raise ArgumentError, "#{template_desc} does not exist"
56
+ end
57
+ content = File.send(File.respond_to?(:binread) ? :binread : :read, filename.to_s)
51
58
  template(filename, content)
52
59
  end
53
60
  end
54
61
 
55
- def source_file_path(template_name)
56
- Dir.glob(self.root.join("#{template_name}*")).first
62
+ def source_file_path(name)
63
+ Dir.glob(self.root.join(name.end_with?(@ext) ? name : "#{name}*#{@ext}")).first
57
64
  end
58
65
 
59
66
  def build_context_class(opts)
@@ -1,4 +1,4 @@
1
1
  module Deas; end
2
2
  module Deas::Erubis
3
- VERSION = "0.5.1"
3
+ VERSION = "0.5.2"
4
4
  end
@@ -0,0 +1,6 @@
1
+ <%
2
+ # This files is just to provide a conflict when rendering. If deas-nm isn't
3
+ # passing an extension down to nm then nm will try and render this file which
4
+ # will error.
5
+ raise "oops - trying to render wrong template"
6
+ %>
@@ -2,7 +2,7 @@
2
2
  <% capture_partial '_yield_partial', 'local1' => local1 do %>
3
3
  <span>some content</span>
4
4
  <% end %>
5
- <% capture_partial '_partial', 'local1' => local1 %>
5
+ <% capture_partial '_partial1', 'local1' => local1 %>
6
6
  <% capture_partial '_partial_no_locals' %>
7
7
  <% source_capture_partial @default_source, '_partial_no_locals' %>
8
8
  </div>
@@ -1,5 +1,5 @@
1
1
  <div>
2
- <%= partial '_partial', 'local1' => local1 %>
2
+ <%= partial '_partial1', 'local1' => local1 %>
3
3
  <%= partial '_partial_no_locals' %>
4
4
  <%= source_partial @default_source, '_partial_no_locals' %>
5
5
  </div>
@@ -15,7 +15,10 @@ class Deas::Erubis::TemplateEngine
15
15
  @locals = { 'local1' => Factory.string }
16
16
  @content = Proc.new{ "<span>some content</span>" }
17
17
 
18
- @engine = Deas::Erubis::TemplateEngine.new('source_path' => TEMPLATE_ROOT)
18
+ @engine = Deas::Erubis::TemplateEngine.new({
19
+ 'source_path' => TEMPLATE_ROOT,
20
+ 'ext' => 'erb'
21
+ })
19
22
  end
20
23
  subject{ @engine }
21
24
 
@@ -31,7 +34,7 @@ class Deas::Erubis::TemplateEngine
31
34
 
32
35
  should "render partial templates" do
33
36
  exp = Factory.partial_erb_rendered(subject, @locals)
34
- assert_equal exp, subject.partial('_partial', @locals)
37
+ assert_equal exp, subject.partial('_partial1', @locals)
35
38
  end
36
39
 
37
40
  should "render partial templates yielding to given content blocks" do
@@ -30,13 +30,20 @@ class Deas::Erubis::Source
30
30
  end
31
31
  subject{ @source }
32
32
 
33
- should have_readers :root, :eruby_class, :cache, :context_class
33
+ should have_readers :root, :ext, :eruby_class, :cache, :context_class
34
34
  should have_imeths :render, :compile, :template
35
35
 
36
36
  should "know its root" do
37
37
  assert_equal @root, subject.root.to_s
38
38
  end
39
39
 
40
+ should "know its extension for looking up source files" do
41
+ assert_nil subject.ext
42
+
43
+ source = @source_class.new(@root, :ext => 'erb')
44
+ assert_equal '.erb', source.ext
45
+ end
46
+
40
47
  should "default its eruby class" do
41
48
  assert_equal Deas::Erubis::Source::DEFAULT_ERUBY, subject.eruby_class
42
49
  end
@@ -145,6 +152,32 @@ class Deas::Erubis::Source
145
152
  assert_equal default_source, context_class.default_source
146
153
  end
147
154
 
155
+ should "only render templates with the matching ext if one is specified" do
156
+ source = @source_class.new(@root, :ext => 'erb')
157
+ file_path = Factory.template_file('basic.html.erb')
158
+ exp = Factory.basic_erb_rendered(@file_locals)
159
+ ['basic', 'basic.html', 'basic.html.erb'].each do |name|
160
+ assert_equal exp, source.render(name, @file_locals)
161
+ end
162
+
163
+ source = @source_class.new(@root, :ext => 'erubis')
164
+ file_path = Factory.template_file('basic_alt.erubis')
165
+ exp = Factory.basic_erb_rendered(@file_locals)
166
+ ['basic', 'basic_alt', 'basic_alt.erubis'].each do |name|
167
+ assert_equal exp, source.render(name, @file_locals)
168
+ end
169
+
170
+ source = @source_class.new(@root, :ext => 'erb')
171
+ ['basic_alt', 'basic_alt.erubis'].each do |name|
172
+ assert_raises(ArgumentError){ source.render(name, @file_locals) }
173
+ end
174
+
175
+ source = @source_class.new(@root, :ext => 'html')
176
+ ['basic', 'basic.html', 'basic.html.erb'].each do |name|
177
+ assert_raises(ArgumentError){ source.render(name, @file_locals) }
178
+ end
179
+ end
180
+
148
181
  end
149
182
 
150
183
  class RenderCacheTests < RenderTests
@@ -10,7 +10,8 @@ class Deas::Erubis::TemplateEngine
10
10
  desc "Deas::Erubis::TemplateEngine"
11
11
  setup do
12
12
  @engine = Deas::Erubis::TemplateEngine.new({
13
- 'source_path' => TEST_SUPPORT_PATH
13
+ 'source_path' => TEST_SUPPORT_PATH,
14
+ 'ext' => 'erb'
14
15
  })
15
16
  end
16
17
  subject{ @engine }
@@ -39,6 +40,12 @@ class Deas::Erubis::TemplateEngine
39
40
  assert_kind_of Hash, engine.erb_source.cache
40
41
  end
41
42
 
43
+ should "pass any given ext option to its source" do
44
+ ext = Factory.string
45
+ engine = Deas::Erubis::TemplateEngine.new('ext' => ext)
46
+ assert_equal ".#{ext}", engine.erb_source.ext
47
+ end
48
+
42
49
  should "pass any given deas template source to its source" do
43
50
  default_source = 'a-default-source'
44
51
  source_opts = nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deas-erubis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kelly Redding
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2016-04-05 00:00:00 Z
13
+ date: 2016-04-11 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: assert
@@ -29,7 +29,7 @@ dependencies:
29
29
  requirements:
30
30
  - - ~>
31
31
  - !ruby/object:Gem::Version
32
- version: 0.39.2
32
+ version: 0.40.0
33
33
  type: :runtime
34
34
  version_requirements: *id002
35
35
  - !ruby/object:Gem::Dependency
@@ -76,12 +76,13 @@ files:
76
76
  - log/.gitkeep
77
77
  - test/helper.rb
78
78
  - test/support/factory.rb
79
- - test/support/templates/_partial.erb
79
+ - test/support/templates/_partial1.erb
80
80
  - test/support/templates/_partial_no_locals.erb
81
81
  - test/support/templates/_yield_partial.erb
82
82
  - test/support/templates/basic.html.erb
83
83
  - test/support/templates/basic_alt.erubis
84
84
  - test/support/templates/compile.erb
85
+ - test/support/templates/view.aaa
85
86
  - test/support/templates/view.erb
86
87
  - test/support/templates/with_capture_partial.erb
87
88
  - test/support/templates/with_partial.erb
@@ -118,12 +119,13 @@ summary: Deas template engine for rendering erb templates using Erubis
118
119
  test_files:
119
120
  - test/helper.rb
120
121
  - test/support/factory.rb
121
- - test/support/templates/_partial.erb
122
+ - test/support/templates/_partial1.erb
122
123
  - test/support/templates/_partial_no_locals.erb
123
124
  - test/support/templates/_yield_partial.erb
124
125
  - test/support/templates/basic.html.erb
125
126
  - test/support/templates/basic_alt.erubis
126
127
  - test/support/templates/compile.erb
128
+ - test/support/templates/view.aaa
127
129
  - test/support/templates/view.erb
128
130
  - test/support/templates/with_capture_partial.erb
129
131
  - test/support/templates/with_partial.erb