erector 0.8.3 → 0.9.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. data/Gemfile +21 -0
  2. data/Rakefile +171 -0
  3. data/VERSION.yml +3 -2
  4. data/lib/erector.rb +3 -5
  5. data/lib/erector/abstract_widget.rb +76 -31
  6. data/lib/erector/attributes.rb +34 -0
  7. data/lib/erector/caching.rb +1 -0
  8. data/lib/erector/convenience.rb +12 -4
  9. data/lib/erector/dependency.rb +2 -1
  10. data/lib/erector/element.rb +113 -0
  11. data/lib/erector/erect/erect.rb +10 -7
  12. data/lib/erector/externals.rb +2 -1
  13. data/lib/erector/html.rb +6 -340
  14. data/lib/erector/html_widget.rb +300 -0
  15. data/lib/erector/inline.rb +1 -1
  16. data/lib/erector/output.rb +39 -12
  17. data/lib/erector/promise.rb +137 -0
  18. data/lib/erector/rails2/extensions/rails_widget.rb +1 -1
  19. data/lib/erector/rails3.rb +1 -1
  20. data/lib/erector/sass.rb +14 -19
  21. data/lib/erector/tag.rb +65 -0
  22. data/lib/erector/text.rb +123 -0
  23. data/lib/erector/version.rb +1 -1
  24. data/lib/erector/widget.rb +52 -12
  25. data/lib/erector/widgets/page.rb +12 -10
  26. data/lib/erector/xml_widget.rb +131 -0
  27. data/spec/erector/caching_spec.rb +1 -0
  28. data/spec/erector/externals_spec.rb +0 -1
  29. data/spec/erector/html_spec.rb +9 -25
  30. data/spec/erector/output_spec.rb +102 -9
  31. data/spec/erector/promise_spec.rb +173 -0
  32. data/spec/erector/sass_spec.rb +1 -1
  33. data/spec/erector/tag_spec.rb +67 -0
  34. data/spec/erector/widget_spec.rb +53 -2
  35. data/spec/erector/xml_widget_spec.rb +74 -0
  36. data/spec/rails2/rails_app/Gemfile +1 -0
  37. data/spec/rails2/rails_app/spec/rails_spec_helper.rb +2 -0
  38. data/spec/rails_root/Gemfile +11 -0
  39. data/spec/rails_root/README +256 -0
  40. data/spec/rails_root/Rakefile +7 -0
  41. data/spec/rails_root/app/controllers/application.rb +6 -0
  42. data/spec/rails_root/app/controllers/application_controller.rb +3 -0
  43. data/spec/rails_root/app/helpers/application_helper.rb +2 -0
  44. data/spec/rails_root/app/views/layouts/application.html.erb +14 -0
  45. data/spec/rails_root/app/views/test/_erb.erb +1 -0
  46. data/spec/rails_root/app/views/test/_erector.rb +5 -0
  47. data/spec/rails_root/app/views/test/_partial_with_locals.rb +7 -0
  48. data/spec/rails_root/app/views/test/bare.rb +5 -0
  49. data/spec/rails_root/app/views/test/erb_from_erector.html.rb +5 -0
  50. data/spec/rails_root/app/views/test/erector_from_erb.html.erb +1 -0
  51. data/spec/rails_root/app/views/test/erector_with_locals_from_erb.html.erb +6 -0
  52. data/spec/rails_root/app/views/test/implicit_assigns.html.rb +5 -0
  53. data/spec/rails_root/app/views/test/needs.html.rb +7 -0
  54. data/spec/rails_root/app/views/test/needs_subclass.html.rb +5 -0
  55. data/spec/rails_root/app/views/test/protected_instance_variable.html.rb +5 -0
  56. data/spec/rails_root/app/views/test/render_default.html.rb +5 -0
  57. data/spec/rails_root/app/views/test/render_partial.html.rb +5 -0
  58. data/spec/rails_root/config.ru +4 -0
  59. data/spec/rails_root/config/application.rb +42 -0
  60. data/spec/rails_root/config/boot.rb +13 -0
  61. data/spec/rails_root/config/database.yml +22 -0
  62. data/spec/rails_root/config/environment.rb +5 -0
  63. data/spec/rails_root/config/environments/development.rb +22 -0
  64. data/spec/rails_root/config/environments/production.rb +49 -0
  65. data/spec/rails_root/config/environments/test.rb +35 -0
  66. data/spec/rails_root/config/initializers/backtrace_silencers.rb +7 -0
  67. data/spec/rails_root/config/initializers/inflections.rb +10 -0
  68. data/spec/rails_root/config/initializers/mime_types.rb +5 -0
  69. data/spec/rails_root/config/initializers/secret_token.rb +7 -0
  70. data/spec/rails_root/config/initializers/session_store.rb +8 -0
  71. data/spec/rails_root/config/locales/en.yml +5 -0
  72. data/spec/rails_root/config/routes.rb +58 -0
  73. data/spec/rails_root/db/seeds.rb +7 -0
  74. data/spec/rails_root/doc/README_FOR_APP +2 -0
  75. data/spec/rails_root/log/development.log +17 -0
  76. data/spec/rails_root/log/test.log +3750 -0
  77. data/spec/rails_root/public/404.html +26 -0
  78. data/spec/rails_root/public/422.html +26 -0
  79. data/spec/rails_root/public/500.html +26 -0
  80. data/spec/rails_root/public/dispatch.cgi +10 -0
  81. data/spec/rails_root/public/dispatch.fcgi +24 -0
  82. data/spec/rails_root/public/dispatch.rb +10 -0
  83. data/spec/rails_root/public/favicon.ico +0 -0
  84. data/spec/rails_root/public/images/rails.png +0 -0
  85. data/spec/rails_root/public/index.html +262 -0
  86. data/spec/rails_root/public/javascripts/application.js +2 -0
  87. data/spec/rails_root/public/javascripts/controls.js +965 -0
  88. data/spec/rails_root/public/javascripts/dragdrop.js +974 -0
  89. data/spec/rails_root/public/javascripts/effects.js +1123 -0
  90. data/spec/rails_root/public/javascripts/prototype.js +6001 -0
  91. data/spec/rails_root/public/javascripts/rails.js +175 -0
  92. data/spec/rails_root/public/robots.txt +5 -0
  93. data/spec/rails_root/script/about +3 -0
  94. data/spec/rails_root/script/console +3 -0
  95. data/spec/rails_root/script/destroy +3 -0
  96. data/spec/rails_root/script/generate +3 -0
  97. data/spec/rails_root/script/performance/benchmarker +3 -0
  98. data/spec/rails_root/script/performance/profiler +3 -0
  99. data/spec/rails_root/script/performance/request +3 -0
  100. data/spec/rails_root/script/plugin +3 -0
  101. data/spec/rails_root/script/process/inspector +3 -0
  102. data/spec/rails_root/script/process/reaper +3 -0
  103. data/spec/rails_root/script/process/spawner +3 -0
  104. data/spec/rails_root/script/rails +6 -0
  105. data/spec/rails_root/script/runner +3 -0
  106. data/spec/rails_root/script/server +3 -0
  107. data/spec/rails_root/spec/form_builder_spec.rb +21 -0
  108. data/spec/rails_root/spec/rails_helpers_spec.rb +220 -0
  109. data/spec/rails_root/spec/rails_spec_helper.rb +10 -0
  110. data/spec/rails_root/spec/rails_widget_spec.rb +83 -0
  111. data/spec/rails_root/spec/render_spec.rb +298 -0
  112. data/spec/rails_root/test/performance/browsing_test.rb +9 -0
  113. data/spec/rails_root/test/test_helper.rb +13 -0
  114. data/spec/spec_helper.rb +3 -1
  115. metadata +202 -66
