Class: Kamaze::Project::Tools::Git::Hooks
- Extended by:
- Concern::Helper
- Defined in:
- lib/kamaze/project/tools/git/hooks.rb
Overview
Provide hooks
Kind of factory registering and building hooks
Defined Under Namespace
Class Attribute Summary collapse
-
.registered_hooks ⇒ Object
readonly
Returns the value of attribute registered_hooks.
Instance Attribute Summary collapse
- #repository ⇒ Kamaze::Project::Tools::Git readonly protected
Class Method Summary collapse
- .helper ⇒ Sys::Proc::Helper extended from Concern::Helper protected
- .register(name, klass = nil) ⇒ Object
Instance Method Summary collapse
- #[](key) ⇒ nil|Array<Hook>
-
#initialize(repository) ⇒ Hooks
constructor
A new instance of Hooks.
- #to_h ⇒ Hash
Constructor Details
#initialize(repository) ⇒ Hooks
Returns a new instance of Hooks.
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/kamaze/project/tools/git/hooks.rb', line 46 def initialize(repository) @hooks = {} @repository = repository [:pre_commit].each { |n| self.class.register(n) } self.class.registered_hooks.each do |name, klass| @hooks[name] = klass.new(repository) end end |
Class Attribute Details
.registered_hooks ⇒ Object (readonly)
Returns the value of attribute registered_hooks.
26 27 28 |
# File 'lib/kamaze/project/tools/git/hooks.rb', line 26 def registered_hooks @registered_hooks end |
Instance Attribute Details
#repository ⇒ Kamaze::Project::Tools::Git (readonly, protected)
71 72 73 |
# File 'lib/kamaze/project/tools/git/hooks.rb', line 71 def repository @repository end |
Class Method Details
.helper ⇒ Sys::Proc::Helper (protected) Originally defined in module Concern::Helper
.register(name, klass = nil) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/kamaze/project/tools/git/hooks.rb', line 28 def register(name, klass = nil) klass ||= proc do cname = helper.get(:inflector).classify(name.to_s) require_relative "hooks/#{name}" helper.get(:inflector).constantize("#{self.name}::#{cname}") end.call @registered_hooks ||= {} @registered_hooks[name] = klass self end |
Instance Method Details
#[](key) ⇒ nil|Array<Hook>
64 65 66 |
# File 'lib/kamaze/project/tools/git/hooks.rb', line 64 def [](key) to_h[key] end |
#to_h ⇒ Hash
58 59 60 |
# File 'lib/kamaze/project/tools/git/hooks.rb', line 58 def to_h @hooks.freeze end |