forked from sds/overcommit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhook_context.rb
More file actions
19 lines (16 loc) · 738 Bytes
/
hook_context.rb
File metadata and controls
19 lines (16 loc) · 738 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# frozen_string_literal: true
# Utility module which manages the creation of {HookContext}s.
module Overcommit::HookContext
def self.create(hook_type, config, args, input)
hook_type_class = Overcommit::Utils.camel_case(hook_type)
underscored_hook_type = Overcommit::Utils.snake_case(hook_type)
require "overcommit/hook_context/#{underscored_hook_type}"
Overcommit::HookContext.const_get(hook_type_class).new(config, args, input)
rescue LoadError, NameError => e
# Could happen when a symlink was created for a hook type Overcommit does
# not yet support.
raise Overcommit::Exceptions::HookContextLoadError,
"Unable to load '#{hook_type}' hook context: '#{e}'",
e.backtrace
end
end