class Terraspace::Hooks::Runner
Attributes
hook[R]
exposing mod and hook so terraspace hooks have access to them via runner context. IE:
class EnvExporter def call(runner) puts "runner.hook #{runner.hook}" end end
Docs: terraspace.cloud/docs/config/hooks/ruby/#method-argument
mod[R]
exposing mod and hook so terraspace hooks have access to them via runner context. IE:
class EnvExporter def call(runner) puts "runner.hook #{runner.hook}" end end
Docs: terraspace.cloud/docs/config/hooks/ruby/#method-argument
Public Class Methods
new(mod, hook)
click to toggle source
# File lib/terraspace/hooks/runner.rb, line 16 def initialize(mod, hook) @mod, @hook = mod, hook @execute = @hook["execute"] end
Public Instance Methods
run()
click to toggle source
# File lib/terraspace/hooks/runner.rb, line 21 def run case @execute when String Terraspace::Shell.new(@mod, @execute, exit_on_fail: @hook["exit_on_fail"]).run when -> (e) { e.respond_to?(:public_instance_methods) && e.public_instance_methods.include?(:call) } executor = @execute.new when -> (e) { e.respond_to?(:call) } executor = @execute else logger.warn "WARN: execute option not set for hook: #{@hook.inspect}" end return unless executor meth = executor.method(:call) case meth.arity when 0 executor.call # backwards compatibility when 1 executor.call(self) else raise "The #{executor} call method definition has been more than 1 arguments and is not supported" end end