Skip to content
This repository
Browse code

prepare 0.9.0 release

  • Loading branch information...
commit 0537e176bd1321dca688a36d59e0682437344d0b 1 parent 52c6e28
Alex Chaffee authored
7  History.txt
... ...
@@ -1,4 +1,4 @@
1  
-== 0.9.0
  1
+== 0.9.0 - 2012-08-12
2 2
 
3 3
 * Finally merged bigfix/rails3 branch - Erector now works with either Rails 2 or Rails 3 (or neither)
4 4
 * 'scss' external type [needs tests]
@@ -10,6 +10,7 @@
10 10
 * remove dependency on rake gem
11 11
 * rename 'render' method to 'emit' (to reduce confusion with Rails' "render" methods)
12 12
 * Add missing favicon_link_tag and crsf_meta_tags helper methods
  13
+* Add #capture_content as an alias for #capture, so we can call it in a Rails 3.1 app
13 14
 
14 15
 Deprecated or Removed:
15 16
 
@@ -47,7 +48,7 @@ Core:
47 48
 * delegate method_missing to parent widget
48 49
 * 'embed' and 'param' are now self-closing tags (as per browser warnings)
49 50
 * Converted Widget#context to take a params hash.
50  
-* Exposed an Output object, with rather useful #placeholder method 
  51
+* Exposed an Output object, with rather useful #placeholder method
51 52
 * Defined Widget#output to delegate to #parent if @parent is not already set.
52 53
 * Removed :parent param for Output#initialize in favor of a block.
53 54
 * Page#extra_widgets
@@ -149,7 +150,7 @@ Erector tool:
149 150
 and there should be an upgrade guide up on the website soon.
150 151
 * 'render' renamed to 'content'
151 152
 * widget constructor only takes one parameter, an 'assigns' hash (plus the optional default block)
152  
-* to render one widget from inside another, use the 'widget' method (not 'render_to'). This method 
  153
+* to render one widget from inside another, use the 'widget' method (not 'render_to'). This method
153 154
 accepts either a widget instance, or a widget class and an assigns hash.
154 155
 * 'needs' macro to declare the variables your widget accepts via the 'assigns' constructor parameter
155 156
 * Removed Widget#to_html caching, which fixed indentation issues.
3  VERSION.yml
... ...
@@ -1,5 +1,4 @@
1  
---- 
  1
+---
2 2
 :major: 0
3 3
 :minor: 9
4 4
 :patch: 0
5  
-:build: pre2
2  web/cheatsheet.html
@@ -47,7 +47,7 @@
47 47
   border: 1px solid gray;
48 48
   padding: .5em 1em;
49 49
   overflow: auto;
50  
-  font-family: Inconsolata,                Consolas,                "Andale Mono",                "Lucida Console",                "Lucida Sans Typewriter",                "DejaVu Sans Mono",                "Bitstream Vera Sans Mono",                "Liberation Mono",                "Nimbus Mono L",                Monaco,                "Courier New",                Courier,                monospace; }
  50
+  font-family: Inconsolata, Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; }
51 51
 
52 52
 pre.sh_html {
53 53
   background-color: #FFFADE; }
4  web/community.html
@@ -47,7 +47,7 @@
47 47
   border: 1px solid gray;
48 48
   padding: .5em 1em;
49 49
   overflow: auto;
50  
-  font-family: Inconsolata,                Consolas,                "Andale Mono",                "Lucida Console",                "Lucida Sans Typewriter",                "DejaVu Sans Mono",                "Bitstream Vera Sans Mono",                "Liberation Mono",                "Nimbus Mono L",                Monaco,                "Courier New",                Courier,                monospace; }
  50
+  font-family: Inconsolata, Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; }
51 51
 
52 52
 pre.sh_html {
53 53
   background-color: #FFFADE; }
@@ -235,7 +235,7 @@
235 235
           <li class="clickable" onclick="document.location='http://rubyforge.org/projects/erector/'"><a href="http://rubyforge.org/projects/erector/">RubyForge Project</a></li>
236 236
           <li class="clickable" onclick="document.location='http://rubyforge.org/pipermail/erector-devel/'"><a href="http://rubyforge.org/pipermail/erector-devel/">erector-devel archive</a></li>
237 237
           <li class="clickable" onclick="document.location='http://rubyforge.org/frs/?group_id=4797'"><a href="http://rubyforge.org/frs/?group_id=4797">Download</a><br />
238  
-            <span> (current version: 0.9.0.pre1)</span></li>
  238
+            <span> (current version: 0.9.0)</span></li>
239 239
         </ul>
240 240
       </div>
241 241
       <div class="footer"><a href="http://www.pivotallabs.com"><img alt="Pivotal Labs" height="57" src="pivotal.gif" style="float:right; padding: 8px;" width="158" /></a>
2  web/developers.html
@@ -47,7 +47,7 @@
47 47
   border: 1px solid gray;
48 48
   padding: .5em 1em;
49 49
   overflow: auto;
50  
-  font-family: Inconsolata,                Consolas,                "Andale Mono",                "Lucida Console",                "Lucida Sans Typewriter",                "DejaVu Sans Mono",                "Bitstream Vera Sans Mono",                "Liberation Mono",                "Nimbus Mono L",                Monaco,                "Courier New",                Courier,                monospace; }
  50
+  font-family: Inconsolata, Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; }
51 51
 
52 52
 pre.sh_html {
53 53
   background-color: #FFFADE; }
2  web/faq.html
@@ -47,7 +47,7 @@
47 47
   border: 1px solid gray;
48 48
   padding: .5em 1em;
49 49
   overflow: auto;
50  
-  font-family: Inconsolata,                Consolas,                "Andale Mono",                "Lucida Console",                "Lucida Sans Typewriter",                "DejaVu Sans Mono",                "Bitstream Vera Sans Mono",                "Liberation Mono",                "Nimbus Mono L",                Monaco,                "Courier New",                Courier,                monospace; }
  50
+  font-family: Inconsolata, Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; }
51 51
 
52 52
 pre.sh_html {
53 53
   background-color: #FFFADE; }
4  web/index.html
@@ -47,7 +47,7 @@
47 47
   border: 1px solid gray;
48 48
   padding: .5em 1em;
49 49
   overflow: auto;
50  
-  font-family: Inconsolata,                Consolas,                "Andale Mono",                "Lucida Console",                "Lucida Sans Typewriter",                "DejaVu Sans Mono",                "Bitstream Vera Sans Mono",                "Liberation Mono",                "Nimbus Mono L",                Monaco,                "Courier New",                Courier,                monospace; }
  50
