Merge branch 'master' into 2.0
This commit is contained in:
		
						commit
						2160183e86
					
				
							
								
								
									
										2
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Gemfile
									
									
									
									
									
								
							@ -4,7 +4,7 @@ case ENV["MODEL_ADAPTER"]
 | 
			
		||||
when nil, "active_record"
 | 
			
		||||
  gem "sqlite3"
 | 
			
		||||
  gem "activerecord", '~> 3.0.9', :require => "active_record"
 | 
			
		||||
  gem "with_model"
 | 
			
		||||
  gem "with_model", '~> 0.1.5'
 | 
			
		||||
  gem "meta_where"
 | 
			
		||||
when "data_mapper"
 | 
			
		||||
  gem "dm-core", "~> 1.0.2"
 | 
			
		||||
 | 
			
		||||
@ -141,7 +141,7 @@ module CanCan
 | 
			
		||||
    def resource_class
 | 
			
		||||
      case @options[:class]
 | 
			
		||||
      when false  then name.to_sym
 | 
			
		||||
      when nil    then name.to_s.camelize.constantize
 | 
			
		||||
      when nil    then namespaced_name.to_s.camelize.constantize
 | 
			
		||||
      when String then @options[:class].constantize
 | 
			
		||||
      else @options[:class]
 | 
			
		||||
      end
 | 
			
		||||
@ -220,6 +220,12 @@ module CanCan
 | 
			
		||||
      @name || name_from_controller
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def namespaced_name
 | 
			
		||||
      @params[:controller].sub("Controller", "").singularize.camelize.constantize
 | 
			
		||||
    rescue NameError
 | 
			
		||||
      name
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def name_from_controller
 | 
			
		||||
      @params[:controller].sub("Controller", "").underscore.split('/').last.singularize
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
@ -33,6 +33,18 @@ describe CanCan::ControllerResource do
 | 
			
		||||
    @controller.instance_variable_get(:@project).should == project
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  it "should attempt to load a resource with the same namespace as the controller when using :: for namespace" do
 | 
			
		||||
    module MyEngine
 | 
			
		||||
      class Project < ::Project; end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    project = MyEngine::Project.create!
 | 
			
		||||
    @params.merge!(:controller => "MyEngine::ProjectsController", :action => "show", :id => project.id)
 | 
			
		||||
    resource = CanCan::ControllerResource.new(@controller)
 | 
			
		||||
    resource.load_resource
 | 
			
		||||
    @controller.instance_variable_get(:@project).should == project
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  it "should properly load resource for namespaced controller when using '::' for namespace" do
 | 
			
		||||
    project = Project.create!
 | 
			
		||||
    @params.merge!(:controller => "Admin::ProjectsController", :action => "show", :id => project.id)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user