@@ -0,0 +1,10 @@
1
+ ENV["RAILS_ENV"] ||= "test"
2
+ ENV["BUNDLE_GEMFILE"] ||= "#{File.dirname(__FILE__)}/../Gemfile"
3
+
4
+ here = File.expand_path(File.dirname(__FILE__))
5
+ require File.expand_path("#{here}/../../spec_helper", __FILE__)
6
+ require File.expand_path("#{here}/../config/environment", __FILE__)
7
+
8
+ Bundler.require(:test)
9
+
10
+ require "erector/rails"
@@ -0,0 +1,83 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/rails_spec_helper")
2
+
3
+ describe Erector::Rails do
4
+ include Erector::Mixin
5
+
6
+ before(:each) do
7
+ @view = ActionView::Base.new
8
+ end
9
+
10
+ def test_render(&block)
11
+ Erector::Rails.render(Erector.inline(&block), @view)
12
+ end
13
+
14
+ it "should be set up with the same output buffer as rails" do
15
+ test_render { output.buffer.should === parent.output_buffer }
16
+ end
17
+
18
+ it "should get a new output buffer every time" do
19
+ one = test_render { text "foo" }
20
+ two = test_render { text "foo" }
21
+ one.should == "foo"
22
+ two.should == "foo"
23
+ end
24
+
25
+ describe "#capture" do
26
+ it "captures parent output" do
27
+ captured = nil
28
+ test_render do
29
+ captured = capture do
30
+ parent.concat "capture me!"
31
+ end
32
+ end.should == ""
33
+ captured.should == "capture me!"
34
+ end
35
+
36
+ it "captures with an erector block" do
37
+ captured = nil
38
+ test_render do
39
+ captured = capture do
40
+ text 'capture me!'
41
+ end
42
+ end.should == ""
43
+ captured.should == "capture me!"
44
+ end
45
+
46
+ it "captures erector output when called via parent" do
47
+ test_render do
48
+ text "A"
49
+ c = parent.capture do
50
+ text "C"
51
+ end
52
+ text "B"
53
+ text c
54
+ end.should == "ABC"
55
+ end
56
+
57
+ it "returns a safe string" do
58
+ captured = nil
59
+ test_render do
60
+ captured = capture {}
61
+ end.should == ""
62
+ captured.should be_html_safe
63
+ end
64
+ end
65
+
66
+ describe "escaping" do
67
+ it "escapes non-safe strings" do
68
+ erector { text "<>&" }.should == "&lt;&gt;&amp;"
69
+ end
70
+
71
+ it "does not escape safe strings" do
72
+ erector { text "<>&".html_safe }.should == "<>&"
73
+ end
74
+
75
+ it "returns safe strings from capture" do
76
+ captured = nil
77
+ erector do
78
+ captured = capture {}
79
+ end
80
+ captured.should be_html_safe
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,298 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/rails_spec_helper")
2
+
3
+ describe ActionController::Base do
4
+ class TestController < ActionController::Base
5
+ # Let exceptions propagate rather than generating the usual error page.
6
+ include ActionController::TestCase::RaiseActionExceptions
7
+
8
+ # We need this, because we reference Views::Test::Needs below, and it
9
+ # doesn't auto-load otherwise.
10
+ require 'views/test/needs.html.rb'
11
+
12
+ def render_widget_class
13
+ @foobar = "foobar"
14
+ render :widget => TestWidget
15
+ end
16
+
17
+ def render_widget_with_ignored_controller_variables
18
+ @foo = "foo"
19
+ @baz = "baz"
20
+ render :widget => NeedsWidget
21
+ end
22
+
23
+ def render_widget_with_extra_controller_variables
24
+ with_ignoring_extra_controller_assigns(NeedsWidget, false) do
25
+ @foo = "foo"
26
+ @baz = "baz"
27
+ render :widget => NeedsWidget
28
+ end
29
+ end
30
+
31
+ def render_widget_instance
32
+ render :widget => TestWidget.new(:foobar => "foobar")
33
+ end
34
+
35
+ def render_with_content_method
36
+ render :widget => TestWidget, :content_method_name => :content_method
37
+ end
38
+
39
+ def render_with_rails_options
40
+ render :widget => TestWidget, :status => 500, :content_type => "application/json"
41
+ end
42
+
43
+ def render_template_with_implicit_assigns
44
+ @foobar = "foobar"
45
+ render :template => "test/implicit_assigns.html.rb"
46
+ end
47
+
48
+ def render_template_with_protected_instance_variable
49
+ render :template => "test/protected_instance_variable.html.rb"
50
+ end
51
+
52
+ def render_template_with_excess_variables
53
+ with_ignoring_extra_controller_assigns(Views::Test::Needs, false) do
54
+ @foobar = "foobar"
55
+ @barfoo = "barfoo"
56
+ render :template => 'test/render_default.html.rb'
57
+ end
58
+ end
59
+
60
+ def render_needs_template_with_excess_variables
61
+ with_ignoring_extra_controller_assigns(Views::Test::Needs, false) do
62
+ @foobar = "foobar"
63
+ @barfoo = "barfoo"
64
+ render :template => 'test/needs.html.rb'
65
+ end
66
+ end
67
+
68
+ def with_ignoring_extra_controller_assigns(klass, value)
69
+ old_value = klass.ignore_extra_controller_assigns
70
+ begin
71
+ klass.ignore_extra_controller_assigns = value
72
+ yield
73
+ ensure
74
+ klass.ignore_extra_controller_assigns = old_value
75
+ end
76
+ end
77
+
78
+ def render_needs_template_with_excess_variables_and_ignoring_extras
79
+ @foobar = "foobar"
80
+ @barfoo = "barfoo"
81
+ render :template => 'test/needs.html.rb'
82
+ end
83
+
84
+ def render_needs_subclass_template_with_excess_variables_and_ignoring_extras
85
+ @foobar = "foobar"
86
+ @barfoo = "barfoo"
87
+ render :template => 'test/needs_subclass.html.rb'
88
+ end
89
+
90
+ def render_bare_rb
91
+ render :template => "test/bare.rb"
92
+ end
93
+
94
+ def render_default
95
+ @foobar = "foobar"
96
+ end
97
+
98
+ def render_template_with_partial
99
+ @foobar = "foobar"
100
+ render :template => "test/render_partial.html.rb"
101
+ end
102
+
103
+ def render_erb_from_erector
104
+ @foobar = "foobar"
105
+ render :template => "test/erb_from_erector.html.rb"
106
+ end
107
+
108
+ def render_erector_from_erb
109
+ @foobar = "foobar"
110
+ render :template => "test/erector_from_erb.html.erb"
111
+ end
112
+
113
+ def render_erector_with_locals_from_erb
114
+ @local_foo = "hihi"
115
+ @local_bar = "byebye"
116
+ render :template => 'test/erector_with_locals_from_erb.html.erb'
117
+ end
118
+
119
+ def render_erector_with_locals_from_erb_defaulted
120
+ @local_foo = "hihi"
121
+ render :template => 'test/erector_with_locals_from_erb.html.erb'
122
+ end
123
+
124
+ def render_erector_with_locals_from_erb_override
125
+ @foo = "globalfoo"
126
+ @local_foo = "localfoo"
127
+ render :template => 'test/erector_with_locals_from_erb.html.erb'
128
+ end
129
+
130
+ def render_erector_with_locals_from_erb_not_needed
131
+ @local_foo = "localfoo"
132
+ @local_baz = "unneeded"
133
+ render :template => 'test/erector_with_locals_from_erb.html.erb'
134
+ end
135
+
136
+ def render_erector_partial_with_unneeded_controller_variables
137
+ @local_foo = "localfoo"
138
+ @baz = "unneeded"
139
+ render :template => 'test/erector_with_locals_from_erb.html.erb'
140
+ end
141
+
142
+ def with_controller_assigns_propagate_to_partials(klass, value)
143
+ old_value = klass.controller_assigns_propagate_to_partials
144
+ begin
145
+ klass.controller_assigns_propagate_to_partials = value
146
+ yield
147
+ ensure
148
+ klass.controller_assigns_propagate_to_partials = old_value
149
+ end
150
+ end
151
+
152
+ def render_erector_partial_without_controller_variables
153
+ with_controller_assigns_propagate_to_partials(Views::Test::PartialWithLocals, false) do
154
+ @local_foo = "localfoo"
155
+ @bar = "barbar"
156
+ render :template => 'test/erector_with_locals_from_erb.html.erb'
157
+ end
158
+ end
159
+
160
+ def render_with_needs
161
+ @foo = "foo"
162
+ @bar = "bar"
163
+ render :widget => NeedsWidget
164
+ end
165
+ end
166
+
167
+ class TestWidget < Erector::Widget
168
+ def content
169
+ text @foobar
170
+ end
171
+
172
+ def content_method
173
+ text "content_method"
174
+ end
175
+ end
176
+
177
+ class TestFormWidget < Erector::Widget
178
+ def content
179
+ form_tag('/') do
180
+ h1 "Create a foo"
181
+ rawtext text_field_tag(:name)
182
+ end
183
+ end
184
+ end
185
+
186
+ class NeedsWidget < Erector::Widget
187
+ needs :foo, :bar => true
188
+
189
+ def content
190
+ text "foo #{@foo} bar #{@bar}"
191
+ end
192
+ end
193
+
194
+ def test_action(action)
195
+ @response = TestController.action(action).call(Rack::MockRequest.env_for("/path"))[2]
196
+ @response.body
197
+ end
198
+
199
+ describe "#render" do
200
+ it "should render a widget class with implicit assigns" do
201
+ test_action(:render_widget_class).should == "foobar"
202
+ end
203
+
204
+ it "should render a widget instance with explicit assigns" do
205
+ test_action(:render_widget_instance).should == "foobar"
206
+ end
207
+
208
+ it "should render a widget class with implicit assigns and ignoring extra variables" do
209
+ test_action(:render_widget_with_ignored_controller_variables).should == "foo foo bar true"
210
+ end
211
+
212
+ it "should raise when rendering a widget class with implicit assigns and too many variables" do
213
+ proc { test_action(:render_widget_with_extra_controller_variables) }.should raise_error(RuntimeError, /Excess parameters?.*: .*baz/)
214
+ end
215
+
216
+ it "should render a specific content method" do
217
+ test_action(:render_with_content_method).should == "content_method"
218
+ end
219
+
220
+ it "should pass rails options to base render method" do
221
+ test_action(:render_with_rails_options)
222
+ @response.response_code.should == 500
223
+ @response.content_type.should == "application/json"
224
+ end
225
+
226
+ it "should render a template with implicit assigns" do
227
+ test_action(:render_template_with_implicit_assigns).should == "foobar"
228
+ end
229
+
230
+ it "should not include protected instance variables in assigns" do
231
+ test_action(:render_template_with_protected_instance_variable).should == ""
232
+ end
233
+
234
+ it "should render a template without a .html format included" do
235
+ test_action(:render_bare_rb).should == "Bare"
236
+ end
237
+
238
+ it "should render a template with excess controller variables" do
239
+ test_action(:render_template_with_excess_variables).should == "Default foobar"
240
+ end
241
+
242
+ it "should raise if rendering a #needs template with excess controller variables" do
243
+ proc { test_action(:render_needs_template_with_excess_variables) }.should raise_error(ActionView::TemplateError, /Excess parameters?.*: .*barfoo/)
244
+ end
245
+
246
+ it "should render a #needs template with excess controller variables and ignore_extra_controller_assigns" do
247
+ test_action(:render_needs_template_with_excess_variables_and_ignoring_extras).should == "Needs foobar"
248
+ end
249
+
250
+ it "should respect ignore_extra_controller_assigns in subclasses" do
251
+ test_action(:render_needs_subclass_template_with_excess_variables_and_ignoring_extras).should == "NeedsSubclass foobar"
252
+ end
253
+
254
+ it "should render a template which uses partials" do
255
+ test_action(:render_template_with_partial).should == "Partial foobar"
256
+ end
257
+
258
+ it "should render an erector widget which uses an ERB partial'" do
259
+ test_action(:render_erb_from_erector).should == "Partial foobar"
260
+ end
261
+
262
+ it "should render an ERB template which uses an erector widget partial" do
263
+ test_action(:render_erector_from_erb).should == "Partial foobar"
264
+ end
265
+
266
+ it "should render an ERB template which uses an erector widget partial with locals" do
267
+ test_action(:render_erector_with_locals_from_erb).should == "Partial, foo hihi, bar byebye"
268
+ end
269
+
270
+ it "should render an ERB template which uses an erector widget partial with a defaulted local" do
271
+ test_action(:render_erector_with_locals_from_erb_defaulted).should == "Partial, foo hihi, bar 12345"
272
+ end
273
+
274
+ it "should override instance variables with local variables when rendering partials" do
275
+ test_action(:render_erector_with_locals_from_erb_override).should == "Partial, foo localfoo, bar 12345"
276
+ end
277
+
278
+ it "should raise if passing a local that's not needed" do
279
+ proc { test_action(:render_erector_with_locals_from_erb_not_needed) }.should raise_error(ActionView::TemplateError, /Excess parameters?.*: .*baz/)
280
+ end
281
+
282
+ it "should not pass unneeded controller variables to a partial" do
283
+ test_action(:render_erector_partial_with_unneeded_controller_variables).should == "Partial, foo localfoo, bar 12345"
284
+ end
285
+
286
+ it "should not pass controller variables to a partial at all, if requested" do
287
+ test_action(:render_erector_partial_without_controller_variables).should == "Partial, foo localfoo, bar 12345"
288
+ end
289
+
290
+ it "should render a default template" do
291
+ test_action(:render_default).should == "Default foobar"
292
+ end
293
+
294
+ it "should allow rendering widget with needs" do
295
+ proc { test_action(:render_with_needs) }.should_not raise_error
296
+ end
297
+ end
298
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+ require 'rails/performance_test_help'
3
+
4
+ # Profiling results for each test method are written to tmp/performance.
5
+ class BrowsingTest < ActionDispatch::PerformanceTest
6
+ def test_homepage
7
+ get '/'
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ require File.expand_path('../../config/environment', __FILE__)
3
+ require 'rails/test_help'
4
+
5
+ class ActiveSupport::TestCase
6
+ # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
7
+ #
8
+ # Note: You'll currently still have to declare fixtures explicitly in integration tests
9
+ # -- they do not yet inherit this setting
10
+ fixtures :all
11
+
12
+ # Add more helper methods to be used by all tests here...
13
+ end
@@ -4,7 +4,6 @@ require "rubygems"
4
4
  require "bundler"
