public
Description: Adds boolean instance methods for MIME type checking to Rails
Homepage:
Clone URL: git://github.com/thoughtbot/what.git
what /
name age message
file MIT-LICENSE Loading commit data...
file README
file Rakefile Mon Feb 18 20:31:47 -0800 2008 created the what plugin git-svn-id: https://sv... [dcroak]
file init.rb
file install.rb
directory lib/
directory tasks/
directory test/
file uninstall.rb
README
What
====

What provides boolean query methods on Mime::Type instances 
for the native Rails mime-types. You now have these methods
available from your controllers:

request.format.atom?
request.format.css?
request.format.csv?
request.format.html?
request.format.ics?
request.format.js?
request.format.json?
request.format.multipart_form?
request.format.rss?
request.format.text?
request.format.url_encoded_form?
request.format.xml?
request.format.yaml?

... and any custom mime types that you add in any environment specific config files.

Examples
========

# config/initializers/mime_types.rb

Mime::Type.register 'text/iphone', :iphone

# app/controllers/what_controller.rb

class WhatController < ApplicationController

  before_filter :csv?, :iphone?

  def index
    render :text => 'index'
  end

  protected

  def csv?
    if request.format.csv?
      redirect_to login_url
    end
  end

  def iphone?
    if request.format.iphone?
      redirect_to login_url
    end
  end

end

What is especially powerful in combination with When.

# app/controllers/what_controller.rb

class WhatController < ApplicationController

  before_filter :login, :if => :csv?
  before_filter :login, :if => lambda { |controller| controller.request.format.iphone? }

  def index
    render :text => 'index'
  end

  protected

  def csv?
    request.format.csv?
  end

  def login
    redirect_to login_url
  end

end

Copyright (c) 2008 Dan Croak, Jared Carroll, and thoughtbot, inc. released under the MIT license