Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

71 lines (51 sloc) 3.578 kb



  • You can now attach event handlers to other widgets simply by using the :passing option: responds_to_event :click, :passing => :root.
  • If you want to debug events, just include the (WIP) apotomo/debugging file and watch your server output on the console.


  • Widget.responds_to_event is inheritable now.
  • The generator now places namespaced widgets into the correct sub-directories.


  • Removed the alias Widget.respond_to_event, please use Widget.responds_to_event.



  • Widgets now reside in app/widgets/ and have the Widget appendix per convention, identical to cells and controllers. This introduces the following changes, illustrated with an imaginary CommentsWidget:
    • widget(:comments, ...) will search and instantiate CommentsWidget (note the missing “Widget”).
    • The CommentsWidget views are searched in app/widgets/comments/ (note the missing “_widget”).
  • Including Apotomo::Rails::ControllerMethods by hand is optional. The first call to Controller.has_widgets will include the real module.
  • You can now #render_widget in your widget views to render children.
  • #widget now accepts one arg only (the widget prefix). widget(:comments) sets id to :comments. We also removed the start state argument.
  • Start states are no longer accepted, you have to explicitely pass the state to #render_widget. That’s why #invoke now requires an explicit state as well.
  • #replace/#update now append a ; to the JavaScript expression. You may pass an arbitrary selector string as first argument (optional).
  • The event is no longer added to #options at triggering time.
  • Options passed in #render_widget are no longer merged with #options. They are passed as state-args to reduce complexity.
  • We no longer have @opts and @params but #options and #params from Cell::Base.
  • The params hash is appended to the event in RequestProcessor#process_for. You can now live completely without accessing the global #params.
  • #respond/#update with :selector does not longer prefix the selector with #. It’s up to you.
  • Event delegates #[] to #data.


  • Removed #param, it is simply too complex.
  • Removed render :render_children and :invoke options. Use #render_widget in your state/view.
  • Removed render :suppress_js as it was ugly and kills children.
  • Removed #jump_to_state and #last_state.
  • Removed `@cell`, now longer available in state views.
  • Removed #cell, #container and #section widget shortcuts.
  • Removed rendered_children local in views. Use #render_widget.
  • Removed ContainerWidget, nobody needs it.


  • Widget.responds_to_event no longer shares its options with multiple widget instances of the same class.



  • Caching states works, again. Thanks to Gudleik Rasch for spotting.
  • We cleanly require cells-3.4.x now. Thanks to Ryan Bates who remarked that Apotomo 1.0.x tries to require cells-3.5, which was wrong.


  • Removed the usage of state-args. If you want the event instance in your triggered state, use @opts[:event] or upgrade to apotomo-1.1.



  • fixed gemspec to not require useless gem dependencies.



  • removals from ViewHelper: #trigger_event, #form_to_event and friends as they use deprecated Rails helpers.


  • Widget#fire now accepts payload data for the fired event.
  • triggered states now receive the event object if they expect one argument.
Jump to Line
Something went wrong with that request. Please try again.