5
5
  Bundler.setup
6
6
 
7
- require "erector"
8
7
  require "nokogiri"
9
8
  require "rr"
10
9
  require 'tempfile'
@@ -14,6 +13,9 @@ require "rspec/autorun"
14
13
  require "open3"
15
14
 
16
15
  require "wrong/adapters/rspec"
16
+ include Wrong::D
17
+
18
+ require "erector"
17
19
 
18
20
  unless '1.9'.respond_to?(:force_encoding)
19
21
  String.class_eval do
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
5
- prerelease:
4
+ version: 0.9.0.pre1
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Alex Chaffee
@@ -17,29 +17,18 @@ date: 2011-07-23 00:00:00.000000000Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: treetop
20
- requirement: &2156352300 !ruby/object:Gem::Requirement
20
+ requirement: &2165518380 !ruby/object:Gem::Requirement
21
21
  none: false
22
22
  requirements:
23
23
  - - ! '>='
24
24
  - !ruby/object:Gem::Version
25
- version: '0'
26
- type: :runtime
27
- prerelease: false
28
- version_requirements: *2156352300
29
- - !ruby/object:Gem::Dependency
30
- name: rake
31
- requirement: &2156348780 !ruby/object:Gem::Requirement
32
- none: false
33
- requirements:
34
- - - ! '>='
35
- - !ruby/object:Gem::Version
36
- version: '0'
25
+ version: 1.2.3
37
26
  type: :runtime
