Cumulative Dynamic Rails Application Template
This is an early proof of concept.
Dubsar is a postgreSQL Rails application. Its goal is to offer to the developer a set of models, controllers and views that could be compared to android’s content providers and resolvers. In its current design the model is split in two hierarchies: entities and things.
Entities are conceived as able to act, like human beings or institutions. Things are objects unable to act, like emails or videos. This dichotomy aims to introduce a strong intensionality in the model but is totally arbitrary and could be elided in the future if it proves to be conceptually wrong and not useful.
Entities and Things are correlated by Properties, Entities and Entities are correlated by Relations, Things and Things are correlated by References.
Entities, Things, Properties, Relations and References are two folded. One one side we need to be able to define them, on the other we need to store their values. This Class/Instance dichotomy is mirrored in the application by Names and Matters.
A Name definition creates a table in one of the five hierarchies and it is dynamically linked to a model, a controller, a view and a route.
Standard dynamic models, controllers and views offer the immediate ability to operate on the Name, but nothing else. If a coded model, controller or view is found this will be used instead.
Here the cumulative approach plays an essential role, this project’s goal is to create a community of developers that contribute on one side to the definition of the Names and on the other to code models, controllers and views for each defined Name.
Matters are automatically indexed in the database and in a Solr server.
What is missing here are the Scenes, or ways to provide search and view abilities to the application in a way totally independent from the internal CRUD operations. This is a must but at the moment it is not conceptualized. As of now it is implemented as Home.
.. almost everything .. actually
Contact me at scotti.alessandrogmail.com
Copyright © 2012 Alessandro Scotti, released under the MIT license.