+  font-family: Inconsolata, Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; }
51 51
 
52 52
 pre.sh_html {
53 53
   background-color: #FFFADE; }
@@ -320,7 +320,7 @@ <h2 class="clear">Examples</h2>
320 320
           <div class="clear"></div>
321 321
         </div>
322 322
         <hr />
323  
-        <p>Current version: 0.9.0.pre1</p>
  323
+        <p>Current version: 0.9.0</p>
324 324
       </div>
325 325
       <div class="footer"><a href="http://www.pivotallabs.com"><img alt="Pivotal Labs" height="57" src="pivotal.gif" style="float:right; padding: 8px;" width="158" /></a>
326 326
         <center>Erector is an open source project released under the MIT license.<br />
12  web/rails.html
@@ -47,7 +47,7 @@
47 47
   border: 1px solid gray;
48 48
   padding: .5em 1em;
49 49
   overflow: auto;
50  
-  font-family: Inconsolata,                Consolas,                "Andale Mono",                "Lucida Console",                "Lucida Sans Typewriter",                "DejaVu Sans Mono",                "Bitstream Vera Sans Mono",                "Liberation Mono",                "Nimbus Mono L",                Monaco,                "Courier New",                Courier,                monospace; }
  50
+  font-family: Inconsolata, Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; }
51 51
 
52 52
 pre.sh_html {
53 53
   background-color: #FFFADE; }
@@ -240,6 +240,7 @@ <h1 class="name">Erector On Rails</h1>
240 240
               <li><a href="#pagelayoutinheritance">Page Layout Inheritance</a></li>
241 241
               <li><a href="#erectorlayoutsinrails">Erector Layouts in Rails</a></li>
242 242
               <li><a href="#instancevariables">Instance Variables</a></li>
  243
+              <li><a href="#moreaboutrails">More about Rails</a></li>
243 244
             </ol>
244 245
           </div>
245 246
           <div class="clear"></div>
@@ -437,7 +438,7 @@ <h1 class="name">Erector On Rails</h1>
437 438
 
438 439
   def footer
439 440
     p &quot;Copyright (c) 2112, Rush Enterprises Inc.&quot;
440  
-    content_for :footer if content_for? :footer    
  441
+    content_for :footer if content_for? :footer
441 442
   end
442 443
 
443 444
 end
@@ -459,7 +460,7 @@ <h1 class="name">Erector On Rails</h1>
459 460
             </p>
460 461
             <a name="instancevariables"></a>
461 462
             <h2>6. Instance Variables</h2>
462  
-            <p>Controller instance variables (sometimes called &quot;assigns&quot;) are available to 
  463
+            <p>Controller instance variables (sometimes called &quot;assigns&quot;) are available to
463 464
 the view, and also to any partial
464 465
 that gets rendered by the view, no matter how deeply-nested. This effectively
465 466
 makes controller instance variables &quot;globals&quot;. In small view hierarchies this
@@ -470,7 +471,7 @@ <h1 class="name">Erector On Rails</h1>
470 471
 Sometimes these aren't used by a view: ApplicationController might assign
471 472
 variables that are used by many, but not all, views; and various other things
472 473
 may accumulate, especially if you've been using templating systems that are
473  
-more forgiving than Erector. Erector's &quot;needs&quot; mechanism helps enforce 
  474
+more forgiving than Erector. Erector's &quot;needs&quot; mechanism helps enforce
474 475
 stricter encapsulation. But if you migrate from a promiscuous Rails app
475 476
 to Erector, you're stuck using
476 477
 no &quot;needs&quot; declaration at all, because it needs to contain every assigned
@@ -493,6 +494,9 @@ <h1 class="name">Erector On Rails</h1>
493 494
 something), but they won't cause widget instantiation to fail, either. This
494 495
 can let a large Rails project transition to Erector more smoothly.
495 496
 </p>
  497
+            <a name="moreaboutrails"></a>
  498
+            <h2>7. More about Rails</h2>
  499
+            <p>#capture_content is now an alias for #capture, so we can call it in a Rails 3.1 app</p>
496 500
           </div>
497 501
         </div>
498 502
       </div>
38  web/rails.rb
@@ -15,7 +15,7 @@ def initialize
15 15
   def promo
16 16
     "images/erectorhudson.jpeg"
17 17
   end
18  
-  
  18
+
19 19
   def body_content
20 20
     p do
21 21
       text "This page describes integrating Erector into ",
@@ -31,8 +31,8 @@ def body_content
31 31
   def article