38
27
  prerelease: false
39
- version_requirements: *2156348780
28
+ version_requirements: *2165518380
40
29
  - !ruby/object:Gem::Dependency
41
30
  name: activesupport
42
- requirement: &2156339520 !ruby/object:Gem::Requirement
31
+ requirement: &2165517640 !ruby/object:Gem::Requirement
43
32
  none: false
44
33
  requirements:
45
34
  - - ~>
@@ -47,10 +36,10 @@ dependencies:
47
36
  version: '3'
48
37
  type: :development
49
38
  prerelease: false
50
- version_requirements: *2156339520
39
+ version_requirements: *2165517640
51
40
  - !ruby/object:Gem::Dependency
52
41
  name: rspec
53
- requirement: &2156327880 !ruby/object:Gem::Requirement
42
+ requirement: &2165516760 !ruby/object:Gem::Requirement
54
43
  none: false
55
44
  requirements:
56
45
  - - ~>
@@ -58,10 +47,10 @@ dependencies:
58
47
  version: '2'
59
48
  type: :development
60
49
  prerelease: false
61
- version_requirements: *2156327880
50
+ version_requirements: *2165516760
62
51
  - !ruby/object:Gem::Dependency
63
52
  name: rubyforge
64
- requirement: &2156324400 !ruby/object:Gem::Requirement
53
+ requirement: &2165515900 !ruby/object:Gem::Requirement
65
54
  none: false
