Class: Tap::Signals::Help

Inherits:
Signal
  • Object
show all
Defined in:
lib/tap/signals/help.rb

Instance Attribute Summary

Attributes inherited from Signal

#block, #obj

Instance Method Summary collapse

Methods inherited from Signal

#initialize, #process

Constructor Details

This class inherits a constructor from Tap::Signals::Signal

Instance Method Details

#call(args) ⇒ Object



7
8
9
10
# File 'lib/tap/signals/help.rb', line 7

def call(args)
  argv = convert_to_array(args, ['sig'])
  argv.empty? ? list : desc(*argv)
end

#desc(sig) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/tap/signals/help.rb', line 28

def desc(sig)
  clas = obj.signal(sig).class
  
  if clas.respond_to?(:desc)
    desc = clas.desc
    "#{clas} -- #{desc.to_s}\n#{desc.wrap}"
  else
    "#{clas} -- no help available"
  end
end

#listObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/tap/signals/help.rb', line 12

def list
  signals = obj.class.signals
  width = signals.keys.collect {|key| key.length }.max
  
  lines = []
  signals.each_pair do |key, signal|
    next if key.empty?
    
    desc = signal.desc.to_s
    desc = " # #{desc}" unless desc.empty?
    lines << "  /#{key.ljust(width)}#{desc}"
  end
  
  "signals: (#{obj.class})\n#{lines.join("\n")}"
end