ruhl 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README +2 -0
- data/VERSION +1 -1
- data/lib/ruhl.rb +8 -8
- data/ruhl.gemspec +1 -1
- data/spec/html/form.html +2 -1
- data/spec/html/main_with_form.html +1 -1
- data/spec/ruhl_spec.rb +20 -0
- metadata +1 -1
data/README
CHANGED
@@ -370,6 +370,8 @@ if users? == false then the "No Users were found" message appears.
|
|
370
370
|
|
371
371
|
The table row information will be replace with the current_user details.
|
372
372
|
|
373
|
+
*Note: _use can not be used with _partial as it replaces the inner_html
|
374
|
+
|
373
375
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
374
376
|
:: Notes ::
|
375
377
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.1
|
data/lib/ruhl.rb
CHANGED
@@ -10,13 +10,14 @@ module Ruhl
|
|
10
10
|
|
11
11
|
def initialize(html, options = {})
|
12
12
|
@local_object = options[:local_object]
|
13
|
+
@block_object = options[:block_object]
|
13
14
|
@layout_source = options[:layout_source]
|
14
15
|
|
15
16
|
if @layout = options[:layout]
|
16
17
|
raise LayoutNotFoundError.new(@layout) unless File.exists?(@layout)
|
17
18
|
end
|
18
19
|
|
19
|
-
if @layout || @local_object
|
20
|
+
if @layout || @local_object || @block_object
|
20
21
|
@document = Nokogiri::HTML.fragment(html)
|
21
22
|
else
|
22
23
|
@document = Nokogiri::HTML(html)
|
@@ -69,6 +70,11 @@ module Ruhl
|
|
69
70
|
tag.swap(new_content)
|
70
71
|
end
|
71
72
|
|
73
|
+
def render_block(tag, code)
|
74
|
+
bo = execute_ruby(tag, code)
|
75
|
+
Ruhl::Engine.new(tag.inner_html, :block_object => bo).render(scope)
|
76
|
+
end
|
77
|
+
|
72
78
|
def render_file(contents)
|
73
79
|
doc = Nokogiri::HTML( contents )
|
74
80
|
parse_doc(doc)
|
@@ -107,8 +113,7 @@ module Ruhl
|
|
107
113
|
else
|
108
114
|
case attribute
|
109
115
|
when "_use"
|
110
|
-
|
111
|
-
@tag_block = tag
|
116
|
+
tag.inner_html = render_block(tag, value)
|
112
117
|
when "_partial"
|
113
118
|
tag.inner_html = render_partial(tag, value)
|
114
119
|
when "_collection"
|
@@ -123,11 +128,6 @@ module Ruhl
|
|
123
128
|
end
|
124
129
|
end
|
125
130
|
end
|
126
|
-
|
127
|
-
if @tag_block == tag
|
128
|
-
@tag_block = nil
|
129
|
-
@block_object = nil
|
130
|
-
end
|
131
131
|
end
|
132
132
|
|
133
133
|
def process_if(tag, value)
|
data/ruhl.gemspec
CHANGED
data/spec/html/form.html
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
<form action="/account" class="edit_user" id="edit_user" method="post"
|
1
|
+
<form action="/account" class="edit_user" id="edit_user" method="post"
|
2
|
+
data-ruhl= "_use: user">
|
2
3
|
|
3
4
|
<label for='user_first_name'>First Name:</label>
|
4
5
|
<input id="user_first_name" name="user[first_name]" size="30" type="text"
|
@@ -4,7 +4,7 @@
|
|
4
4
|
</head>
|
5
5
|
<body>
|
6
6
|
<h1>My Account</h1>
|
7
|
-
<div id="sidebar" data-ruhl="
|
7
|
+
<div id="sidebar" data-ruhl="_partial: form_partial">
|
8
8
|
<form action="/account" class="edit_user" id="edit_user" method="post">
|
9
9
|
|
10
10
|
<label for='user_first_name'>First Name:</label>
|
data/spec/ruhl_spec.rb
CHANGED
@@ -181,6 +181,26 @@ describe Ruhl do
|
|
181
181
|
nodes[4]['value'].should == 'man'
|
182
182
|
end
|
183
183
|
end
|
184
|
+
|
185
|
+
|
186
|
+
describe "use.html" do
|
187
|
+
before do
|
188
|
+
@html = File.read html(:use)
|
189
|
+
@doc = create_doc
|
190
|
+
end
|
191
|
+
|
192
|
+
it "first name will be set" do
|
193
|
+
@doc.xpath('/html/body/div//input')[0]['value'].should == "Jane"
|
194
|
+
end
|
195
|
+
|
196
|
+
it "last name will be set" do
|
197
|
+
@doc.xpath('/html/body/div//input')[1]['value'].should == "Doe"
|
198
|
+
end
|
199
|
+
|
200
|
+
it "email will be set" do
|
201
|
+
@doc.xpath('/html/body/div//input')[2]['value'].should == "jane@stonean.com"
|
202
|
+
end
|
203
|
+
end
|
184
204
|
end
|
185
205
|
|
186
206
|
|