32 32
     Article.new(:name => "Erector On Rails").tap { |a|
33 33
       a.add(:name => "Install") do
34  
-        p {          
35  
-          text "To install as a gem, add ", code("gem 'erector'"), " to your ", code("Gemfile"), 
  34
+        p {
  35
+          text "To install as a gem, add ", code("gem 'erector'"), " to your ", code("Gemfile"),
36 36
             ", then add ", code("require 'erector'"), " to ", code("environment.rb"), "."
37 37
         }
38 38
         p  {
@@ -41,7 +41,7 @@ def article
41 41
             "When installing this way, erector is automatically available to your Rails code (no require directive is needed)."
42 42
         }
43 43
       end
44  
-    
  44
+
45 45
     a.add(:name => "Using Erector from Ruby on Rails", :href => "rails") do
46 46
       p do
47 47
         text "Your views are just ruby classes.  Your controller can either call Rails' "
@@ -223,7 +223,7 @@ def navbar
223 223
          text " in the HEAD element."
224 224
         }
225 225
       end
226  
-      
  226
+
227 227
       a.add(:name => "Erector Layouts in Rails") do
228 228
 
229 229
       p do
@@ -272,15 +272,15 @@ def navbar
272 272
 
273 273
   def footer
274 274
     p "Copyright (c) 2112, Rush Enterprises Inc."
275  
-    content_for :footer if content_for? :footer    
  275
+    content_for :footer if content_for? :footer
276 276
   end
277 277
 
278 278
 end
279 279
         RUBY
280  
-        
  280
+
281 281
         br
282 282
         code "app/views/faq/index.rb:"
283  
-        
  283
+
284 284
         source_code :ruby, <<-RUBY
285 285
 class Views::Faq::Index < Erector::Widget
286 286
   def content
@@ -295,34 +295,34 @@ def content
295 295
         RUBY
296 296
 
297 297
         p "[TODO: more explanation]"
298  
-        
  298
+
299 299
       end
300 300
     end
301  
-    
  301
+
302 302
     a.add(:name => "Instance Variables") do
303 303
       p <<-TEXT
304  
-Controller instance variables (sometimes called "assigns") are available to 
  304
+Controller instance variables (sometimes called "assigns") are available to
305 305
 the view, and also to any partial
306 306
 that gets rendered by the view, no matter how deeply-nested. This effectively
307 307
 makes controller instance variables "globals". In small view hierarchies this
308 308
 probably isn't an issue, but in large ones it can make debugging and
309 309
 reasoning about the code very difficult.
310 310
       TEXT
311  
-      
  311
+
312 312
       p <<-TEXT
313 313
 Often, large Rails applications will assign many controller instance variables.
314 314
 Sometimes these aren't used by a view: ApplicationController might assign
315 315
 variables that are used by many, but not all, views; and various other things
316 316
 may accumulate, especially if you've been using templating systems that are
317  
-more forgiving than Erector. Erector's "needs" mechanism helps enforce 
  317
+more forgiving than Erector. Erector's "needs" mechanism helps enforce
318 318
 stricter encapsulation. But if you migrate from a promiscuous Rails app
319 319
 to Erector, you're stuck using
320 320
 no "needs" declaration at all, because it needs to contain every assigned
321 321
 variable, or Erector will raise an exception.
322 322
       TEXT
323  
-      
  323
+
324 324
       p "Two widget-class-level settings can help you with these problems."
325  
-      
  325
+
326 326
       h3 "controller_assigns_propagate_to_partials"
327 327
 
328 328
       p <<-TEXT
@@ -334,11 +334,11 @@ def content
334 334
 as they must be passed everything they use and can't rely on controller
335 335
 instance variables.
336 336
       TEXT
337  
-      
  337
+
338 338
       # example
339 339
 
340 340
       h3 "ignore_extra_controller_assigns"
341  
-      
  341
+
342 342
       p <<-TEXT
343 343
 If you set this to true (and it's inherited through to subclasses), however,
344 344
 then "needs" declarations on the widget will cause excess controller variables
@@ -348,6 +348,10 @@ def content
348 348
       TEXT
349 349
 
350 350
     end
  351
+
  352
+      a.add(:name => "More about Rails") do
  353
+        p "#capture_content is now an alias for #capture, so we can call it in a Rails 3.1 app"
  354
+      end
351 355
   }
352 356
   end
353 357
 end
298  web/readme.html
@@ -47,7 +47,7 @@
47 47
   border: 1px solid gray;
48 48
   padding: .5em 1em;
49 49
   overflow: auto;
50  
-  font-family: Inconsolata,                Consolas,                "Andale Mono",                "Lucida Console",                "Lucida Sans Typewriter",                "DejaVu Sans Mono",                "Bitstream Vera Sans Mono",                "Liberation Mono",                "Nimbus Mono L",                Monaco,                "Courier New",                Courier,                monospace; }
  50
+  font-family: Inconsolata, Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; }
51 51
 
