Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: c4ebad8b19
Fetching contributors…

Cannot retrieve contributors at this time

88 lines (61 sloc) 1.998 kb

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

Jump to Line
Something went wrong with that request. Please try again.