module Trailblazer::Macro::Policy
Public Class Methods
Guard(proc, name: :default, &block)
click to toggle source
# File lib/trailblazer/macro/guard.rb, line 3 def self.Guard(proc, name: :default, &block) Policy.step(Guard.build(proc), name: name) end
Pundit(policy_class, action, name: :default)
click to toggle source
# File lib/trailblazer/macro/pundit.rb, line 3 def self.Pundit(policy_class, action, name: :default) Policy.step(Pundit.build(policy_class, action), name: name) end
step(condition, options, &block)
click to toggle source
Adds the `yield` result to the pipe and treats it like a policy-compatible object at runtime.
# File lib/trailblazer/macro/policy.rb, line 29 def self.step(condition, options, &block) name = options[:name] path = :"policy.#{name}.eval" task = Eval.new(name: name, path: path) injection = Trailblazer::Activity::TaskWrap::Inject::Defaults::Extension( path => condition ) {task: task, id: path, extensions: [injection]} end