class HookHandler
Public Class Methods
new(config)
click to toggle source
# File lib/hook_handler.rb, line 9 def initialize(config) @config = config end
Public Instance Methods
do_hooks(name)
click to toggle source
# File lib/hook_handler.rb, line 13 def do_hooks(name) raise HookConfigError, "'hooks.#{name}' must be a list" unless hooks(name).is_a?(Array) execute_hooks(name) end
Private Instance Methods
execute_hook(name)
click to toggle source
# File lib/hook_handler.rb, line 36 def execute_hook(name) executor = Executor.new(name) executor.execute [executor.output, executor.exit_code] end
execute_hooks(name)
click to toggle source
# File lib/hook_handler.rb, line 25 def execute_hooks(name) hooks(name).each do |hook| Output.notice("Running #{name} hook: #{hook}") output, exit_code = execute_hook(hook) next if exit_code.zero? raise HookExecError, "#{name} hook '#{hook}' failed with exit code #{exit_code}:\n#{output}" end end
hooks(name)
click to toggle source
# File lib/hook_handler.rb, line 21 def hooks(name) @config.dig("hooks", name) || [] end