<?xml version="1.0" encoding="UTF-8"?>
<commits type="array">
  <commit>
    <parents type="array">
      <parent>
        <id>7b75cf162156eeaf856594ea28542e6f417729b7</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/735ed8a539f6b72ab072d90efe218ec633cbb62c</url>
    <id>735ed8a539f6b72ab072d90efe218ec633cbb62c</id>
    <committed-date>2009-12-17T06:59:31-08:00</committed-date>
    <authored-date>2009-12-17T06:59:31-08:00</authored-date>
    <message>require 'rack/mock'</message>
    <tree>c362df40e0a3f286ba4f6c8e14dee8b21f72369e</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>99a40f3cdeeb86c5aff4183cce51b56359368f06</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/7b75cf162156eeaf856594ea28542e6f417729b7</url>
    <id>7b75cf162156eeaf856594ea28542e6f417729b7</id>
    <committed-date>2009-12-17T06:24:40-08:00</committed-date>
    <authored-date>2009-12-17T06:24:40-08:00</authored-date>
    <message>Refactor action callback invokation

Mehod process_callbacks() now returns the action callback to
invoke. There is only ever one action callback per request.

The advantage is that when continuations are used, the call
stack is relatively flat, as the action callback is invoked
from the session and not from the recursively called
process_callbacks() method. The only drawback is that now
each AnswerDecoration creates an Interceptor object,
which wraps the action callback call to catch &quot;answer&quot;-exceptions.

It is now forbidden to call answer() from an input callback.

While there, optimize the CallbackRegistry a bit.</message>
    <tree>1b3fd522b803934b041437846fca07e081dab5cb</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>463e2866d48a743cc86c71bcc267d500c221edae</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/99a40f3cdeeb86c5aff4183cce51b56359368f06</url>
    <id>99a40f3cdeeb86c5aff4183cce51b56359368f06</id>
    <committed-date>2009-12-02T12:36:48-08:00</committed-date>
    <authored-date>2009-12-02T12:36:48-08:00</authored-date>
    <message>*</message>
    <tree>70d988cd8efb6c6fd9565651ea718c6bc42059e2</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>2f8ab6466a4434bd0780353e5b596262dca2466b</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/463e2866d48a743cc86c71bcc267d500c221edae</url>
    <id>463e2866d48a743cc86c71bcc267d500c221edae</id>
    <committed-date>2009-12-01T15:48:32-08:00</committed-date>
    <authored-date>2009-12-01T15:48:32-08:00</authored-date>
    <message>Enhance demo</message>
    <tree>5412db4696a8dc01f383eae18460aea364255fa5</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>27d4eba07e37e3078679e57b4cbff2adc33a9592</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/2f8ab6466a4434bd0780353e5b596262dca2466b</url>
    <id>2f8ab6466a4434bd0780353e5b596262dca2466b</id>
    <committed-date>2009-12-01T15:34:49-08:00</committed-date>
    <authored-date>2009-12-01T15:34:49-08:00</authored-date>
    <message>Remove extra file</message>
    <tree>52ede9a35f6615faa10c728b4c2a30defe62ad2d</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>a546d2633c5e09c0ee718ad6852077156779e04a</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/27d4eba07e37e3078679e57b4cbff2adc33a9592</url>
    <id>27d4eba07e37e3078679e57b4cbff2adc33a9592</id>
    <committed-date>2009-12-01T15:27:24-08:00</committed-date>
    <authored-date>2009-12-01T15:27:24-08:00</authored-date>
    <message>Add Component#confirm, #inform, #choose_from

* needs: require &quot;wee/conversation&quot;
* Rename Task#run to Task#go
* Refactor examples, add CheeseTask example from Seaside</message>
    <tree>866b4ceff73237966a86b69bfab0f35d59d0e609</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e5680bc5aee58ebf21d78dbb6b3b0dae74876e65</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/a546d2633c5e09c0ee718ad6852077156779e04a</url>
    <id>a546d2633c5e09c0ee718ad6852077156779e04a</id>
    <committed-date>2009-12-01T14:11:19-08:00</committed-date>
    <authored-date>2009-12-01T14:11:19-08:00</authored-date>
    <message>Add Wee::Task and continuation-based arc_challenge</message>
    <tree>1cf86f13081a323274f293dde98754581978396e</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>0d3dd6a7bc22e6655c0620b5134029ddb0c8cfc1</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/e5680bc5aee58ebf21d78dbb6b3b0dae74876e65</url>
    <id>e5680bc5aee58ebf21d78dbb6b3b0dae74876e65</id>
    <committed-date>2009-12-01T13:48:06-08:00</committed-date>
    <authored-date>2009-12-01T13:48:06-08:00</authored-date>
    <message>FormDecoration#global? == true</message>
    <tree>3dafb829209724017dfd056823a8547216335862</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>fd921842f2d31c7b4dfb4fd1e353bb2db10ec434</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/0d3dd6a7bc22e6655c0620b5134029ddb0c8cfc1</url>
    <id>0d3dd6a7bc22e6655c0620b5134029ddb0c8cfc1</id>
    <committed-date>2009-12-01T13:45:49-08:00</committed-date>
    <authored-date>2009-12-01T13:45:49-08:00</authored-date>
    <message>Wrap !Component#root? with Page/Form decoration

