armadillo 0.0.5 → 0.0.6

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
- metadata.gz: 708c0aa944b119c3a39a0872be76237cfe0e23be
4
- data.tar.gz: 30c62970324900dd052ef97c4911b81c1424dcbc
3
+ metadata.gz: 231f93fa3a2bf653a647967942b864af7ee0895c
4
+ data.tar.gz: 15972a92f0835b8d4bfaa4e3aecfb1b5aa1e4dc6
5
5
  SHA512:
6
- metadata.gz: 4f93b5bad07de610b17bb5596c4305b392d1d0415a4cd0244000615bacaefff6458cb38727658a5a4495f5a8a95cbdc05efb17911a2673c844c0fb7de45d8cdb
7
- data.tar.gz: b7146c572401f76bc4e74f5796fee206ceccdf2534d284198dc5be9ecaf3ee1822218b902ab68137fed249e523161c5d8579a06731b30a23b68e7c95bf47ed32
6
+ metadata.gz: 4165787b78d2545fc9ef144d8cb6ec3257af043f684f8c2d11eca2aa00bbd4ddb22343910161b9aa747ae289d5cbc42b830c7937509f32bea52310e4df3538f5
7
+ data.tar.gz: 3b68737070657b9b6b5d712d362ed3c277263e6b910b7e9abd610a7ae5609cfd265857a026a25d30e62a04e5f07d1a8cf170ab6cf176d6d6a0d0fa0dc84480aa
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "armadillo"
3
- s.version = "0.0.5"
3
+ s.version = "0.0.6"
4
4
  s.summary = "Template inheritance with ERB templates"
5
5
  s.description = "A small library for Django-like template inheritance adapted for ERB"
6
6
  s.authors = ["Sebastian Borrazas"]
@@ -4,7 +4,7 @@ require "delegate"
4
4
 
5
5
  module Armadillo
6
6
 
7
- VERSION = "0.0.5"
7
+ VERSION = "0.0.6"
8
8
 
9
9
  DEFAULT_OPTIONS = {
10
10
  :default_encoding => Encoding.default_external,
@@ -44,17 +44,18 @@ module Armadillo
44
44
  # @param block_name [Symbol]
45
45
  # @param block [Block]
46
46
  def vlock(block_name, &block)
47
- raise "Invalid vlock usage" unless current_frame
48
-
49
- if extends?
50
- raise "No block given" unless block_given?
47
+ if current_frame && extends?
48
+ # Save child view block to be rendered on the parent
49
+ raise "No block given on `#{block_name}`" unless block
51
50
 
52
51
  current_frame[:vlocks][block_name] = block
53
- elsif (frame = get_frame(block_name, current_frame))
52
+ elsif current_frame && (frame = get_frame(block_name, current_frame))
53
+ # Look for child view block and render it
54
54
  temporary_frame(frame[:parent_frame]) do
55
55
  frame[:vlocks][block_name].call
56
56
  end
57
- elsif block_given?
57
+ elsif block
58
+ # Render a default block
58
59
  block.call
59
60
  end
60
61
  end
@@ -104,6 +104,41 @@ describe Armadillo do
104
104
  ])
105
105
  end
106
106
  end
107
+
108
+ describe "when providing default blocks" do
109
+ describe "when default is not overridden" do
110
+ it "renders the default" do
111
+ content = Armadillo.render("default_block.text", {}, {
112
+ :base_path => TEMPLATES_PATH
113
+ })
114
+
115
+ assert_lines_match(content, ["Default"])
116
+ end
117
+ end
118
+
119
+ describe "when default is overridden" do
120
+ it "renders the content from the overridden" do
121
+ content = Armadillo.render("default_block_overridden.text", {}, {
122
+ :base_path => TEMPLATES_PATH
123
+ })
124
+
125
+ assert_lines_match(content, ["Default Overridden"])
126
+ end
127
+ end
128
+
129
+ describe "when default is a nested block" do
130
+ describe "when default is not overridden" do
131
+ it "renders the default" do
132
+ content = Armadillo.render("default_block_nested.text", {}, {
133
+ :base_path => TEMPLATES_PATH
134
+ })
135
+
136
+ assert_lines_match(content, ["Default", "Base"])
137
+ end
138
+ end
139
+ end
140
+ end
141
+
107
142
  end
108
143
 
109
144
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: armadillo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Borrazas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-31 00:00:00.000000000 Z
11
+ date: 2015-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: erubis