52 52
 pre.sh_html {
53 53
   background-color: #FFFADE; }
@@ -227,186 +227,140 @@
227 227
     </div>
228 228
     <div class="promo_wrapper">      <div class="promo"><img src="images/erector-the-worlds-greatest-toy.jpg" /></div>
229 229
     </div>
230  
-    <div class="main">      <div class="body"><ul>
231  
-<li><p>
232  
-<a href="http://erector.rubyforge.org">erector.rubyforge.org</a>
233  
-</p>
234  
-</li>
235  
-<li><p>
236  
-<a href="mailto:erector@googlegroups.com">erector@googlegroups.com</a>
237  
-</p>
238  
-</li>
239  
-<li><p>
240  
-<a
241  
-href="http://www.pivotaltracker.com/projects/482">www.pivotaltracker.com/projects/482</a>
242  
-</p>
243  
-</li>
244  
-</ul>
245  
-<h2>DESCRIPTION</h2>
246  
-<p>
247  
-Erector is a Builder-like view framework, inspired by Markaby but
  230
+    <div class="main">      <div class="body"><ul><li>
  231
+<p><a href="http://erector.rubyforge.org">erector.rubyforge.org</a></p>
  232
+</li><li>
  233
+<p><a href="mailto:erector@googlegroups.com">erector@googlegroups.com</a></p>
  234
+</li><li>
  235
+<p><a
  236
+href="http://www.pivotaltracker.com/projects/482">www.pivotaltracker.com/projects/482</a></p>
  237
+</li></ul>
  238
+
  239
+<h2 id="label-DESCRIPTION">DESCRIPTION</h2>
  240
+
  241
+<p>Erector is a Builder-like view framework, inspired by Markaby but
248 242
 overcoming some of its flaws. In Erector all views are objects, not
249 243
 template files, which allows the full power of object-oriented programming
250 244
 (inheritance, modular decomposition, encapsulation) in views. See the rdoc
251 245
 for the <a href="rdoc/classes/Erector/Widget.html">Erector::Widget</a> class to learn how to make your own widgets, and
252 246
 visit the project site at <a
253 247
 href="http://erector.rubyforge.org">erector.rubyforge.org</a> for more
254  
-documentation.
255  
-</p>
256  
-<p>
257  
-No, seriously, we&#8217;ve got hella docs at <a
258  
-href="http://erector.rubyforge.org">erector.rubyforge.org</a> &#8212; go
259  
-check it out.
260  
-</p>
261  
-<h2>SYNOPSIS</h2>
262  
-<pre>
263  
-    require 'erector'
264  
-
265  
-    class Hello &lt; <a href="rdoc/classes/Erector/Widget.html">Erector::Widget</a>
266  
-      def content
267  
-        html do
268  
-          head do
269  
-            title &quot;Hello&quot;
270  
-          end
271  
-          body do
272  
-            text &quot;Hello, &quot;
273  
-            b @target, :class =&gt; 'big'
274  
-            text &quot;!&quot;
275  
-          end
276  
-        end
277  
-      end
278  
-    end
279  
-
280  
-    Hello.new(:target =&gt; 'world').to_html
281  
-    =&gt; &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Hello&lt;/title&gt;&lt;/head&gt;&lt;body&gt;Hello, &lt;b class=\&quot;big\&quot;&gt;world&lt;/b&gt;!&lt;/body&gt;&lt;/html&gt;&quot;
282  
-
283  
-    include Erector::Mixin
284  
-    erector { div &quot;love&quot;, :class =&gt; &quot;big&quot; }
285  
-    =&gt; &quot;&lt;div class=\&quot;big\&quot;&gt;love&lt;/div&gt;&quot;
  248
+documentation.</p>
  249
+
  250
+<p>No, seriously, we’ve got hella docs at <a
  251
+href="http://erector.rubyforge.org">erector.rubyforge.org</a> – go check it
  252
+out.</p>
  253
+
  254
+<h2 id="label-SYNOPSIS">SYNOPSIS</h2>
  255
+
  256
+<pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">'erector'</span>
  257
+
  258
+<span class="ruby-keyword">class</span> <span class="ruby-constant">Hello</span> <span class="ruby-operator">&lt;</span> <span class="ruby-constant">Erector</span><span class="ruby-operator">::</span><span class="ruby-constant">Widget</span>
  259
+  <span class="ruby-keyword">def</span> <span class="ruby-identifier">content</span>
  260
+    <span class="ruby-identifier">html</span> <span class="ruby-keyword">do</span>
  261
+      <span class="ruby-identifier">head</span> <span class="ruby-keyword">do</span>
  262
+        <span class="ruby-identifier">title</span> <span class="ruby-string">&quot;Hello&quot;</span>
  263
+      <span class="ruby-keyword">end</span>
  264
+      <span class="ruby-identifier">body</span> <span class="ruby-keyword">do</span>
  265
+        <span class="ruby-identifier">text</span> <span class="ruby-string">&quot;Hello, &quot;</span>
  266
+        <span class="ruby-identifier">b</span> <span class="ruby-ivar">@target</span>, :<span class="ruby-keyword">class</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'big'</span>
  267
+        <span class="ruby-identifier">text</span> <span class="ruby-string">&quot;!&quot;</span>
  268
+      <span class="ruby-keyword">end</span>
  269
+    <span class="ruby-keyword">end</span>
  270
+  <span class="ruby-keyword">end</span>
  271
+<span class="ruby-keyword">end</span>
  272
+
  273
+<span class="ruby-constant">Hello</span>.<span class="ruby-identifier">new</span>(:<span class="ruby-identifier">target</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'world'</span>).<span class="ruby-identifier">to_html</span>
  274
+=<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Hello&lt;/title&gt;&lt;/head&gt;&lt;body&gt;Hello, &lt;b class=\&quot;big\&quot;&gt;world&lt;/b&gt;!&lt;/body&gt;&lt;/html&gt;&quot;</span>
  275
+
  276
+<span class="ruby-identifier">include</span> <span class="ruby-constant">Erector</span><span class="ruby-operator">::</span><span class="ruby-constant">Mixin</span>
  277
+<span class="ruby-identifier">erector</span> { <span class="ruby-identifier">div</span> <span class="ruby-string">&quot;love&quot;</span>, :<span class="ruby-keyword">class</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;big&quot;</span> }
  278
+=<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;&lt;div class=\&quot;big\&quot;&gt;love&lt;/div&gt;&quot;</span>
286 279
 </pre>
287  
-<h2>REQUIREMENTS</h2>
288  
-<p>
289  
-The gem depends on rake and treetop, although this is just for using the
290  
-command-line tool,  so deployed applications won&#8217;t need these. The
  280
+
  281
+<h2 id="label-REQUIREMENTS">REQUIREMENTS</h2>
  282
+
  283
+<p>The gem depends on rake and treetop, although this is just for using the
  284
+command-line tool,  so deployed applications won’t need these. The
291 285
 Rails-dependent code is now separated so  you can use Erector cleanly in a
292  
-non-Rails app.
293  
-</p>
294  
-<h2>INSTALL</h2>
295  
-<p>
296  
-To install as a gem:
297  
-</p>
298  
-<ul>
299  
-<li><p>
300  
-sudo gem install erector
301  
-</p>
302  
-</li>
303  
-</ul>
304  
-<p>
305  
-Then add &#8220;require &#8216;erector&#8217;&#8221; to any files which
306  
-need erector.
307  
-</p>
308  
-<p>
309  
-To install as a Rails plugin:
310  
-</p>
311  
-<ul>
312  
-<li><p>
313  
-Copy the erector source to vendor/plugins/erector in your Rails directory.
314  
-</p>
315  
-</li>
316  
-</ul>
317  
-<p>
318  
-When installing this way, erector is automatically available to your Rails
319  
-code (no require directive is needed).
320  
-</p>
321  
-<h2>TESTS</h2>
322  
-<p>
323  
-Three spec rake tasks are provided: spec:core (core functionality),
  286
+non-Rails app.</p>
  287
+
  288
+<h2 id="label-INSTALL">INSTALL</h2>
  289
+
  290
+<p>To install as a gem:</p>
  291
+<ul><li>
  292
+<p>sudo gem install erector</p>
  293
+</li></ul>
  294
+
  295
+<p>Then add “require ‘erector’” to any files which need erector.</p>
  296
+
  297
+<p>To install as a Rails plugin:</p>
  298
+<ul><li>
  299
+<p>Copy the erector source to vendor/plugins/erector in your Rails directory.</p>
  300
+</li></ul>
  301
+
  302
+<p>When installing this way, erector is automatically available to your Rails
  303
+code (no require directive is needed).</p>
  304
+
  305
+<h2 id="label-TESTS">TESTS</h2>
  306
+
  307
+<p>Three spec rake tasks are provided: spec:core (core functionality),
324 308
 spec:erect (the erector command line tool), and spec:rails (rails
325  
-integration).
326  
-</p>
327  
-<p>
328  
-&#8216;rake spec&#8217; will run the complete set of specs.
329  
-</p>
330  
-<h2>CREDITS:</h2>
331  
-<p>
332  
-Core Team:
333  
-</p>
334  
-<ul>
335  
-<li><p>
336  
-Alex Chaffee
337  
-</p>
338  
-</li>
339  
-<li><p>
340  
-Brian Takita
341  
-</p>
342  
-</li>
343  
-</ul>
344  
-<p>
345  
-Special Thanks To:
346  
-</p>
347  
-<ul>
348  
-<li><p>
349  
-Abby (Chaffee&#8217;s muse &amp; Best friend)
350  
-</p>
351  
-</li>
352  
-<li><p>
353  
-Jim Kingdon
354  
-</p>
355  
-</li>
356  
-<li><p>
357  
-Jeff Dean
358  
-</p>
359  
-</li>
360  
-<li><p>
361  
-John Firebaugh
362  
-</p>
363  
-</li>
364  
-<li><p>
365  
-Nathan Sobo
366  
-</p>
367  
-</li>
368  
-<li><p>
369  
-Nick Kallen
370  
-</p>
371  
-</li>
372  
-<li><p>
373  
-Alon Salant
374  
-</p>
375  
-</li>
376  
-<li><p>
377  
-Andy Peterson
378  
-</p>
379  
-</li>
380  
-</ul>
381  
-<h2>LICENSE:</h2>
382  
-<p>
383  
-(The MIT License)
384  
-</p>
385  
-<p>
386  
-Copyright &#169; 2007-2010 Pivotal Labs and the Erector Project
387  
-</p>
388  
-<p>
389  
-Permission is hereby granted, free of charge, to any person obtaining a
390  
-copy of this software and associated documentation files (the
391  
-&#8220;Software&#8221;), to deal in the Software without restriction,
392  
-including without limitation the rights to use, copy, modify, merge,
393  
-publish, distribute, sublicense, and/or sell copies of the Software, and to
394  
-permit persons to whom the Software is furnished to do so, subject to the
395  
-following conditions:
396  
-</p>
397  
-<p>
398  
-The above copyright notice and this permission notice shall be included in
399  
-all copies or substantial portions of the Software.
400  
-</p>
401  
-<p>
402  
-THE SOFTWARE IS PROVIDED &#8220;AS IS&#8221;, WITHOUT WARRANTY OF ANY KIND,
403  
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
404  
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
405  
-NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
406  
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
407  
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
408  
-USE OR OTHER DEALINGS IN THE SOFTWARE.
409  
-</p>
  309
+integration).</p>
  310
+
  311
+<p>‘rake spec’ will run the complete set of specs.</p>
  312
+
  313
+<h2 id="label-CREDITS%3A">CREDITS:</h2>
  314
+
  315
+<p>Core Team:</p>
  316
+<ul><li>
  317
+<p>Alex Chaffee</p>
  318
+</li><li>
  319
+<p>Brian Takita</p>
  320
+</li></ul>
  321
+
  322
+<p>Special Thanks To:</p>
  323
+<ul><li>
  324
+<p>Abby (Chaffee’s muse &amp; Best friend)</p>
  325
+</li><li>
  326
+<p>Jim Kingdon</p>
  327
+</li><li>
  328
+<p>Jeff Dean</p>
  329
+</li><li>
  330
+<p>John Firebaugh</p>
  331
+</li><li>
  332
+<p>Nathan Sobo</p>
  333
+</li><li>
  334
+<p>Nick Kallen</p>
  335
+</li><li>
  336
+<p>Alon Salant</p>
  337
+</li><li>
  338
+<p>Andy Peterson</p>
  339
+</li></ul>
  340
+
  341
+<h2 id="label-LICENSE%3A">LICENSE:</h2>
  342
+
  343
+<p>(The MIT License)</p>
  344
+
  345
+<p>Copyright © 2007-2010 Pivotal Labs and the Erector Project</p>
  346
+
  347
+<p>Permission is hereby granted, free of charge, to any person obtaining a
  348
+copy of this software and associated documentation files (the “Software”),
  349
+to deal in the Software without restriction, including without limitation
  350
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
  351
+and/or sell copies of the Software, and to permit persons to whom the
  352
+Software is furnished to do so, subject to the following conditions:</p>
  353
+
  354
+<p>The above copyright notice and this permission notice shall be included in
  355
+all copies or substantial portions of the Software.</p>
  356
+
  357
+<p>THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  358
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  359
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  360
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  361
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  362
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  363
+DEALINGS IN THE SOFTWARE.</p>
410 364
 <hr />
411 365
         <p>Don't forget to read the <a href="userguide.html">User Guide</a> and <a href="faq.html">FAQ</a> and <a href="rdoc">API</a></p>
412 366
       </div>
1,314  web/release_notes.html
@@ -47,7 +47,7 @@
47 47
   border: 1px solid gray;
48 48
   padding: .5em 1em;
49 49
   overflow: auto;
50  
-  font-family: Inconsolata,                Consolas,                "Andale Mono",                "Lucida Console",                "Lucida Sans Typewriter",                "DejaVu Sans Mono",                "Bitstream Vera Sans Mono",                "Liberation Mono",                "Nimbus Mono L",                Monaco,                "Courier New",                Courier,                monospace; }
  50
+  font-family: Inconsolata, Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; }
51 51
 
