- New signature:
TestCase#trigger(type, source, options). This method no longer messes around with the widget’s options hash but simply passes any additional options to
evt#data. Also, the event
sourceis now the required second argument.
- You can now attach event handlers to other widgets simply by using the
responds_to_event :click, :passing => :root.
- If you want to debug events, just include the (WIP)
apotomo/debuggingfile and watch your server output on the console.
Widget.responds_to_eventis inheritable now.
- The generator now places namespaced widgets into the correct sub-directories.
- Removed the alias
Widget.respond_to_event, please use
- Widgets now reside in
app/widgets/and have the
Widgetappendix per convention, identical to cells and controllers. This introduces the following changes, illustrated with an imaginary
widget(:comments, ...)will search and instantiate
CommentsWidget(note the missing “Widget”).
CommentsWidgetviews 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_widgetin your widget views to render children.
#widgetnow 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
- 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.
rendered_childrenlocal 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.