66
55
  requirements:
67
56
  - - ! '>='
@@ -69,10 +58,10 @@ dependencies:
69
58
  version: '0'
70
59
  type: :development
71
60
  prerelease: false
72
- version_requirements: *2156324400
61
+ version_requirements: *2165515900
73
62
  - !ruby/object:Gem::Dependency
74
63
  name: rr
75
- requirement: &2156313460 !ruby/object:Gem::Requirement
64
+ requirement: &2165515180 !ruby/object:Gem::Requirement
76
65
  none: false
77
66
  requirements:
78
67
  - - ! '>='
@@ -80,10 +69,10 @@ dependencies:
80
69
  version: '0'
81
70
  type: :development
82
71
  prerelease: false
83
- version_requirements: *2156313460
72
+ version_requirements: *2165515180
84
73
  - !ruby/object:Gem::Dependency
85
74
  name: nokogiri
86
- requirement: &2156305000 !ruby/object:Gem::Requirement
75
+ requirement: &2165514340 !ruby/object:Gem::Requirement
87
76
  none: false
88
77
  requirements:
89
78
  - - ! '>='
@@ -91,10 +80,10 @@ dependencies:
91
80
  version: '0'
92
81
  type: :development
93
82
  prerelease: false
94
- version_requirements: *2156305000
83
+ version_requirements: *2165514340
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: jeweler
97
- requirement: &2156294560 !ruby/object:Gem::Requirement
86
+ requirement: &2165513500 !ruby/object:Gem::Requirement
98
87
  none: false
99
88
  requirements:
100
89
  - - ! '>='
@@ -102,10 +91,10 @@ dependencies:
102
91
  version: '0'
103
92
  type: :development
104
93
  prerelease: false
105
- version_requirements: *2156294560
94
+ version_requirements: *2165513500
106
95
  - !ruby/object:Gem::Dependency
107
96
  name: haml
108
- requirement: &2156278680 !ruby/object:Gem::Requirement
97
+ requirement: &2165512700 !ruby/object:Gem::Requirement
109
98
  none: false
110
99
  requirements:
111
100
  - - ! '>='
@@ -113,10 +102,10 @@ dependencies:
113
102
  version: '0'
114
103
  type: :development
115
104
  prerelease: false
116
- version_requirements: *2156278680
105
+ version_requirements: *2165512700
117
106
  - !ruby/object:Gem::Dependency
118
107
  name: sass
119
- requirement: &2156269660 !ruby/object:Gem::Requirement
108
+ requirement: &2165511820 !ruby/object:Gem::Requirement
120
109
  none: false
121
110
  requirements:
122
111
  - - ! '>='
@@ -124,10 +113,10 @@ dependencies:
124
113
  version: '0'
125
114
  type: :development
126
115
  prerelease: false
127
- version_requirements: *2156269660
116
+ version_requirements: *2165511820
128
117
  - !ruby/object:Gem::Dependency
129
118
  name: erubis
130
- requirement: &2156267940 !ruby/object:Gem::Requirement
119
+ requirement: &2165511060 !ruby/object:Gem::Requirement
131
120
  none: false
132
121
  requirements:
133
122
  - - ! '>='
@@ -135,10 +124,10 @@ dependencies:
135
124
  version: '0'
136
125
  type: :development
137
126
  prerelease: false
