Class: CanCanCan::Squeel::SqueelAdapter
- Inherits:
-
CanCan::ModelAdapters::AbstractAdapter
- Object
- CanCan::ModelAdapters::AbstractAdapter
- CanCanCan::Squeel::SqueelAdapter
- Defined in:
- lib/cancancan/squeel/squeel_adapter.rb
Class Method Summary collapse
- .for_class?(model_class) ⇒ Boolean
- .matches_condition?(subject, name, value) ⇒ Boolean
- .override_condition_matching?(subject, name, _) ⇒ Boolean
Instance Method Summary collapse
Class Method Details
.for_class?(model_class) ⇒ Boolean
2 3 4 |
# File 'lib/cancancan/squeel/squeel_adapter.rb', line 2 def self.for_class?(model_class) model_class <= ActiveRecord::Base end |
.matches_condition?(subject, name, value) ⇒ Boolean
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/cancancan/squeel/squeel_adapter.rb', line 12 def self.matches_condition?(subject, name, value) # Get the mapping from enum strings to values. enum = subject.class.public_send(name.to_s.pluralize) # Get the value of the attribute as an integer. attribute = enum[subject.public_send(name)] # Check to see if the value matches the condition. value.is_a?(Enumerable) ? value.include?(attribute) : attribute == value end |
.override_condition_matching?(subject, name, _) ⇒ Boolean
6 7 8 9 10 |
# File 'lib/cancancan/squeel/squeel_adapter.rb', line 6 def self.override_condition_matching?(subject, name, _) return false unless subject.class.respond_to?(:defined_enums) subject.class.defined_enums.include?(name.to_s) end |
Instance Method Details
#database_records ⇒ Object
23 24 25 26 |
# File 'lib/cancancan/squeel/squeel_adapter.rb', line 23 def database_records # TODO: Handle overridden scopes. relation.distinct end |