What is Rails?
Rails is a web application development framework written in the Ruby language. It is designed to make programming web applications easier by making assumptions about what every developer needs to get started. It allows you to write less code while accomplishing more than many other languages and frameworks.
The Rails philosophy includes two major guiding principles:
Don't Repeat Yourself
Convention Over Configuration
This box installs Rails and start its services.
MVC architecture: Ruby on Rails is based on the MVC (Model View Controller) architecture that enables the data to be separated from presentation.
Database Access Library: Ruby on Rails includes a database access library - Active Record - that simplifies data handling in databases. Active Record automatically maps tables to classes and rows to objects.
Libraries for common tasks: Ruby on Rails includes a host of libraries that simplify the coding of common programming tasks such as form validations, sessions management, etc.
AJAX Library: An extensive library of AJAX functions is provided in the Rails framework. Ruby code can be used to generate AJAX code. The associated java scripting required for AJX gets generated automatically.
Convention over configuration: Ruby on Rails does not have any XML configuration files. It includes simple programming conventions that can be used to specify the configuration parameters.
Customized URL: Custom or Search Engine Friendly URLs can be developed using the Ruby on Rails framework.
Debugging: Detailed error logs are provided, making it easier to debug applications.
Components: Components can be used to store reusable code. Components can be included to modularize templates.
http: Http port to be opened [3000 as default value]
cookbook: box that stablishes the Rails recipe dependency.
solo: box that installs the Chef Solo client and runs the Rails recipe.
An instance executing this box will use bash scripting and Chef Solo to download, install and configure Rails. Box events handle the Rails lifecycle on the instance as follows:
solo.pre_install event script: installs the chef-solo client.
install event script: installs the sqlite client.
cookbook.pre_configure event script: creates the recipes folder and download and configure the default.rb and metadata.rb files of elasticbox recipe.
solo.pre_configure event script: downloads and configures solo.rb and solo.json files and uses them to launch the chef-solo client which will download and install the Rails.
start event script: executes the Rails server on production.
The box supports deploying to these linux distributions:
Amazon Linux AMI 2015.03