Lucie is a terminal application development framework written in Ruby. The aim of the framework is to make the terminal application development faster and easier with providing generators, plugins, components. With specifying a common framework, easier to share workflow management solutions among companies worldwide or creating application that doesn't require graphical user interface.
Lucie based on Model, View, Contoller (MVC) design pattern. Using this principle data can be totally separated from business logic and from its representation. Models represent object that need to be permanent, controllers implement business logic and views help in representing models using templates to generate files or output.
When a Lucie based application is executed, first it dispatches the request and finds the appropriate controller using the first command line attribute. If a second attribute is also defined, it calls the action on the controller with the same name as the attribute, otherwise it calls the index method. Each other attribute is stored in a params
instance variable. Mandatory and optional parameters can be defined in controller if some additional information are required by the action.
Controller implements the business logic, using models and templates for data source and representation. Model uses database to store and fetch data.
Lucie provides gem lucie-bin
to initialize an application. First you will need to install this on your system.
gem install lucie-bin
You can create a new project with command lucie
now.
lucie new my_application
You can try out your new application with running its executable file:
./my_application/bin/my_application --help
/app/controllers | Controllers for business logic |
/app/models | Models which store permanent information |
/app/templates | Template files for file generation |
/config | Configuration files |
/lib | Libraries for shared resource |
/bin | Executable file of the application |
The project is under development. More information is coming soon.
If you want to join to the project, first drop me a mail to nucc@bteam.hu about your ideas. After just
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request