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:
def self.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