inline_templates 0.0.1 → 0.0.2
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4320779b14a6754c8f5f27a94d3b7bf4c273057
|
4
|
+
data.tar.gz: 655e669a9c98ea55ef06aa808b4048970aecaf70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bef27f4d814a5da7585f5f80e07765550eefcf5374c8151019bc28e56c3b843669b34c125b05b8df2c171dd11affa2c3f1a24ff5cc7c7edf81f5773da99d1d76
|
7
|
+
data.tar.gz: cd4cc209772778510e88765dd149a82a507a368c0bd8479d709842528d816f18d17430c145522bdcf09fe35c8a903b0aa67e5140fbada0fb1bfb2e787ff764b3
|
@@ -10,12 +10,13 @@ module InlineTemplates
|
|
10
10
|
def __inline_templates_object; @object; end
|
11
11
|
|
12
12
|
def ~
|
13
|
-
@buffer.append = @object
|
13
|
+
@buffer.instance_variable_get(:@_inlinetemplates_context).output_buffer.append = @object
|
14
14
|
@object
|
15
15
|
end
|
16
16
|
|
17
17
|
def method_missing(name, *args, &block)
|
18
18
|
args.map! &BufferWrapper.method(:unwrap)
|
19
|
+
block = BufferWrapper.create_proxy_proc(block, @buffer) unless block.nil?
|
19
20
|
|
20
21
|
BufferWrapper.wrap @object.__send__(name, *args, &block), @buffer
|
21
22
|
end
|
@@ -39,5 +40,18 @@ module InlineTemplates
|
|
39
40
|
obj
|
40
41
|
end
|
41
42
|
end
|
43
|
+
|
44
|
+
def self.create_proxy_proc(nested, buffer)
|
45
|
+
proc do |*args, &block|
|
46
|
+
unless @_inlinetemplates_context.nil?
|
47
|
+
::Kernel.puts "OH! block in context!"
|
48
|
+
end
|
49
|
+
|
50
|
+
args.map! { |arg| BufferWrapper.wrap arg, buffer }
|
51
|
+
block = BufferWrapper.create_proxy_proc(block, buffer) unless block.nil?
|
52
|
+
|
53
|
+
nested.call *args, &block
|
54
|
+
end
|
55
|
+
end
|
42
56
|
end
|
43
57
|
end
|
@@ -1,28 +1,28 @@
|
|
1
1
|
module InlineTemplates
|
2
2
|
class RenderingContext < BlankObject
|
3
|
-
make_blank :instance_exec, :instance_variable_set
|
3
|
+
make_blank :instance_exec, :instance_variable_get, :instance_variable_set
|
4
4
|
|
5
5
|
def initialize(context, locals, builder)
|
6
6
|
@_inlinetemplates_context = context
|
7
7
|
@_inlinetemplates_locals = locals
|
8
|
-
@_inlinetemplates_evaluating = true
|
9
8
|
@_inlinetemplates_builder = builder
|
10
9
|
|
11
10
|
context.instance_variables.each do |var|
|
12
|
-
instance_variable_set var, context.instance_variable_get(var)
|
11
|
+
instance_variable_set var, BufferWrapper.wrap(context.instance_variable_get(var), self)
|
13
12
|
end
|
14
13
|
end
|
15
14
|
|
16
15
|
def t(obj)
|
17
|
-
BufferWrapper.wrap obj.to_s,
|
16
|
+
BufferWrapper.wrap obj.to_s, self
|
18
17
|
end
|
19
18
|
|
20
19
|
def h(obj)
|
21
|
-
BufferWrapper.wrap obj.to_s.html_safe,
|
20
|
+
BufferWrapper.wrap obj.to_s.html_safe, self
|
22
21
|
end
|
23
22
|
|
24
23
|
def method_missing(name, *args, &block)
|
25
24
|
args.map! &BufferWrapper.method(:unwrap)
|
25
|
+
block = BufferWrapper.create_proxy_proc(block, self) unless block.nil?
|
26
26
|
|
27
27
|
if @_inlinetemplates_locals.include?(name) && args.length == 0
|
28
28
|
result = @_inlinetemplates_locals[name]
|
@@ -37,7 +37,7 @@ module InlineTemplates
|
|
37
37
|
super
|
38
38
|
end
|
39
39
|
|
40
|
-
BufferWrapper.wrap result,
|
40
|
+
BufferWrapper.wrap result, self
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
@@ -77,8 +77,16 @@ describe InlineTemplates do
|
|
77
77
|
|
78
78
|
it 'passes instance variables' do
|
79
79
|
test_rit do
|
80
|
-
~
|
80
|
+
~ @virtual_path
|
81
81
|
end.should == "(inline)"
|
82
82
|
end
|
83
|
+
|
84
|
+
it 'wraps output of builders' do
|
85
|
+
test_rit do
|
86
|
+
~ form_for(:foo, :url => "foo", :authenticity_token => false) do |f|
|
87
|
+
~ f.submit
|
88
|
+
end
|
89
|
+
end.should == "<form accept-charset=\"UTF-8\" action=\"foo\" method=\"post\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /></div><input name=\"commit\" type=\"submit\" value=\"Save Foo\" /></form>"
|
90
|
+
end
|
83
91
|
end
|
84
92
|
end
|