Components which respond to #root? with false and are used
as a root component, are wrapped with a PageDecoration and
FormDecoration when Component.instanciate is called.</message>
    <tree>e4b6ea2775ca35d6db5b858910cba1d966333acd</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>b48ffd815edb5a51aca88ef66585d93e8657eec4</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/fd921842f2d31c7b4dfb4fd1e353bb2db10ec434</url>
    <id>fd921842f2d31c7b4dfb4fd1e353bb2db10ec434</id>
    <committed-date>2009-12-01T13:28:07-08:00</committed-date>
    <authored-date>2009-12-01T13:28:07-08:00</authored-date>
    <message>Allow premature response from render phase

Also rename AbortCallbackProcessing to
AbortProcessing.</message>
    <tree>098734da9ed8860ea2e4892a1417702af903cee5</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>afcf0071c758092ec84cfe047f401447cd501402</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/b48ffd815edb5a51aca88ef66585d93e8657eec4</url>
    <id>b48ffd815edb5a51aca88ef66585d93e8657eec4</id>
    <committed-date>2009-12-01T13:02:19-08:00</committed-date>
    <authored-date>2009-12-01T13:02:19-08:00</authored-date>
    <message>No protected for call/callcc/answer

This allows to encapsulate calling of components into Utility classes,
like in the following example:

  class IO
    class AskComponent &lt; Wee::Component
      def render(r)
        r.text_input.callback {|text| answer(text)}
        r.submit_button.value('Enter')
      end
    end

    def initialize(component)
      @component = component
    end

    def ask
      @component.callcc AskComponent.new
    end
  end

  class Main &lt; Wee::Component
    def render(r)
      r.anchor.callback {
        io = IO.new(self)
        text = io.ask
        p text
      }
    end
  end</message>
    <tree>9b546b1bdda267277c7d9423694f37171efe5484</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>bdb65884cc7915ad1f3048a2342d0ff0b8907986</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/afcf0071c758092ec84cfe047f401447cd501402</url>
    <id>afcf0071c758092ec84cfe047f401447cd501402</id>
    <committed-date>2009-12-01T12:24:51-08:00</committed-date>
    <authored-date>2009-12-01T12:24:51-08:00</authored-date>
    <message>Add arc_challenge example</message>
    <tree>6c670cfc36107bf2236f103eaffb58998bccd474</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@ntecs.de</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>ef35a227a74c56f90abb98ddafc7d54d473094fd</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/bdb65884cc7915ad1f3048a2342d0ff0b8907986</url>
    <id>bdb65884cc7915ad1f3048a2342d0ff0b8907986</id>
    <committed-date>2009-10-26T11:39:42-07:00</committed-date>
    <authored-date>2009-10-26T11:39:42-07:00</authored-date>
    <message>Add Apotomo's webhunter example</message>
    <tree>fc1286e07b872507c166f1af024eb3207e1dccaf</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>717d2476ae0672f096ed5e93276d6615d4ecd424</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/ef35a227a74c56f90abb98ddafc7d54d473094fd</url>
    <id>ef35a227a74c56f90abb98ddafc7d54d473094fd</id>
    <committed-date>2009-10-26T11:26:57-07:00</committed-date>
    <authored-date>2009-10-26T11:26:57-07:00</authored-date>
    <message>Spec</message>
    <tree>15fc2ec261bd589f1c6aa253daa8343a34b983b6</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>60627aee7a6613ad178e2e8a3e65c5b0b07f9dca</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/717d2476ae0672f096ed5e93276d6615d4ecd424</url>
    <id>717d2476ae0672f096ed5e93276d6615d4ecd424</id>
    <committed-date>2009-10-26T11:09:21-07:00</committed-date>
    <authored-date>2009-10-26T11:09:21-07:00</authored-date>
    <message>Fix bug: Make #answer behave like &quot;return&quot;

