needs_profile.rb 498 Bytes
module NeedsProfile

  module ClassMethods
    def needs_profile
      before_filter :load_profile
    end
  end

  def self.included(including)
    including.send(:extend, NeedsProfile::ClassMethods)
  end

  def boxes_holder
    profile || environment # prefers profile, but defaults to environment
  end

  protected 

  def profile
    @profile
  end

  def load_profile
    @profile ||= environment.profiles.find_by_identifier(params[:profile])
    render_not_found unless @profile
  end

end