h1. Rails OPTIONSful Provide dynamic information about resources via the OPTIONS' HTTP method on a RESTful design over the Ruby on Rails framework. * Note for the impatient: installation instructions below. * Note for the dummies: change host names and paths properly. * Note for the unfaithful: run @rake routes@ to validate the results. h2. "-No! No! No! *-Show me the code!*" h3. Retrieving an HTTP OPTIONS request via telnet:
  
$ telnet localhost 3000 
OPTIONS /posts HTTP/1.1
Host: http://localhost:3000

HTTP/1.1 204 No Content 
Allow: GET, POST
Connection: close
Date: Thu, 22 Jul 2010 17:20:27 GMT
Link: ; type=text/html; rel=help

OPTIONS /posts/1 HTTP/1.1
Host: http://localhost:3000

HTTP/1.1 204 No Content 
Allow: GET, PUT, DELETE
Connection: close
Date: Thu, 22 Jul 2010 18:14:24 GMT
Link: ; type=text/html; rel=help

OPTIONS /posts/1/comments HTTP/1.1
Host: http://localhost:3000

HTTP/1.1 204 No Content 
Allow: GET, POST
Connection: close
Date: Thu, 22 Jul 2010 18:12:43 GMT
Link: ; type=text/html; rel=help

~Note the empty line which is part of the HTTP protocol.~ h3. Retrieving the resource/service documentation right from your browser: * Access the given Link header through your preferable browser. Yeah, via an HTTP GET request. * @http://localhost:3000/opts/posts/1/comments@ for instance. * Try up adding some RDoc-like comments above your actions definitions on the appropriate controllers. * Refresh the page and your documentation and have fun! * There's a lot of helpful things we can do with this extracted 'on-the-fly' information (metadata). h2. INSTALLATION: # Change directory to your Ruby on Rails web application, # Add gem dependency to @config/environment.rb@:
  config.gem "optionsful"
# To install it, run:
  $ gem install optionsful
# Have fun! h2. TODO & WHISH-LIST * -Make the installation easier.- * -Create tests! (Oh no! Psst! Don't tell anyone!)- h2. KNOWN ISSUES * -Rails route recognition need hard work- * Platform: ruby 1.8.7, rails 2.3.8, rack 1.2.1 h2. CONTRIBUTORS * Me, myself and I, so far. * You are welcome, do it. ;-) Copyright (c) 2010 Marco Antonio Gonzalez Junior, kayaman@baurets.net, released under the MIT license.