Before this fix, &quot;answer 1&quot; would return [1]. After the fix 1 is
returned, as expected. It now behaves like a regular &quot;return&quot;.</message>
    <tree>a93d9daf93f2f9e00c6008ee80788575695baa3d</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>3a0047d2daf5e0f050162e1f80d66b6e5e34d0a8</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/60627aee7a6613ad178e2e8a3e65c5b0b07f9dca</url>
    <id>60627aee7a6613ad178e2e8a3e65c5b0b07f9dca</id>
    <committed-date>2009-10-26T11:08:56-07:00</committed-date>
    <authored-date>2009-10-26T11:08:56-07:00</authored-date>
    <message>Add local stress test</message>
    <tree>22fd4d8d227fb7067c4947bdfd827d65d79734d7</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9100a32e32fcb1d2b378b1ad9a73d5a197d22276</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/3a0047d2daf5e0f050162e1f80d66b6e5e34d0a8</url>
    <id>3a0047d2daf5e0f050162e1f80d66b6e5e34d0a8</id>
    <committed-date>2009-10-26T10:54:08-07:00</committed-date>
    <authored-date>2009-10-26T10:54:08-07:00</authored-date>
    <message>Refactor and fix stress-test</message>
    <tree>6cbac88519d365d635f9268829e5afae82e191c3</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>7b59d4a6bc1e4cb6f07552caf69c1d31a3e30fdc</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/9100a32e32fcb1d2b378b1ad9a73d5a197d22276</url>
    <id>9100a32e32fcb1d2b378b1ad9a73d5a197d22276</id>
    <committed-date>2009-10-26T10:50:12-07:00</committed-date>
    <authored-date>2009-10-26T10:50:12-07:00</authored-date>
    <message>Remove</message>
    <tree>e49d8aaab35d2b83fec89cd0c2c3719497319c5f</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4967e826d6b9ff66b20809601c8e82cf5339e8a9</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/7b59d4a6bc1e4cb6f07552caf69c1d31a3e30fdc</url>
    <id>7b59d4a6bc1e4cb6f07552caf69c1d31a3e30fdc</id>
    <committed-date>2009-10-26T10:48:12-07:00</committed-date>
    <authored-date>2009-10-26T10:48:12-07:00</authored-date>
    <message>Remove no longer required files</message>
    <tree>6c9fe6b8d2a3efdae6622e4e0c38294241a073bf</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>320ef14b36adc01ef208bbf8531f9e211c9bba33</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/4967e826d6b9ff66b20809601c8e82cf5339e8a9</url>
    <id>4967e826d6b9ff66b20809601c8e82cf5339e8a9</id>
    <committed-date>2009-10-26T09:01:42-07:00</committed-date>
    <authored-date>2009-10-26T09:01:42-07:00</authored-date>
    <message>Fix examples</message>
    <tree>89deca0bb2715d61b78ba45fc037971dd4b2e92a</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9ca7995534dbb6aff9923294f6914e4d4fe03bfb</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/320ef14b36adc01ef208bbf8531f9e211c9bba33</url>
    <id>320ef14b36adc01ef208bbf8531f9e211c9bba33</id>
    <committed-date>2009-10-26T08:56:08-07:00</committed-date>
    <authored-date>2009-10-26T08:56:08-07:00</authored-date>
    <message>Whitespace</message>
    <tree>7a11b2f722207df0395f1f1173fe9bbe1b0eb891</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>2b99b95780e367090afc29a300b1a2f9da0fc9e6</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/9ca7995534dbb6aff9923294f6914e4d4fe03bfb</url>
    <id>9ca7995534dbb6aff9923294f6914e4d4fe03bfb</id>
    <committed-date>2009-10-26T08:17:15-07:00</committed-date>
    <authored-date>2009-10-26T08:17:15-07:00</authored-date>
    <message>Whitespace</message>
    <tree>43fd3829ccabaae63702b47ede709f7102cd9bac</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>615398ff683238f6479ec97f7490b1c4136521f6</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/2b99b95780e367090afc29a300b1a2f9da0fc9e6</url>
    <id>2b99b95780e367090afc29a300b1a2f9da0fc9e6</id>
    <committed-date>2009-10-26T08:14:30-07:00</committed-date>
    <authored-date>2009-10-26T08:14:30-07:00</authored-date>
    <message>Fix component_spec</message>
    <tree>6223fdabccc25165690404c6fc9ffc70966df11c</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f4d7665976e8cb55f3b10343ceb3bb7b679d2cd7</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/615398ff683238f6479ec97f7490b1c4136521f6</url>
    <id>615398ff683238f6479ec97f7490b1c4136521f6</id>
    <committed-date>2009-10-26T08:04:20-07:00</committed-date>
    <authored-date>2009-10-26T08:04:20-07:00</authored-date>
    <message>Micro-optimization

Instance-creation is a bit faster. No memory-savings.</message>
    <tree>1840ee651b8220957101fb16ec64a35072f18026</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>2c7faef3cabd230f9c75c12f566e13ba2885b5bc</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/f4d7665976e8cb55f3b10343ceb3bb7b679d2cd7</url>
    <id>f4d7665976e8cb55f3b10343ceb3bb7b679d2cd7</id>
    <committed-date>2009-10-26T07:51:45-07:00</committed-date>
    <authored-date>2009-10-26T07:51:45-07:00</authored-date>
    <message>Micro-optimize and refactor

