Hello world!
Every cookbook needs a Hello world recipe. I won’t omit this.
We will write the first small widget here. It will plug into the application and show the magic words. As widgets are derived cells, widgets that contain user application logic are called Cell in Apotomo.
app/cells/hello_world_cell.rb
1 2 3 4 5 | class HelloWorldCell < Apotomo::StatefulWidget def say_hello "Hello world!" end end |
Note that our fresh cell widget is derived from Apotomo::StatefulWidget, which is the superclass of any widget.
So, how do we plug that widget into our application? In Apotomo, widgets are organized in a widget tree. The initial widget tree is defined in a well-known ruby class file.
app/apotomo/application_widget_tree.rb
1 2 3 4 5 | class ApplicationWidgetTree < Apotomo::WidgetTree def draw(root) root << cell(:hello_world, :say_hello, 'hello_world_cell') end end |
By using the method cell, we advise Apotomo to render the widget HelloWorldCell and its state say_hello. A state is mapped to a method that itself returns the state view.
The third argument is an id string - it’s needed when referencing to that widget.
To push the widget in the actual application we have to go into a controller method.
1 2 3 4 5 6 7 | class SomeController < ApplicationController include Apotomo::ControllerHelper def top act_as_widget('hello_world_cell') end end |
The method act_as_widget plugs in our handsome widget. In the end, when navigating to some_controller/top, you will see the string “Hello world!”. Wow, this is awesome. Congratulations to your first widget.
Tags: cells, widget tree
December 29th, 2008 at 3:47 pm
Are there any examples of live running sites using Apotomo?