52 52
 pre.sh_html {
53 53
   background-color: #FFFADE; }
@@ -227,838 +227,500 @@
227 227
     </div>
228 228
     <div class="promo_wrapper">      <div class="promo"><img src="images/erector-the-worlds-greatest-toy.jpg" /></div>
229 229
     </div>
230  
-    <div class="main">      <div class="body"><h2>0.9.0</h2>
231  
-<ul>
232  
-<li><p>
233  
-Finally merged bigfix/rails3 branch - Erector now works with either Rails 2
234  
-or Rails 3 (or neither)
235  
-</p>
236  
-</li>
237  
-<li><p>
238  
-&#8216;scss&#8217; external type [needs tests]
239  
-</p>
240  
-</li>
241  
-<li><p>
242  
-dot-class and dot-id-bang syntax
243  
-</p>
244  
-</li>
245  
-<li><p>
246  
-expanded widget hierarchy; now XMLWidget can be used as the base for a
  230
+    <div class="main">      <div class="body">
  231
+<h2 id="label-0.9.0">0.9.0</h2>
  232
+<ul><li>
  233
+<p>Finally merged bigfix/rails3 branch - Erector now works with either Rails 2
  234
+or Rails 3 (or neither)</p>
  235
+</li><li>
  236
+<p>‘scss’ external type [needs tests]</p>
  237
+</li><li>
  238
+<p>dot-class and dot-id-bang syntax</p>
  239
+</li><li>
  240
+<p>expanded widget hierarchy; now XMLWidget can be used as the base for a
247 241
 non-HTML widget (for XML formats that may not want the HTML tags and
248  
-methods)
249  
-</p>
250  
-</li>
251  
-<li><p>
252  
-&#8216;emit&#8217; method as preferred synonym for to_html (since we now
253  
-support non-HTML widgets)
254  
-</p>
255  
-</li>
256  
-<li><p>
257  
-&#8216;tag&#8217; macro to add your own tag types (esp. to XML widgets)
258  
-</p>
259  
-</li>
260  
-<li><p>
261  
-:snake_case option to tag (if you want the method name to be nice for a
262  
-CamelCase tag name)
263  
-</p>
264  
-</li>
265  
-<li><p>
266  
-remove dependency on rake gem
267  
-</p>
268  
-</li>
269  
-<li><p>
270  
-rename &#8216;render&#8217; method to &#8216;emit&#8217; (to reduce
271  
-confusion with Rails&#8217; &#8220;render&#8221; methods)
272  
-</p>
273  
-</li>
274  
-</ul>
275  
-<p>
276  
-Deprecated or Removed:
277  
-</p>
278  
-<ul>
279  
-<li><p>
280  
-text(widget) &#8212; passing a widget to the text method is now an error
281  
-</p>
282  
-</li>
283  
-<li><p>
284  
-element! &#8212; removed
285  
-</p>
286  
-</li>
287  
-<li><p>
288  
-empty_element &#8212; removed
289  
-</p>
290  
-</li>
291  
-<li><p>
292  
-all_tags &#8212; removed (perhaps to be replaced)
293  
-</p>
294  
-</li>
295  
-<li><p>
296  
-to_s &#8212; use emit or to_html instead
297  
-</p>
298  
-</li>
299  
-<li><p>
300  
-join &#8212; use the :join option instead
301  
-</p>
302  
-</li>
303  
-</ul>
304  
-<h2>0.8.3</h2>
305  
-<ul>
306  
-<li><p>
307  
-Finally merged bigfix/rails3 branch - Erector now works with either Rails 2
308  
-or Rails 3 (or neither)
309  
-</p>
310  
-</li>
311  
-</ul>
312  
-<h2>0.8.2 - 2011-02-16</h2>
313  
-<ul>
314  
-<li><p>
315  
-Close tags on exception or return
316  
-</p>
317  
-</li>
318  
-<li><p>
319  
-Gem dependency cleanup
320  
-</p>
321  
-</li>
322  
-<li><p>
323  
-Bug: Dependency did not correctly work with uniq (reported by Daniel
324  
-Barlow)
325  
-</p>
326  
-</li>
327  
-</ul>
328  
-<h2>0.8.1 - 2010-07-17</h2>
329  
-<p>
330  
-Bugfix release to improve Ruby 1.9 compatibility
331  
-</p>
332  
-<h2>0.8.0 - 2010-07-07</h2>
333  
-<p>
334  
-Core:
335  
-</p>
336  
-<ul>
337  
-<li><p>
338  
-deprecated to_s in favor of to_html
339  
-</p>
340  
-</li>
341  
-<li><p>
342  
-to_text does some formatting
343  
-</p>
344  
-</li>
345  
-<li><p>
346  
-barebones Sass support
347  
-</p>
348  
-</li>
349  
-<li><p>
350  
-&#8220;depends_on&#8221; is the new way to include JS and CSS files
351  
-(replacing &#8220;external&#8221;). More flexible calling structure.
352  
-</p>
353  
-</li>
354  
-<li><p>
355  
-line wrapping via the :max_length parameter to to_html
356  
-</p>
357  
-</li>
358  
-<li><p>
359  
-line wrapping preserves leading and trailing spaces
360  
-</p>
361  
-</li>
362  
-<li><p>
363  
-jquery method takes optional first parameter (:load or :ready)
364  
-</p>
365  
-</li>
366  
-<li><p>
367  
-delegate method_missing to parent widget
368  
-</p>
369  
-</li>
370  
-<li><p>
371  
-&#8216;embed&#8217; and &#8216;param&#8217; are now self-closing tags (as
372  
-per browser warnings)
373  
-</p>
374  
-</li>
375  
-<li><p>
376  
-Converted Widget#context to take a params hash.
377  
-</p>
378  
-</li>
379  
-<li><p>
380  
-Exposed an Output object, with rather useful #placeholder method 
381  
-</p>
382  
-</li>
383  
-<li><p>
384  
-Defined Widget#output to delegate to #parent if @parent is not already set.
385  
-</p>
386  
-</li>
387  
-<li><p>
388  
-Removed :parent param for Output#initialize in favor of a block.
389  
-</p>
390  
-</li>
391  
-<li><p>
392  
-Page#extra_widgets
393  
-</p>
394  
-</li>
395  
-<li><p>
396  
-Page only emits externals from widgets that have been rendered on it
397  
-</p>
398  
-</li>
399  
-<li><p>
400  
-in-memory widget caching (still experimental)
401  
-</p>
402  
-</li>
403  
-</ul>
404  
-<p>
405  
-Rails:
406  
-</p>
407  
-<ul>
408  
-<li><p>
409  
-Compatibility with Rails 2.3.5 HTML safety
410  
-</p>
411  
-</li>
412  
-<li><p>
413  
-Rails 2.3.8 compatibility
414  
-</p>
415  
-</li>
416  
-<li><p>
417  
-To render from a Rails context, you must now go through
418  
-Erector::Rails.render; do not call to_s(:parent => @view) directly
419  
-</p>
420  
-</li>
421  
-<li><p>
422  
-rails_xss plugin support
423  
-</p>
424  
-</li>
425  
-<li><p>
426  
-additional render :widget options passed to to_s. This means that you can
427  
-do:
428  
-</p>
429  
-<pre>
430  
-    render :widget =&gt; MyWidget, :content_method_name =&gt; :my_content
431  
-</pre>
432  
-</li>
433  
-<li><p>
434  
-Widget#h is now idempotent
435  
-</p>
436  
-</li>
437  
-</ul>
438  
-<p>
439  
-Bugs:
440  
-</p>
441  
-<ul>
442  
-<li><dl>
443  
-<dt>bug</dt><dd><p>
444  
-<a
445  
-href="http://github.com/pivotal/erector/issues/#issue/5">github.com/pivotal/erector/issues/#issue/5</a>
446  
-</p>
447  
-</dd>
448  
-</dl>
449  
-</li>
450  
-<li><dl>
451  
-<dt>bug</dt><dd><p>
452  
-<a
453  
-href="http://github.com/pivotal/erector/issues/closed#issue/3">github.com/pivotal/erector/issues/closed#issue/3</a>
454  
-</p>
455  
-</dd>
456  
-</dl>
457  
-</li>
458  
-<li><dl>
459  
-<dt>bug</dt><dd><p>
460  
-double-rendering
461  
-</p>
462  
-</dd>
463  
-</dl>
464  
-</li>
465  
-</ul>
466  
-<h2>0.7.3 - 2009-12-01</h2>
467  
-<ul>
468  
-<li><p>
469  
-fix bug in pass-block-to-new inline page rendering
470  
-</p>
471  
-</li>
472  
-<li><p>
473  
-externals can accept a File (or any IO, actually)
474  
-</p>
475  
-</li>
476  
-</ul>
477  
-<p>
478  
-Rails:
479  
-</p>
480  
-<pre>
481  
- * Add Widget.controller_assigns_propagate_to_partials: lets you keep controller instance variables from propagating to partials, so that you don't have this giant &quot;global&quot; namespace that partials can pull from. Enforces encapsulation much better.
482  
- * Add Widget.ignore_extra_controller_assigns, which allows widgets to use #needs but silently ignore excess controller variables, rather than raising an exception instead. This can be very useful for transitioning large codebases to Erector.
483  
- * Factor out directly-delegated methods into an array; add url_for and image_path.
484  
- * Make Erector work with the Cells plugin for Rails (http://cells.rubyforge.org/).
485  
-</pre>
486  
-<p>
487  
-Erector tool:
488  
-</p>
489  
-<pre>
490  
- * Make 'erector' ignore ERb trim markers (&quot;-%&gt;&quot;).
491  
- * Make 'erector' process ERb escapes in HTML attributes correctly.
492  
- * Make sure 'erector' adds parentheses to function calls when necessary.
493  
- * Don't add empty strings to the end of converted attributes.
494  
- * Don't omit empty attribute strings.
495  
- * Allow setting an alternate superclass for the new widget coming from the 'erector' tool.
496  
- * Add --method switch to 'erector', in case you don't want the base 'content' method overridden, but something it calls in your superclass, instead.
  242
+methods)</p>
  243
