Class: Passpartu::Verify

Inherits:
Object
  • Object
show all
Defined in:
lib/passpartu/verify.rb

Direct Known Subclasses

BlockVerify

Constant Summary collapse

CRUD_KEY =
'crud'.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(role, keys, except, block) ⇒ Verify

Returns a new instance of Verify.



6
7
8
9
10
11
# File 'lib/passpartu/verify.rb', line 6

def initialize(role, keys, except, block)
  @role = role.to_s
  @keys = keys.map(&:to_s)
  @except = Array(except).map(&:to_s) if present?(except)
  @block = block
end

Instance Attribute Details

#blockObject (readonly)

Returns the value of attribute block.



5
6
7
# File 'lib/passpartu/verify.rb', line 5

def block
  @block
end

#exceptObject (readonly)

Returns the value of attribute except.



5
6
7
# File 'lib/passpartu/verify.rb', line 5

def except
  @except
end

#keysObject (readonly)

Returns the value of attribute keys.



5
6
7
# File 'lib/passpartu/verify.rb', line 5

def keys
  @keys
end

#resultObject (readonly)

Returns the value of attribute result.



5
6
7
# File 'lib/passpartu/verify.rb', line 5

def result
  @result
end

#roleObject (readonly)

Returns the value of attribute role.



5
6
7
# File 'lib/passpartu/verify.rb', line 5

def role
  @role
end

Class Method Details

.call(role, keys, except: nil, &block) ⇒ Object



13
14
15
# File 'lib/passpartu/verify.rb', line 13

def self.call(role, keys, except: nil, &block)
  new(role, keys, except, block).call
end

Instance Method Details

#callObject



17
18
19
20
21
22
23
24
# File 'lib/passpartu/verify.rb', line 17

def call
  return false if role_excepted?

  check_policy
  check_crud if policy_missed? && last_key_crud?

  validate_result
end