public
Description: YAML based micro-chat in Sinatra framework for Ruby
Homepage: http://blog.karmi.cz/
Clone URL: git://github.com/karmi/yaml_micro_chat.git
name age message
file .gitignore Tue Jul 01 05:04:03 -0700 2008 Ignoring file "nohup.out" You can start a Sina... [karmi]
file MIT-LICENSE.txt Sun Jun 29 08:52:22 -0700 2008 Initial commit of the application [karmi]
file README.rdoc Tue Jul 01 05:22:29 -0700 2008 README cleanup [karmi]
file chat.rb Tue Jul 01 05:27:57 -0700 2008 Fixed human_date. %m certainly isn't the same t... [karmi]
file messages.example Sun Jun 29 08:52:22 -0700 2008 Initial commit of the application [karmi]
directory public/ Tue Jul 01 05:01:59 -0700 2008 Added helper for formatting date of posting mes... [karmi]
directory test/ Sun Jun 29 08:52:22 -0700 2008 Initial commit of the application [karmi]
directory views/ Tue Jul 01 05:01:59 -0700 2008 Added helper for formatting date of posting mes... [karmi]
README.rdoc

YAML-based micro chat with Sinatra

About

This mini-application demonstrates the elegance and power of the Ruby language, the Sinatra micro-framework and the Protoype JavaScript library.

It consists of six files for every essential aspect of the application:

  • The chat.rb file, which holds the application logic (loading and saving the messages)
  • The index.html file, which defines the GUI of the application
  • The screen.css which defines the visual style of the application
  • The aplication.js (and prototype.js) files which enable rich interactivity (continuous updating and instant posting)
  • The messages.yml file which holds the data in YAML format (rename the messages.example file)

The layers are thus properly separated even in this micro-application. It degrades finely for browsers without JavaScript enabled.

It even features simplistic Unit tests for the application (see test directory)

Installation

Unpack the application, rename messages.example to messages.yml and run

  ruby chat.rb

in the application directory in the console. You will see something like:

  == Sinatra has taken the stage on port 4567!

Then point your browser to:

  http://localhost:4567

Resources

Credits

The application was created by Karel Minařík (www.karmi.cz)