class CanCan::ModelAdapters::AbstractAdapter
Public Class Methods
adapter_class(model_class)
click to toggle source
# File lib/cancan/model_adapters/abstract_adapter.rb, line 9 def self.adapter_class(model_class) @subclasses.detect { |subclass| subclass.for_class?(model_class) } || DefaultAdapter end
find(model_class, id)
click to toggle source
Override if you need custom find behavior
# File lib/cancan/model_adapters/abstract_adapter.rb, line 19 def self.find(model_class, id) model_class.find(id) end
for_class?(member_class)
click to toggle source
Used to determine if the given adapter should be used for the passed in class.
# File lib/cancan/model_adapters/abstract_adapter.rb, line 14 def self.for_class?(member_class) false # override in subclass end
inherited(subclass)
click to toggle source
# File lib/cancan/model_adapters/abstract_adapter.rb, line 4 def self.inherited(subclass) @subclasses ||= [] @subclasses << subclass end
matches_condition?(subject, name, value)
click to toggle source
Override if override_condition_matching? returns true
# File lib/cancan/model_adapters/abstract_adapter.rb, line 41 def self.matches_condition?(subject, name, value) raise NotImplemented, "This model adapter does not support matching on a specific condition." end
matches_conditions_hash?(subject, conditions)
click to toggle source
Override if override_conditions_hash_matching? returns true
# File lib/cancan/model_adapters/abstract_adapter.rb, line 30 def self.matches_conditions_hash?(subject, conditions) raise NotImplemented, "This model adapter does not support matching on a conditions hash." end
new(model_class, rules)
click to toggle source
# File lib/cancan/model_adapters/abstract_adapter.rb, line 45 def initialize(model_class, rules) @model_class = model_class @rules = rules end
override_condition_matching?(subject, name, value)
click to toggle source
Used to determine if this model adapter will override the matching behavior for a specific condition. If this returns true then matches_condition? will be called. See Rule#matches_conditions_hash
# File lib/cancan/model_adapters/abstract_adapter.rb, line 36 def self.override_condition_matching?(subject, name, value) false end
override_conditions_hash_matching?(subject, conditions)
click to toggle source
Used to determine if this model adapter will override the matching behavior for a hash of conditions. If this returns true then matches_conditions_hash? will be called. See Rule#matches_conditions_hash
# File lib/cancan/model_adapters/abstract_adapter.rb, line 25 def self.override_conditions_hash_matching?(subject, conditions) false end
Public Instance Methods
database_records()
click to toggle source
# File lib/cancan/model_adapters/abstract_adapter.rb, line 50 def database_records # This should be overridden in a subclass to return records which match @rules raise NotImplemented, "This model adapter does not support fetching records from the database." end