Skip to content
DEPRECATED, do not use it.
Ruby CSS
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
app
config
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”. That means authentication, authorization, roles, permissions, categories, tags, etc… but from a very flexible scope.

Webpage - Code - Documentation

Features

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

  • Authorization: Affordances, Roles and Permissions

  • 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.2

  • RubyGems:

    • ruby-openid

    • atom-tools

    • hpricot

    • mislav-will_paginate

  • Rails Plugins:

    • attachment_fu

    • exception_notification (optional)

Installation

Plugins

You need attachment_fu for Logos and Attachments:

script/plugin install git://github.com/atd/attachment_fu.git

To install Station, run:

script/plugin install 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 gems

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 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 atom_parser method in Article model:

def self.atom_parser(data)
  entry = Atom::Entry.new(data)

  { :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.