class SpeedGun::Hook
Attributes
name[R]
Public Class Methods
hooks()
click to toggle source
# File lib/speed_gun/hook.rb, line 4 def self.hooks @hooks ||= [] end
install!()
click to toggle source
# File lib/speed_gun/hook.rb, line 8 def self.install! hooks.each do |hook| hook.available? && hook.install! end end
new(name, &block)
click to toggle source
# File lib/speed_gun/hook.rb, line 16 def initialize(name, &block) @name = name @installed = false @available_checker = -> { true } @execute = -> { true } self.class.hooks.push(self) instance_eval(&block) end
Public Instance Methods
available?()
click to toggle source
# File lib/speed_gun/hook.rb, line 33 def available? @available_checker.is_a?(Proc) && @available_checker.call end
depends(&block)
click to toggle source
# File lib/speed_gun/hook.rb, line 25 def depends(&block) @available_checker = block end
execute(&block)
click to toggle source
# File lib/speed_gun/hook.rb, line 29 def execute(&block) @execute = block end
install!()
click to toggle source
# File lib/speed_gun/hook.rb, line 37 def install! return if @installed @execute.is_a?(Proc) && @execute.call @installed = true end