Merge branch 'optional-associations' of https://github.com/socialcast/cancan into socialcast-optional-associations
This commit is contained in:
		
						commit
						b1424dfa49
					
				@ -109,7 +109,7 @@ module CanCan
 | 
				
			|||||||
                if attribute.kind_of? Array
 | 
					                if attribute.kind_of? Array
 | 
				
			||||||
                  attribute.any? { |element| matches_conditions_hash? element, value }
 | 
					                  attribute.any? { |element| matches_conditions_hash? element, value }
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                  matches_conditions_hash? attribute, value
 | 
					                  !attribute.nil? && matches_conditions_hash?(attribute, value)
 | 
				
			||||||
                end
 | 
					                end
 | 
				
			||||||
              elsif value.kind_of?(Array) || value.kind_of?(Range)
 | 
					              elsif value.kind_of?(Array) || value.kind_of?(Range)
 | 
				
			||||||
                value.include? attribute
 | 
					                value.include? attribute
 | 
				
			||||||
 | 
				
			|||||||
@ -250,6 +250,13 @@ describe CanCan::Ability do
 | 
				
			|||||||
    @ability.can?(:read, 4..6).should be_false
 | 
					    @ability.can?(:read, 4..6).should be_false
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
					  it "should not match subjects return nil for methods that must match nested a nested conditions hash" do
 | 
				
			||||||
 | 
					    mock(object_with_foo = Object.new).foo { :bar }
 | 
				
			||||||
 | 
					    @ability.can :read, Array, :first => { :foo => :bar }
 | 
				
			||||||
 | 
					    @ability.can?(:read, [object_with_foo]).should be_true
 | 
				
			||||||
 | 
					    @ability.can?(:read, []).should be_false
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  it "should not stop at cannot definition when comparing class" do
 | 
					  it "should not stop at cannot definition when comparing class" do
 | 
				
			||||||
    @ability.can :read, Range
 | 
					    @ability.can :read, Range
 | 
				
			||||||
    @ability.cannot :read, Range, :begin => 1
 | 
					    @ability.cannot :read, Range, :begin => 1
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user