class Termtter::Hook

Attributes

exec_proc[RW]
name[RW]
points[RW]

Public Class Methods

new(args) click to toggle source
# File lib/termtter/hook.rb, line 6
def initialize(args)
  raise ArgumentError, ":name is not given." unless args.has_key?(:name)
  @name = args[:name].to_sym
  @points = args[:points] || [args[:point]].compact
  @exec_proc = args[:exec_proc] || args[:exec] || lambda {}
end

Public Instance Methods

call(*args) click to toggle source
# File lib/termtter/hook.rb, line 26
def call(*args)
  begin
    self.exec_proc.call(*args)
  rescue ArgumentError
    args.pop
    retry
  end
end
match?(point) click to toggle source
# File lib/termtter/hook.rb, line 13
def match?(point)
  points.any? {|pt|
    case pt
    when String, Symbol
      pt.to_s == point.to_s
    when Regexp
      (pt =~ point.to_s) ? true : false
    else
      false
    end
  }
end