138
- version_requirements: *2156267940
127
+ version_requirements: *2165511060
139
128
  - !ruby/object:Gem::Dependency
140
129
  name: rdoc
141
- requirement: &2156264860 !ruby/object:Gem::Requirement
130
+ requirement: &2165510240 !ruby/object:Gem::Requirement
142
131
  none: false
143
132
  requirements:
144
133
  - - ~>
@@ -146,40 +135,18 @@ dependencies:
146
135
  version: '2.3'
147
136
  type: :development
148
137
  prerelease: false
149
- version_requirements: *2156264860
138
+ version_requirements: *2165510240
150
139
  - !ruby/object:Gem::Dependency
151
140
  name: wrong
152
- requirement: &2156249840 !ruby/object:Gem::Requirement
141
+ requirement: &2165509440 !ruby/object:Gem::Requirement
153
142
  none: false
154
143
  requirements:
155
144
  - - ! '>='
156
145
  - !ruby/object:Gem::Version
157
- version: '0'
146
+ version: 0.5.4
158
147
  type: :development
159
148
  prerelease: false
160
- version_requirements: *2156249840
161
- - !ruby/object:Gem::Dependency
162
- name: treetop
163
- requirement: &2156238400 !ruby/object:Gem::Requirement
164
- none: false
165
- requirements:
166
- - - ! '>='
167
- - !ruby/object:Gem::Version
168
- version: 1.2.3
169
- type: :runtime
170
- prerelease: false
171
- version_requirements: *2156238400
172
- - !ruby/object:Gem::Dependency
173
- name: rake
174
- requirement: &2156215560 !ruby/object:Gem::Requirement
175
- none: false
176
- requirements:
177
- - - ! '>='
178
- - !ruby/object:Gem::Version
179
- version: '0'
180
- type: :runtime
181
- prerelease: false
182
- version_requirements: *2156215560
149
+ version_requirements: *2165509440
183
150
  description: Erector is a Builder-like view framework, inspired by Markaby but overcoming
184
151
  some of its flaws. In Erector all views are objects, not template files, which allows