Replace Struct by regular class with ivars, as this is more
memory-efficient in Ruby 1.9.</message>
    <tree>46e558f053c8fe37bbf0cd59949aae7291faac2d</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>299c0620b7027cf2af3d7fcf0628ee5c77185fc2</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/2c7faef3cabd230f9c75c12f566e13ba2885b5bc</url>
    <id>2c7faef3cabd230f9c75c12f566e13ba2885b5bc</id>
    <committed-date>2009-10-26T06:16:50-07:00</committed-date>
    <authored-date>2009-10-26T06:16:50-07:00</authored-date>
    <message>Micro-optimization for Ruby 1.9

Seems like in Ruby 1.9 a Struct with two elements is less memory
efficient than a regular object with two instance variables, while
Ruby 1.8 does not exhibit a difference here.</message>
    <tree>98eda2325aee2f3a6248c69ef7efe67d8d21730e</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>3bc019536f28d28e670be60f977fb29e9d2e37cc</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/299c0620b7027cf2af3d7fcf0628ee5c77185fc2</url>
    <id>299c0620b7027cf2af3d7fcf0628ee5c77185fc2</id>
    <committed-date>2009-10-25T06:33:44-07:00</committed-date>
    <authored-date>2009-10-25T06:33:44-07:00</authored-date>
    <message>Add summary to gemspec</message>
    <tree>20fa614db6e850b62d218a7956dbf2935dcaed43</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>3f2470c010862dacf6545111696e0cf7615e0337</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/3bc019536f28d28e670be60f977fb29e9d2e37cc</url>
    <id>3bc019536f28d28e670be60f977fb29e9d2e37cc</id>
    <committed-date>2009-10-25T06:23:32-07:00</committed-date>
    <authored-date>2009-10-25T06:23:32-07:00</authored-date>
    <message>Refactor onXXX methods. Further enhancements/fixes

* Introduce Brush::LinkTag to make r.link.type('abc') work.

* Extend Brush::Page for method #head.

* Remove HtmlCanvas#update(*components) method. No longer neccessary,
  instead use Renderer#render or Renderer#render_decoration in
  AJAX requests. Both of them now unregister callbacks by default.

* Rename onxxx_yyy methods:

    onclick_javascript           -&gt; javascript_on(:click)
    onclick_callback             -&gt; callback_on(:click)
    ondblclick_callback          -&gt; callback_on(:dblclick)
    onclick_update_callback      -&gt; update_on(:click) {|r| ... }
    onclick_update_self_callback -&gt; update_component_on(:click)

  update_component_on(:click, self) { p &quot;hallo&quot; } is just a short-cut for:
  update_on(:click) {|r| r.render(self); p &quot;hallo&quot; }</message>
    <tree>f775a8075718d57e319ad69b9678173690bd6c63</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>6b652185fea1431ead9948e7400ed17c03e94a12</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/3f2470c010862dacf6545111696e0cf7615e0337</url>
    <id>3f2470c010862dacf6545111696e0cf7615e0337</id>
    <committed-date>2009-10-25T06:11:13-07:00</committed-date>
    <authored-date>2009-10-25T06:11:13-07:00</authored-date>
    <message>Fix bug on Ruby 1.9

Constant access is different in Ruby 1.9</message>
    <tree>7bcb8f6f8575f831da9a1068e52e41cef7d3d90d</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>ec34fced57492d17486ad6db723c252fa2b26dc7</id>
      </parent>
    </parents>
    <author>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </author>
    <url>http://github.com/mneumann/wee/commit/6b652185fea1431ead9948e7400ed17c03e94a12</url>
    <id>6b652185fea1431ead9948e7400ed17c03e94a12</id>
    <committed-date>2009-10-25T06:05:31-07:00</committed-date>
    <authored-date>2009-10-25T06:05:31-07:00</authored-date>
    <message>Extend PageDecoration. Implement OidDecoration.

* PageDecoration.new gets two further parameters to specify stylesheets
  and javascript files to include in the &lt;head&gt; tag.

* OidDecoration is useful for components that make use of AJAX calls
  and want to update themselves.
  Example:

    class MyAjaxComponent &lt; Wee::Component
      def initialize
        add_decoration Wee::OidDecoration.new
      end

      def render(r)
        # ...
      end
    end

  Is equivalent to:

    def render(r)
      r.div.oid.with { ... }
    end

  The &lt;div&gt; tag with the oid is required to find the node
  of the client-side DOM tree that should be updated/replaced.</message>
    <tree>c8189a55748f2e182efcd83ad43e88e53ee91368</tree>
    <committer>
      <name>Michael Neumann</name>
      <email>mneumann@mischa.(none)</email>
    </committer>
  </commit>
</commits>