+</li><li>
  244
+<p>‘emit’ method as preferred synonym for to_html (since we now support
  245
+non-HTML widgets)</p>
  246
+</li><li>
  247
+<p>‘tag’ macro to add your own tag types (esp. to XML widgets)</p>
  248
+</li><li>
  249
+<p>:snake_case option to tag (if you want the method name to be nice for a
  250
+CamelCase tag name)</p>
  251
+</li><li>
  252
+<p>remove dependency on rake gem</p>
  253
+</li><li>
  254
+<p>rename ‘render’ method to ‘emit’ (to reduce confusion with Rails’ “render”
  255
+methods)</p>
  256
+</li><li>
  257
+<p>Add missing favicon_link_tag and crsf_meta_tags helper methods</p>
  258
+</li><li>
  259
+<p>Add #capture_content as an alias for #capture, so we can call it in a Rails
  260
+3.1 app</p>
  261
+</li></ul>
  262
+
  263
+<p>Deprecated or Removed:</p>
  264
+<ul><li>
  265
+<p>text(widget) – passing a widget to the text method is now an error</p>
  266
+</li><li>
  267
+<p>element! – removed</p>
  268
+</li><li>
  269
+<p>empty_element – removed</p>
  270
+</li><li>
  271
+<p>all_tags – removed (perhaps to be replaced)</p>
  272
