class Sliver::Runner
Attributes
environment[R]
klass[R]
Public Class Methods
new(klass, environment)
click to toggle source
# File lib/sliver/runner.rb, line 2 def initialize(klass, environment) @klass, @environment = klass, environment @guarded = false end
Public Instance Methods
call()
click to toggle source
# File lib/sliver/runner.rb, line 8 def call pass_guards action.call unless skip_action? post_process response.to_a end
Private Instance Methods
action()
click to toggle source
# File lib/sliver/runner.rb, line 20 def action @action ||= klass.new environment, response end
guard_classes()
click to toggle source
# File lib/sliver/runner.rb, line 24 def guard_classes klass.guards end
guarded!()
click to toggle source
# File lib/sliver/runner.rb, line 32 def guarded! @guarded = true end
guarded?()
click to toggle source
# File lib/sliver/runner.rb, line 28 def guarded? @guarded end
pass_guards()
click to toggle source
# File lib/sliver/runner.rb, line 36 def pass_guards guard_classes.each do |guard_class| guard = guard_class.new action, response next if guard.continue? guard.respond guarded! break end end
post_process()
click to toggle source
# File lib/sliver/runner.rb, line 47 def post_process klass.processors.each { |processor| processor.call action, response } end
response()
click to toggle source
# File lib/sliver/runner.rb, line 51 def response @response ||= Sliver::Response.new end
skip_action?()
click to toggle source
# File lib/sliver/runner.rb, line 55 def skip_action? guarded? || action.skip? end