[abandoned] Please take a look at objectsframework!
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Code Climate

Warning: This framework is developping fast, so a new minor release can include breaking changes with your existing code. Checkout the release page to see what has changed between versions

Ready for action? Ready, set, go!

ActionFramework is a web application framework for Ruby. It's meant for rapid and fun development of your application.

Because of that it is easy to understand and easy to use and customize.


It just requires Ruby and RubyGems. I have tested it with Ruby version 1.9.3.


You can install this framework with the following command:

[sudo] gem install actionframework

To install the development version from Github do the following:

[sudo] curl http://install.actionframework.bramvdb.com/dev | sh

Getting started

You can easily create a project by running:

action new projectname

This will create a basic directory structure needed by ActionFramework in order to run correctly. It will also create a Gemfile and will run "bundle install" in the project directory.

After that, you can directly test your application by running:


Directory structure

├── Gemfile
├── config
│   ├── routes.rb
│   └── settings.rb
├── controllers
│   └── default_controller.rb
├── initializers
├── models
└── views
    └── layout.html.erb

This directory structure will be created by the CLI. It's very similar to Rails, so it will be very familiar for the people already familiar to Rails development.

First, you have a "Gemfile", in this file you are going to specifiy the dependencies for your project. For example when you want to use DataMapper as your ORM, you can do that by adding:

 gem 'datamapper'

to your Gemfile.

Next, we have a directory called "config", this directory is used to store configuration files. Let's begin with the routes.rb file.


You can specify your routes in the "routes.rb" file which you can find in the "config" directory.

Specifying routes is very similar to Rails:

 ActionFramework::Server.current.routes do
 	# A get route:
 	get "/PATH" => "ControllerName#method"
 	# A post route:
 	post "/PATH" => "ControllerName#method"
 	# etc

You can also use "placeholders" in your routes path. So for example you have a profile page and you want to dynamicly load a user his/her profile from their "id".

ActionFramework::Server.current.routes do
	get "/profile/{{id}}" => "ProfileController#profile"


You can handle redirection from your controller or from the routes.rb.

ActionFramework::Server.current.routes do
	redirect :to => "/p/{{id}}", :from => "/profile/{{id}}"


Controllers are loaded from the "controller" directory.

They're deadly easy to use. I will give you an example:

 class ControllerName
	def method
		"Return a string as a response"

But what if you wan't to use templates, like ERB. ActionFramework has built-in support for ERB templates.

class ControllerName
	def method
		erb "templatename"

We're planning to support other engines in future releases.


Templates are loaded from the "views" directory

Their filename must match the following pattern: "TEMPLATENAME.html.erb" In the "views" folder, there also is a file called "layout.html.erb", this file is used to make headers and footers if you like.


This is only available in the development release on Github!

ActionFramework also supports sending e-mails. This is done by using the Ruby on Rails ActionMailer. This means you can send mails the "Rails" way.

There is already a sample config populated in config/mailer.rb when you create your project.

For more documentation I would recommend to read the official ActionMailer docs.


How do I use Sidekiq with this?

While I was using the framework in one of my applications, I had to use Sidekiq for background proccessing. Sidekiq is easy to install in Rails projects but how to use it with ActionFramework?

Actually the solution was very simple, first create a file called "sidekiq.rb" (or whatever you like) in the root of your project. Then put the following in that file:

require 'bundler'

After you made that file, you can create your workers, it actually doesn't really matter where you place them, you can place them for example in "./workers", but it can be anywhere you like. In order to be able to use your workers in your ActionFramework application, you need to require your workers from an initializer.

So create a new initializer in "./initializers" called "workers.rb" with the following code:

require './workers/YOUWORKER'
# More workers can be required from this file

Now you can finally start Sidekiq itself:

	$ bundle exec sidekiq -r ./sidekiq.rb

Voila, you just created Sidekiq workers in your ActionFramework project.

Other documentation

I hope this README is clear enough for your to understand how you can use this framework to build your next awesome application. If you have any questions please contact me at Twitter. Better documentation will follow soon.

State of development

Currently the framework is in an alpha stage, but I'm working very hard to get it production ready. Version 1.0.0, will be the first stable release and it will bring a website with full documentation. If you like the project please "star" it!


Checkout our changelog here.