+</li><li>
  273
+<p>to_s – use emit or to_html instead</p>
  274
+</li><li>
  275
+<p>join – use the :join option instead</p>
  276
+</li></ul>
  277
+
  278
+<h2 id="label-0.8.3">0.8.3</h2>
  279
+<ul><li>
  280
+<p>Finally merged bigfix/rails3 branch - Erector now works with either Rails 2
  281
+or Rails 3 (or neither)</p>
  282
+</li></ul>
  283
+
  284
+<h2 id="label-0.8.2+-+2011-02-16">0.8.2 - 2011-02-16</h2>
  285
+<ul><li>
  286
+<p>Close tags on exception or return</p>
  287
+</li><li>
  288
+<p>Gem dependency cleanup</p>
  289
+</li><li>
  290
+<p>Bug: Dependency did not correctly work with uniq (reported by Daniel
  291
+Barlow)</p>
  292
+</li></ul>
  293
+
  294
+<h2 id="label-0.8.1+-+2010-07-17">0.8.1 - 2010-07-17</h2>
  295
+
  296
+<p>Bugfix release to improve Ruby 1.9 compatibility</p>
  297
+
  298
+<h2 id="label-0.8.0+-+2010-07-07">0.8.0 - 2010-07-07</h2>
  299
+
  300
+<p>Core:</p>
  301
+<ul><li>
  302
+<p>deprecated to_s in favor of to_html</p>
  303
+</li><li>
  304
+<p>to_text does some formatting</p>
  305
+</li><li>
  306
+<p>barebones Sass support</p>
  307
+</li><li>
  308
+<p>“depends_on” is the new way to include JS and CSS files (replacing
  309
+“external”). More flexible calling structure.</p>
  310
+</li><li>
  311
+<p>line wrapping via the :max_length parameter to to_html</p>
  312
+</li><li>
  313
+<p>line wrapping preserves leading and trailing spaces</p>
  314
+</li><li>
  315
+<p>jquery method takes optional first parameter (:load or :ready)</p>
  316
+</li><li>
  317
+<p>delegate method_missing to parent widget</p>
  318
+</li><li>
  319
+<p>‘embed’ and ‘param’ are now self-closing tags (as per browser warnings)</p>
  320
+</li><li>
  321
+<p>Converted Widget#context to take a params hash.</p>
  322
+</li><li>
  323
+<p>Exposed an Output object, with rather useful #placeholder method</p>
  324
+</li><li>
  325
+<p>Defined Widget#output to delegate to #parent if @parent is not already set.</p>
  326
+</li><li>
  327
+<p>Removed :parent param for Output#initialize in favor of a block.</p>
  328
+</li><li>
  329
+<p>Page#extra_widgets</p>
  330
+</li><li>
  331
+<p>Page only emits externals from widgets that have been rendered on it</p>
  332
+</li><li>
  333
