Station is a Rails Engine focused on Content Management and Distributed Social Software.
Rails = Ruby + Web Development Station = Rails + Content Management
Station provides your Rails application with a CMS framework. This means authentication, authorization, roles, permissions, tags, etc… but from a very flexible scope.
Agents
Authentication: Login/Password, OpenID, Central Authentication Service (CAS), CookieToken
Authorization: Access Control, Roles and Permissions (RBAC)
Activation: Email validation, Password reset
Resources
Folksonomies: Tags, Taggable models
Logos for models
Sortable lists for models
Integration with exception_notification plugin
You can add any of the following functionality to any of your ActiveRecord models:
- ActiveRecord::Agent
a model with authentication, authorization and potencial to perform actions over Resources, e.g. a User
- ActiveRecord::Resource
a model that have, at least, CRUD operations and can be imported/exported in different formats, like Atom/RSS.
- ActiveRecord::Content
a Resource that belongs to a Container, e.g. a Post
- ActiveRecord::Container
a model that have many Contents, e.g. a Project
- ActiveRecord::Stage
a model that defines an RBAC Authorization framework for Agents, e.g. a Group
- ActiveRecord::Taggable
a model that can be tagged
- ActiveRecord::Logoable
a model with Logo
- ActiveRecord::Sortable
a model with a sortable list
An Agent has the capability to post Contents to Containers. An User is the example of Agent
script/generate station_agent Model
script/generate station_scaffold Model attributes
Create personal blogs with a pair of commands:
script/generate station_agent User script/generate station_scaffold Article content:text rake db:migrate
Users now can entry their own Articles
You can add AtomPub support for Articles creation. You must implement params_from_atom method in Article model:
defself.params_from_atom(entry) { :body=>entry.content.xml.to_s } end
Rails 2.3.4
RubyGems:
mislav-will_paginate
ruby-openid (optional)
atom-tools (optional)
nokogiri, prism (optional)
Rails Plugins:
attachment_fu
exception_notification (optional)
You need attachment_fu for Logos and Attachments support:
script/plugin install git://github.com/technoweenie/attachment_fu.git
To install Station, run:
script/plugin install -r stable git://github.com/atd/station.git
Install exception_notification plugin if you want to receive debugging emails from your application
script/plugin install git://github.com/rails/exception_notification.git
Run rake gems:install to install the required gem, mislav-will_paginate
You can install this aditional gems:
ruby-openid, for OpenID authentication support
atom-tools, for AtomPub support
nokogiri, prism, for HTML management, Microformats discovery
Agents authentication support: OAuth
Microformats
RDF: FOAF + SIOC
Copyright © 2008-2010 Antonio Tapiador, released under the LGPL license