Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
DEPRECATED, do not use it.
Ruby CSS

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
app
config
db/migrate
doc/template
generators
lib
tasks
test
LGPL-LICENSE
README.rdoc
Rakefile
init.rb
install.rb
uninstall.rb

README.rdoc

Station

Station is to Rails in Content Management System like Rails is to Ruby in Web Development.

Rails   = Ruby  + Web Development
Station = Rails + Content Management

Station provides your Rails application with a “CMS framework”. This means authentication, authorization, roles, permissions, categories, tags, etc… but from a very flexible scope.

Webpage - Blog - Code - Documentation

Features

  • Authentication: Login/Password, OpenID, Central Authentication Service (CAS), CookieToken

  • Authorization: Access Control, Roles and Permissions (RBAC)

  • Activation: Email validation, Password reset

  • Atom feeds, RFC 4287

  • AtomPub protocol, RFC 5023

  • Taxonomies: Categories, Categories Domains

  • Folksonomies: Tags, Taggable models

  • Logos for models

  • Sortable lists for models

  • Integration with exception_notification plugin

Requirements

  • Rails 2.3.4

  • RubyGems:

    • mislav-will_paginate

    • ruby-openid (optional)

    • atom-tools (optional)

    • hpricot (optional)

  • Rails Plugins:

    • attachment_fu

    • exception_notification (optional)

Installation

Plugins

You need attachment_fu for Logos and Attachments support:

script/plugin install git://github.com/atd/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

Gems

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

  • hpricot, for HTML discovery

Architecture

You can add this functionality to any of your ActiveRecord models:

Basic

ActiveRecord::Resource

a model that have, at least, CRUD operations and can be imported/exported in different formats.

ActiveRecord::Content

a Resource that belongs to a Container, e.g. a Post

ActiveRecord::Container

a model that have many Contents, e.g. a Space

ActiveRecord::Agent

a model with authentication, authorization and potencial to perform actions over Resources, e.g. a User

ActiveRecord::Stage

a model that defines an RBAC Authorization framework for Agents, e.g. a Group

Complements

ActiveRecord::CategoriesDomain

a model which instances define Ontology domains

ActiveRecord::Categorizable

a model that can be classified in any Category

ActiveRecord::Taggable

a model that can be tagged

ActiveRecord::Logoable

a model with Logo

ActiveRecord::Sortable

a model with a sortable list

Generators

Agents

An Agent has the capability to post Contents to Containers. An User is the example of Agent

script/generate station_agent Model

Resources

script/generate station_scaffold Model attributes

Example

Blog

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

TODO

  • Agents authentication support: OAuth

  • Microformats

  • RDF: FOAF + SIOC

Copyright © 2008-2009 Antonio Tapiador, released under the LGPL license

Something went wrong with that request. Please try again.