+<p>in-memory widget caching (still experimental)</p>
  334
+</li></ul>
  335
+
  336
+<p>Rails:</p>
  337
+<ul><li>
  338
+<p>Compatibility with Rails 2.3.5 HTML safety</p>
  339
+</li><li>
  340
+<p>Rails 2.3.8 compatibility</p>
  341
+</li><li>
  342
+<p>To render from a Rails context, you must now go through
  343
+Erector::Rails.render; do not call to_s(:parent =&gt; @view) directly</p>
  344
+</li><li>
  345
+<p>rails_xss plugin support</p>
  346
+</li><li>
  347
+<p>additional render :widget options passed to to_s. This means that you can
  348
+do:</p>
  349
+
  350
+<pre class="ruby"><span class="ruby-identifier">render</span> :<span class="ruby-identifier">widget</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">MyWidget</span>, :<span class="ruby-identifier">content_method_name</span> =<span class="ruby-operator">&gt;</span> :<span class="ruby-identifier">my_content</span>
497 351
 </pre>
498  
-<h2>0.7.2 - 2009-11-16</h2>
499  
-<ul>
500  
-<li><p>
501  
-Widget#url and #css accept optional extra attributes (e.g.
502  
-&#8216;media&#8217;)
503  
-</p>
504  
-</li>
505  
-<li><p>
506  
-Externals accept optional extra attributes (e.g. &#8216;media&#8217;)
507  
-</p>
508  
-</li>
509  
-<li><p>
510  
-Page:
511  
-</p>
512  
-<ul>
513  
-<li><p>
514  
-body_attributes and html_attributes
515  
-</p>
516  
-</li>
517  
-</ul>
518  
-<ul>
519  
-<li><p>
520  
-allow suppressing of basic styles (right/left/clear)
521  
-</p>
522  
-</li>
523  
-</ul>
524  
-<ul>
525  
-<li><p>
526  
-now an InlineWidget
527  
-</p>
528  
-</li>
529  
-</ul>
530  
-</li>
531  
-<li><p>
532  
-erector method passes in parameters to both to_s and the widget&#8217;s
533  
-constructor
534  
-</p>
535  
-</li>
536  
-<li><p>
537  
-Widget#dom_id method to generate a unique id
538  
-</p>
539  
-</li>
540  
-<li><p>
541  
-Widget#to_text method to strip tags
542  
-</p>
543  
-</li>
544  
-<li><p>
545  
-supports HTML5 element names
546  
-</p>
547  
-</li>
548  
-<li><p>
549  
-Widget#text! and #element! which don&#8217;t escape their parameters
550  
-</p>
551  
-</li>
552  
-<li><p>
553  
-Better Rails initialization
554  
-</p>
555  
-</li>
556  
-<li><p>
557  
-Don&#8217;t emit an attribute with an empty array of values
558  
-</p>
559  
-</li>
560  
-<li><p>
561  
-Enhanced support for comments, including IE conditional comments
562  
-</p>
563  
-</li>
564  
-<li><p>
565  
-jQuery method now compatible with jQuery.noConflict()
566  
-</p>
567  
-</li>
568  
-</ul>
569  
-<h2>0.7.1</h2>
570  
-<ul>
571  
-<li><p>
572  
-externals mechanism
573  
-</p>
574  
-</li>
575  
-<li><p>
576  
-Page widget
577  
-</p>
578  
-</li>
579  
-<li><p>
580  
-FieldTable widget
581  
-</p>
582  
-</li>
583  
-<li><p>
584  
-EnvironmentBadge widget - inspired by <a
585  
-href="http://blog.labnotes.org/2009/10/08/using-a-badge-to-distinguish-development-and-production-environments">blog.labnotes.org/2009/10/08/using-a-badge-to-distinguish-development-and-production-environments</a>
586  
-</p>
587  
-</li>
588  
-<li><p>
589  
-added &#8216;jquery&#8217; method to perform a script on $(document).ready
590  
-</p>
591  
-</li>
592  
-<li><p>
593  
-removed the &#8220;alias_method :inspect, :to_s&#8221; since it made
594  
-debugging inside widget constructors hard, and what was it for anyway?
595  
-</p>
596  
-</li>
597  
-<li><p>
598  
-Instance variables may begin with a &#8217;@&#8217;
599  
-</p>
600  
-</li>
601  
-<li><p>
602  
-Fixed Rails integration regressions
603  
-</p>
604  
-</li>
605  
-<li><p>
606  
-Added *.ert templates (Erector Template, similar to Markaby)
607  
-</p>
608  
-</li>
609  
-<li><p>
610  
-#comment method to emit HTML comments (naturally)
611  
-</p>
612  
-</li>
613  
-</ul>
614  
-<h2>0.7.0 / 2009-09-27</h2>
615  
-<ul>
616  
-<li><p>
617  
-Changed behavior of inline blocks. See Widget#new documentation.
618  
-</p>
619  
-</li>
620  
-<li><p>
621  
-Introduced &#8220;Erector::Inline&#8221; and &#8220;Erector.inline&#8221;
622  
-so people using the old inline semantics can upgrade more easily.
623  
-</p>
624  
-</li>
625  
-<li><p>
626  
-Likewise for &#8220;Erector::InlineRailsWidget&#8221; and
627  
-&#8220;Erector::RailsWidget.inline&#8221;.
628  
-</p>
629  
-</li>
630  
-<li><p>
631  
-Due to popular demand, parameters no longer automatically create accessor
632  
-methods, even if you declare them with &#8216;needs&#8217;. You&#8217;ll
633  
-have to type out &#8220;attr_accessor :underpants&#8221; yourself.
634  
-</p>
635  
-</li>
636  
-</ul>
637  
-<h2>0.6.8 / 2009-09</h2>
638  
-<ul>
639  
-<li><p>
640  
-Added missing tag &#8216;embed&#8217;
641  
-</p>
642  
-</li>
643  
-</ul>
644  
-<h2>0.6.7 / 2009-06-17</h2>
645  
-<ul>
646  
-<li><p>
647  
-Fixed bug where needs did not get propagated when including modules.
648  
-</p>
649  
-</li>
650  
-</ul>
651  
-<h2>0.6.6 / 2009-05-25</h2>
652  
-<ul>
653  
-<li><p>
654  
-fix to_a bug that slipped in yesterday when I wasn&#8217;t looking
655  
-</p>
656  
-</li>