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…
Reference in New Issue
Block a user