185
152
  the full power of object-oriented programming (inheritance, modular decomposition,
@@ -197,21 +164,25 @@ files:
197
164
  - lib/erector.rb
198
165
  - lib/erector/abstract_widget.rb
199
166
  - lib/erector/after_initialize.rb
167
+ - lib/erector/attributes.rb
200
168
  - lib/erector/caching.rb
201
169
  - lib/erector/convenience.rb
202
170
  - lib/erector/dependencies.rb
203
171
  - lib/erector/dependency.rb
172
+ - lib/erector/element.rb
204
173
  - lib/erector/erect/erect.rb
205
174
  - lib/erector/erect/erected.rb
206
175
  - lib/erector/erect/indenting.rb
207
176
  - lib/erector/erect/rhtml.treetop
208
177
  - lib/erector/externals.rb
209
178
  - lib/erector/html.rb
179
+ - lib/erector/html_widget.rb
210
180
  - lib/erector/inline.rb
211
181
  - lib/erector/jquery.rb
212
182
  - lib/erector/mixin.rb
213
183
  - lib/erector/needs.rb
214
184
  - lib/erector/output.rb
185
+ - lib/erector/promise.rb
215
186
  - lib/erector/rails.rb
216
187
  - lib/erector/rails/form_builder.rb
217
188
  - lib/erector/rails/railtie.rb
@@ -228,6 +199,8 @@ files:
228
199
  - lib/erector/rails3.rb
229
200
  - lib/erector/raw_string.rb
230
201
  - lib/erector/sass.rb
202
+ - lib/erector/tag.rb
203
+ - lib/erector/text.rb
231
204
  - lib/erector/unicode.rb
232
205
  - lib/erector/unicode_builder.rb
233
206
  - lib/erector/version.rb
@@ -239,6 +212,9 @@ files:
239
212
  - lib/erector/widgets/form.rb
240
213
  - lib/erector/widgets/page.rb
241
214
  - lib/erector/widgets/table.rb
215
+ - lib/erector/xml_widget.rb
216
+ - Rakefile
217
+ - Gemfile
242
218
  - spec/erect/erect_rails_spec.rb
243
219
  - spec/erect/erect_spec.rb
244
220
  - spec/erect/erected_spec.rb
@@ -256,14 +232,17 @@ files:
256
232
  - spec/erector/mixin_spec.rb
257
233
  - spec/erector/needs_spec.rb
258
234
  - spec/erector/output_spec.rb
235
+ - spec/erector/promise_spec.rb
259
236
  - spec/erector/sample-file.txt
260
237
  - spec/erector/sass_spec.rb
238
+ - spec/erector/tag_spec.rb
261
239
  - spec/erector/unicode_builder_spec.rb
262
240
  - spec/erector/widget_spec.rb
263
241
  - spec/erector/widgets/field_table_spec.rb
264
242
  - spec/erector/widgets/form_spec.rb
265
243
  - spec/erector/widgets/page_spec.rb
266
244
  - spec/erector/widgets/table_spec.rb
245
+ - spec/erector/xml_widget_spec.rb
267
246
  - spec/rails2/erect_rails_spec.rb
268
247
  - spec/rails2/rails_app/app/controllers/application_controller.rb
269
248
  - spec/rails2/rails_app/app/helpers/application_helper.rb
@@ -355,6 +334,82 @@ files:
355
334
  - spec/rails2/rails_app/vendor/plugins/rails_xss/test/rails_xss_test.rb
356
335
  - spec/rails2/rails_app/vendor/plugins/rails_xss/test/test_helper.rb
357
336
  - spec/rails2/rails_app/vendor/plugins/rails_xss/test/text_helper_test.rb
337
+ - spec/rails_root/app/controllers/application.rb
338
+ - spec/rails_root/app/controllers/application_controller.rb
339
+ - spec/rails_root/app/helpers/application_helper.rb
340
+ - spec/rails_root/app/views/layouts/application.html.erb
341
+ - spec/rails_root/app/views/test/_erb.erb
342
+ - spec/rails_root/app/views/test/_erector.rb
343
+ - spec/rails_root/app/views/test/_partial_with_locals.rb
344
+ - spec/rails_root/app/views/test/bare.rb
345
+ - spec/rails_root/app/views/test/erb_from_erector.html.rb
346
+ - spec/rails_root/app/views/test/erector_from_erb.html.erb
347
+ - spec/rails_root/app/views/test/erector_with_locals_from_erb.html.erb
348
+ - spec/rails_root/app/views/test/implicit_assigns.html.rb
349
+ - spec/rails_root/app/views/test/needs.html.rb
350
+ - spec/rails_root/app/views/test/needs_subclass.html.rb
351
+ - spec/rails_root/app/views/test/protected_instance_variable.html.rb
352
+ - spec/rails_root/app/views/test/render_default.html.rb
353
+ - spec/rails_root/app/views/test/render_partial.html.rb
354
+ - spec/rails_root/config/application.rb
355
+ - spec/rails_root/config/boot.rb
356
+ - spec/rails_root/config/database.yml
357
+ - spec/rails_root/config/environment.rb
358
+ - spec/rails_root/config/environments/development.rb
359
+ - spec/rails_root/config/environments/production.rb
360
+ - spec/rails_root/config/environments/test.rb
361
+ - spec/rails_root/config/initializers/backtrace_silencers.rb
362
+ - spec/rails_root/config/initializers/inflections.rb
363
+ - spec/rails_root/config/initializers/mime_types.rb
364
+ - spec/rails_root/config/initializers/secret_token.rb
365
+ - spec/rails_root/config/initializers/session_store.rb
366
+ - spec/rails_root/config/locales/en.yml
367
+ - spec/rails_root/config/routes.rb
368
+ - spec/rails_root/config.ru
369
+ - spec/rails_root/db/seeds.rb
370
+ - spec/rails_root/doc/README_FOR_APP
371
+ - spec/rails_root/Gemfile
372
+ - spec/rails_root/log/development.log
373
+ - spec/rails_root/log/test.log
374
+ - spec/rails_root/public/404.html
375
+ - spec/rails_root/public/422.html
376
+ - spec/rails_root/public/500.html
377
+ - spec/rails_root/public/dispatch.cgi
378
+ - spec/rails_root/public/dispatch.fcgi
379
+ - spec/rails_root/public/dispatch.rb
380
+ - spec/rails_root/public/favicon.ico
381
+ - spec/rails_root/public/images/rails.png
382
+ - spec/rails_root/public/index.html
383
+ - spec/rails_root/public/javascripts/application.js
384
+ - spec/rails_root/public/javascripts/controls.js
385
+ - spec/rails_root/public/javascripts/dragdrop.js
386
+ - spec/rails_root/public/javascripts/effects.js
387
+ - spec/rails_root/public/javascripts/prototype.js
388
+ - spec/rails_root/public/javascripts/rails.js
389
+ - spec/rails_root/public/robots.txt
390
+ - spec/rails_root/Rakefile
391
+ - spec/rails_root/README
392
+ - spec/rails_root/script/about
393
+ - spec/rails_root/script/console
394
+ - spec/rails_root/script/destroy
395
+ - spec/rails_root/script/generate
396
+ - spec/rails_root/script/performance/benchmarker
397
+ - spec/rails_root/script/performance/profiler
398
+ - spec/rails_root/script/performance/request
399
+ - spec/rails_root/script/plugin
400
+ - spec/rails_root/script/process/inspector
401
+ - spec/rails_root/script/process/reaper
402
+ - spec/rails_root/script/process/spawner
403
+ - spec/rails_root/script/rails
404
+ - spec/rails_root/script/runner
405
+ - spec/rails_root/script/server
406
+ - spec/rails_root/spec/form_builder_spec.rb
407
+ - spec/rails_root/spec/rails_helpers_spec.rb
408
+ - spec/rails_root/spec/rails_spec_helper.rb
409
+ - spec/rails_root/spec/rails_widget_spec.rb
410
+ - spec/rails_root/spec/render_spec.rb
411
+ - spec/rails_root/test/performance/browsing_test.rb
412
+ - spec/rails_root/test/test_helper.rb
358
413
  - spec/spec_helper.rb
359
414
  homepage: http://erector.rubyforge.org/
360
415
  licenses: []
@@ -370,20 +425,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
370
425
  version: '0'
371
426
  segments:
372
427
  - 0
373
- hash: -2892608317364591105
428
+ hash: 2103254179861366660
374
429
  required_rubygems_version: !ruby/object:Gem::Requirement
375
430
  none: false
376
431
  requirements:
377
- - - ! '>='
432
+ - - ! '>'
378
433
  - !ruby/object:Gem::Version
379
- version: '0'
434
+ version: 1.3.1
380
435
  requirements: []
381
- rubyforge_project: erector
436
+ rubyforge_project:
382
437
  rubygems_version: 1.8.5
383
438
  signing_key:
384
439
  specification_version: 3
385
- summary: Html Builder library.
440
+ summary: HTML/XML Builder library
386
441
  test_files:
442
+ - Rakefile
443
+ - Gemfile
387
444
  - spec/erect/erect_rails_spec.rb
388
445
  - spec/erect/erect_spec.rb
389
446
  - spec/erect/erected_spec.rb
@@ -401,14 +458,17 @@ test_files:
401
458
  - spec/erector/mixin_spec.rb
402
459
  - spec/erector/needs_spec.rb
403
460
  - spec/erector/output_spec.rb
461
+ - spec/erector/promise_spec.rb
404
462
  - spec/erector/sample-file.txt
405
463
  - spec/erector/sass_spec.rb
464
+ - spec/erector/tag_spec.rb
406
465
  - spec/erector/unicode_builder_spec.rb
407
466
  - spec/erector/widget_spec.rb
408
467
  - spec/erector/widgets/field_table_spec.rb
409
468
  - spec/erector/widgets/form_spec.rb
410
469
  - spec/erector/widgets/page_spec.rb
411
470
  - spec/erector/widgets/table_spec.rb
471
+ - spec/erector/xml_widget_spec.rb
412
472
  - spec/rails2/erect_rails_spec.rb
413
473
  - spec/rails2/rails_app/app/controllers/application_controller.rb
414
474
  - spec/rails2/rails_app/app/helpers/application_helper.rb
@@ -500,4 +560,80 @@ test_files:
500
560
  - spec/rails2/rails_app/vendor/plugins/rails_xss/test/rails_xss_test.rb
501
561
  - spec/rails2/rails_app/vendor/plugins/rails_xss/test/test_helper.rb
502
562
  - spec/rails2/rails_app/vendor/plugins/rails_xss/test/text_helper_test.rb
563
+ - spec/rails_root/app/controllers/application.rb
564
+ - spec/rails_root/app/controllers/application_controller.rb
565
+ - spec/rails_root/app/helpers/application_helper.rb
566
+ - spec/rails_root/app/views/layouts/application.html.erb
567
+ - spec/rails_root/app/views/test/_erb.erb
568
+ - spec/rails_root/app/views/test/_erector.rb
569
+ - spec/rails_root/app/views/test/_partial_with_locals.rb
570
+ - spec/rails_root/app/views/test/bare.rb
571
+ - spec/rails_root/app/views/test/erb_from_erector.html.rb
572
+ - spec/rails_root/app/views/test/erector_from_erb.html.erb
573
+ - spec/rails_root/app/views/test/erector_with_locals_from_erb.html.erb
574
+ - spec/rails_root/app/views/test/implicit_assigns.html.rb
575
+ - spec/rails_root/app/views/test/needs.html.rb
576
+ - spec/rails_root/app/views/test/needs_subclass.html.rb
577
+ - spec/rails_root/app/views/test/protected_instance_variable.html.rb
578
+ - spec/rails_root/app/views/test/render_default.html.rb
579
+ - spec/rails_root/app/views/test/render_partial.html.rb
580
+ - spec/rails_root/config/application.rb
581
+ - spec/rails_root/config/boot.rb
582
+ - spec/rails_root/config/database.yml
583
+ - spec/rails_root/config/environment.rb
584
+ - spec/rails_root/config/environments/development.rb
585
+ - spec/rails_root/config/environments/production.rb
586
+ - spec/rails_root/config/environments/test.rb
587
+ - spec/rails_root/config/initializers/backtrace_silencers.rb
588
+ - spec/rails_root/config/initializers/inflections.rb
589
+ - spec/rails_root/config/initializers/mime_types.rb
590
+ - spec/rails_root/config/initializers/secret_token.rb
591
+ - spec/rails_root/config/initializers/session_store.rb
592
+ - spec/rails_root/config/locales/en.yml
593
+ - spec/rails_root/config/routes.rb
594
+ - spec/rails_root/config.ru
595
+ - spec/rails_root/db/seeds.rb
596
+ - spec/rails_root/doc/README_FOR_APP
597
+ - spec/rails_root/Gemfile
598
+ - spec/rails_root/log/development.log
599
+ - spec/rails_root/log/test.log
600
+ - spec/rails_root/public/404.html
601
+ - spec/rails_root/public/422.html
602
+ - spec/rails_root/public/500.html
603
+ - spec/rails_root/public/dispatch.cgi
604
+ - spec/rails_root/public/dispatch.fcgi
605
+ - spec/rails_root/public/dispatch.rb
606
+ - spec/rails_root/public/favicon.ico
607
+ - spec/rails_root/public/images/rails.png
608
+ - spec/rails_root/public/index.html
609
+ - spec/rails_root/public/javascripts/application.js
610
+ - spec/rails_root/public/javascripts/controls.js
611
+ - spec/rails_root/public/javascripts/dragdrop.js
612
+ - spec/rails_root/public/javascripts/effects.js
613
+ - spec/rails_root/public/javascripts/prototype.js
614
+ - spec/rails_root/public/javascripts/rails.js
615
+ - spec/rails_root/public/robots.txt
616
+ - spec/rails_root/Rakefile
617
+ - spec/rails_root/README
618
+ - spec/rails_root/script/about
619
+ - spec/rails_root/script/console
620
+ - spec/rails_root/script/destroy
621
+ - spec/rails_root/script/generate
622
+ - spec/rails_root/script/performance/benchmarker
623
+ - spec/rails_root/script/performance/profiler
624
+ - spec/rails_root/script/performance/request
625
+ - spec/rails_root/script/plugin
626
+ - spec/rails_root/script/process/inspector
627
+ - spec/rails_root/script/process/reaper
628
+ - spec/rails_root/script/process/spawner
629
+ - spec/rails_root/script/rails
630
+ - spec/rails_root/script/runner
631
+ - spec/rails_root/script/server
632
+ - spec/rails_root/spec/form_builder_spec.rb
633
+ - spec/rails_root/spec/rails_helpers_spec.rb
634
+ - spec/rails_root/spec/rails_spec_helper.rb
635
+ - spec/rails_root/spec/rails_widget_spec.rb
636
+ - spec/rails_root/spec/render_spec.rb
637
+ - spec/rails_root/test/performance/browsing_test.rb
638
+ - spec/rails_root/test/test_helper.rb
503
639
  - spec/spec_helper.rb