- Widgets now reside in
app/widgets/
and have theWidget
appendix per convention, identical to cells and controllers. This introduces the following changes, illustrated with an imaginaryCommentsWidget
:widget(:comments, ...)
will search and instantiateCommentsWidget
(note the missing “Widget”).- The
CommentsWidget
views are searched inapp/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.