Class: Passpartu::Patcher
- Inherits:
-
Object
- Object
- Passpartu::Patcher
- Defined in:
- lib/passpartu/patcher.rb
Instance Attribute Summary collapse
-
#klass ⇒ Object
readonly
Returns the value of attribute klass.
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(klass) ⇒ Patcher
constructor
A new instance of Patcher.
Constructor Details
#initialize(klass) ⇒ Patcher
Returns a new instance of Patcher.
7 8 9 10 11 |
# File 'lib/passpartu/patcher.rb', line 7 def initialize(klass) raise PolicyYmlNotFoundError if Passpartu.policy.nil? @klass = klass end |
Instance Attribute Details
#klass ⇒ Object (readonly)
Returns the value of attribute klass.
5 6 7 |
# File 'lib/passpartu/patcher.rb', line 5 def klass @klass end |
Class Method Details
.call(klass) ⇒ Object
13 14 15 |
# File 'lib/passpartu/patcher.rb', line 13 def self.call(klass) new(klass).call end |
Instance Method Details
#call ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/passpartu/patcher.rb', line 17 def call klass.class_eval do define_method(:can?) do |*keys, only: nil, except: nil, skip: nil, &block| Passpartu::BlockVerify.call(role, keys, only: only, except: except, skip: skip, &block) end Passpartu.policy.each_key do |policy_role| define_method("#{policy_role}_can?") do |*keys, only: nil, except: nil, skip: nil, &block| role.to_s == policy_role && Passpartu::BlockVerify.call(role, keys, only: only, except: except, skip: skip, &block) end end end end |