Class: CanCan::ModelAdapters::DataMapperAdapter
Class Method Summary
collapse
Instance Method Summary
collapse
adapter_class, inherited, #initialize, matches_condition?, override_condition_matching?
Class Method Details
.find(model_class, id) ⇒ Object
8
9
10
|
# File 'lib/cancan/model_adapters/data_mapper_adapter.rb', line 8
def self.find(model_class, id)
model_class.get(id)
end
|
.for_class?(model_class) ⇒ Boolean
4
5
6
|
# File 'lib/cancan/model_adapters/data_mapper_adapter.rb', line 4
def self.for_class?(model_class)
model_class <= DataMapper::Resource
end
|
.matches_conditions_hash?(subject, conditions) ⇒ Boolean
16
17
18
19
|
# File 'lib/cancan/model_adapters/data_mapper_adapter.rb', line 16
def self.matches_conditions_hash?(subject, conditions)
collection = DataMapper::Collection.new(subject.query, [ subject ])
!!collection.first(conditions)
end
|
.override_conditions_hash_matching?(subject, conditions) ⇒ Boolean
12
13
14
|
# File 'lib/cancan/model_adapters/data_mapper_adapter.rb', line 12
def self.override_conditions_hash_matching?(subject, conditions)
conditions.any? { |k,v| !k.kind_of?(Symbol) }
end
|
Instance Method Details
#database_records ⇒ Object
21
22
23
24
25
26
27
28
29
|
# File 'lib/cancan/model_adapters/data_mapper_adapter.rb', line 21
def database_records
scope = @model_class.all(:conditions => ["0 = 1"])
cans, cannots = @rules.partition { |r| r.base_behavior }
return scope if cans.empty?
cans.each { |r| scope += @model_class.all(:conditions => r.conditions) }
cannots.each { |r| scope -= @model_class.all(:conditions => r.conditions) }
scope
end
|