This repository has been archived by the owner. It is now read-only.
Adds boolean instance methods for MIME type checking to Rails
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
tasks
test
MIT-LICENSE
README.rdoc
Rakefile
init.rb
install.rb
uninstall.rb

README.rdoc

DEPRECATED

This plugin is now deprecated. If you would like to dispatch on the MIME type from within a Rails controller you should use the #respond_to method or the mobile_fu plugin.

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 © 2008 Dan Croak, Jared Carroll, and thoughtbot, inc. released under the MIT license