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
(andprototype.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)
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
-
Sinatra micro-framework: sinatra.rubyforge.org
-
Prototype JavaScript library: www.prototypejs.org/
-
Unobtrusive JavaScript: en.wikipedia.org/wiki/Unobtrusive_JavaScript
The application was created by Karel Minařík (www.karmi.cz)