erector 0.8.0 → 0.8.1
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.
- data/VERSION.yml +1 -1
- data/lib/erector/externals.rb +4 -3
- data/lib/erector/output.rb +2 -2
- data/lib/erector/rails/template_handlers/rb_handler.rb +1 -1
- data/lib/erector/version.rb +2 -0
- data/spec/erector/caching_spec.rb +3 -1
- data/spec/erector/externals_spec.rb +4 -2
- data/spec/erector/html_spec.rb +5 -4
- metadata +4 -4
data/VERSION.yml
CHANGED
data/lib/erector/externals.rb
CHANGED
@@ -59,7 +59,7 @@ module Erector
|
|
59
59
|
texts_hash[t] = options.delete(t) if options.has_key? t
|
60
60
|
end
|
61
61
|
texts_hash.each do |t, texts|
|
62
|
-
texts.each do |text|
|
62
|
+
[texts].flatten.each do |text|
|
63
63
|
deps << interpret_args(t, text, options)
|
64
64
|
end
|
65
65
|
end
|
@@ -79,9 +79,10 @@ module Erector
|
|
79
79
|
|
80
80
|
def render_with_externals(options_to_external_renderer = {})
|
81
81
|
output = Erector::Output.new
|
82
|
-
self.to_a(:output => output)
|
82
|
+
self.to_a(:output => output) # render all the externals onto this new output buffer
|
83
83
|
nested_widgets = output.widgets.to_a
|
84
|
-
|
84
|
+
renderer = ExternalRenderer.new({:classes => nested_widgets}.merge(options_to_external_renderer))
|
85
|
+
externals = renderer.to_a(:output => output)
|
85
86
|
output.to_a
|
86
87
|
end
|
87
88
|
|
data/lib/erector/output.rb
CHANGED
data/lib/erector/version.rb
CHANGED
@@ -231,7 +231,9 @@ require File.expand_path("#{File.dirname(__FILE__)}/../spec_helper")
|
|
231
231
|
widget.new.to_html(:content_method_name => :bar).should == "bar"
|
232
232
|
end
|
233
233
|
|
234
|
-
it "works when passing an existing output as a parameter to to_html"
|
234
|
+
it "works when passing an existing output as a parameter to to_html" do
|
235
|
+
pending
|
236
|
+
end
|
235
237
|
end
|
236
238
|
|
237
239
|
describe '#widget' do
|
@@ -98,6 +98,7 @@ module ExternalsSpec
|
|
98
98
|
x[1].text.should == "bar.js"
|
99
99
|
x[1].type.should == :js
|
100
100
|
end
|
101
|
+
|
101
102
|
it "adds multiple files from hash of different types" do
|
102
103
|
x = Test.send :interpret_args, :js => ["foo.js", "bar.js"], :css=>'file.css'
|
103
104
|
x.size.should == 3
|
@@ -105,6 +106,7 @@ module ExternalsSpec
|
|
105
106
|
x.map(&:text).include?('bar.js')
|
106
107
|
x.map(&:text).include?('file.css')
|
107
108
|
end
|
109
|
+
|
108
110
|
it "adds multiple files from hash and preserves the options" do
|
109
111
|
x = Test.send :interpret_args, :js => ["foo.js", "bar.js"], :foo=>false
|
110
112
|
x.size.should == 2
|
@@ -211,7 +213,7 @@ module ExternalsSpec
|
|
211
213
|
|
212
214
|
it "#render_with_externals sticks the externals for all its rendered sub-widgets at the end of the output buffer" do
|
213
215
|
s = Dinner.new.render_with_externals
|
214
|
-
s.
|
216
|
+
s.join.should ==
|
215
217
|
"<span>dinner</span>" +
|
216
218
|
"<span>dessert</span>" +
|
217
219
|
"<link href=\"/dessert.css\" media=\"all\" rel=\"stylesheet\" type=\"text/css\" />" +
|
@@ -222,7 +224,7 @@ module ExternalsSpec
|
|
222
224
|
it "#render_externals returns externals for all rendered sub-widgets to an output buffer" do
|
223
225
|
widget = Dinner.new
|
224
226
|
widget.to_html
|
225
|
-
widget.render_externals.
|
227
|
+
widget.render_externals.join.should ==
|
226
228
|
"<link href=\"/dessert.css\" media=\"all\" rel=\"stylesheet\" type=\"text/css\" />" +
|
227
229
|
"<script src=\"/dinner.js\" type=\"text/javascript\"></script>" +
|
228
230
|
"<script src=\"/dessert.js\" type=\"text/javascript\"></script>"
|
data/spec/erector/html_spec.rb
CHANGED
@@ -115,7 +115,7 @@ describe Erector::HTML do
|
|
115
115
|
object = ['a', 'b']
|
116
116
|
erector do
|
117
117
|
element 'div', object
|
118
|
-
end.should == "<div>#{object.to_s}</div>"
|
118
|
+
end.should == "<div>#{CGI.escapeHTML object.to_s}</div>"
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
@@ -224,11 +224,12 @@ describe Erector::HTML do
|
|
224
224
|
|
225
225
|
context "with a non-string, non-raw" do
|
226
226
|
it "calls to_s and quotes" do
|
227
|
+
array = [7, "foo&bar"]
|
227
228
|
erector do
|
228
229
|
element 'a' do
|
229
|
-
text
|
230
|
+
text array
|
230
231
|
end
|
231
|
-
end.should == "<a
|
232
|
+
end.should == "<a>#{CGI.escapeHTML array.to_s}</a>"
|
232
233
|
end
|
233
234
|
end
|
234
235
|
end
|
@@ -380,7 +381,7 @@ describe Erector::HTML do
|
|
380
381
|
# be pretty confusing when this method can already take either a name or number
|
381
382
|
lambda {
|
382
383
|
erector { text character([]) }
|
383
|
-
}.should raise_error("Unrecognized argument to character: ")
|
384
|
+
}.should raise_error("Unrecognized argument to character: #{[].to_s}")
|
384
385
|
end
|
385
386
|
end
|
386
387
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 61
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
9
|
+
- 1
|
10
|
+
version: 0.8.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Pivotal Labs
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-07-
|
18
|
+
date: 2010-07-17 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|