-
Notifications
You must be signed in to change notification settings - Fork 34
RestfulX Framework and Merb 1.0+
What you’ll need:
- Merb 1.0 (with ActiveRecord or DataMapper set-up)
- Flex SDK 3.0
- MySQL 5.0+
Before you start you might want to add Flex SDK bin folder to your $PATH variable if you haven’t already. This will allow you to invoke commands such as mxmlc from the command line and run rake tasks such as rx:flex:build and rx:air:build.
- On OS X it’s typically
/Applications/Adobe Flex Builder 3/sdks/3.0.0/bin - On Win32 it’s
C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\bin
1. Do:
$>sudo gem install restfulx
$>merb-gen app pomodo
$>cd pomodo2. Now edit config/dependencies.rb (pomodo is the new merb application we’ve just generated):
- add
dependency "restfulx"
3. Then run:
$>rx-gen .
$>./script/generate rx_config4. Then create a file called db/model.yml:
$>touch db/model.ymlEdit db/model.yml to contain the following:
project: - name: string - notes: text - start_date: date - end_date: date - completed: boolean - belongs_to: [user] - has_many: [tasks] location: - name: string - notes: text - belongs_to: [user] - has_many: [tasks] task: - name: string - notes: text - start_time: datetime - end_time: datetime - completed: boolean - next_action: boolean - belongs_to: [project, location, user] note: - content: text - belongs_to: [user] user: - login: string - first_name: string - last_name: string - email: string - has_many: [tasks, projects, locations] - has_one: [note]
You are now ready to develop your Merb + RestfulX application using either ActiveRecord or Data Mapper. If using Data Mapper make sure to include
dm-serializerin your dependencies.
5. You can generate all your flex code using:
$>./script/generate rx_yaml_scaffoldNo attempt is made to set-up Merb routes, controllers, models, etc. These will vary depending on the OR mapping tool you use and your coding style. As a Merb developer you are expected to create these yourself :).
You can message FXML or JSON from your controllers. Add
provides :fxmlorprovides :jsonto your controllers to get either format set-up.
Remember to return the model you just created/updated or destroyed. This is part of the service provider contract. Refer to: RestfulX XML-over-HTTP provider API for details. You can also use Working with RestfulX Models for an example of what you can do with the framework.
6. When you want to build the Flex app, run:
$>rake rx:flex:build7. Finally, run merb:
$>merbOK, we can now navigate to http://localhost:4000 and checkout our newly created Flex app talking to Merb!
You can use the same
rx-gentools to create your Sinatra app (or whatever else) too! You are just expected to do your server-side coding by youself, no pre-baked generators here.
While code generation is a quick way to get started, it falls far short of exposing you to all the things you can do with the framework. Examine the code you just generated and refer to Working with RestfulX Models for more information on what you can accomplish.
For more information on the RestfulX framework refer to RestfulX Framework Wiki.
Want a more feature complete example? Check out Pomodo On Rails