Class: Protector::Adapters::Sequel::Dataset::Restrictor

Inherits:
Object
  • Object
show all
Defined in:
lib/protector/adapters/sequel/dataset.rb

Overview

Wrapper for the Dataset row_proc adding restriction function

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(subject, mutator) ⇒ Restrictor

Returns a new instance of Restrictor.



12
13
14
15
# File 'lib/protector/adapters/sequel/dataset.rb', line 12

def initialize(subject, mutator)
  @subject = subject
  @mutator = mutator
end

Instance Attribute Details

#mutatorObject

Returns the value of attribute mutator.



10
11
12
# File 'lib/protector/adapters/sequel/dataset.rb', line 10

def mutator
  @mutator
end

#subjectObject

Returns the value of attribute subject.



9
10
11
# File 'lib/protector/adapters/sequel/dataset.rb', line 9

def subject
  @subject
end

Instance Method Details

#call(entity) ⇒ Object

Mutate entity through row_proc if available and then protect

Parameters:

  • entity (Object)

    Entity coming from Dataset



20
21
22
23
24
# File 'lib/protector/adapters/sequel/dataset.rb', line 20

def call(entity)
  entity = mutator.call(entity) if mutator
  return entity unless entity.respond_to?(:restrict!)
  entity.restrict!(@subject)
end