module Eco::CLI::Config::Help
Public Instance Methods
help(*args)
click to toggle source
# File lib/eco/cli/config/help.rb, line 6 def help(*args) raise "this needs to be reimplemented in the child class and return a string" end
Private Instance Methods
each_slice_words(str, max_len = 100) { |liner| ... }
click to toggle source
# File lib/eco/cli/config/help.rb, line 29 def each_slice_words(str, max_len = 100) liner = "" str.to_s.scan(/[^\s]+|\s+/).each_with_object([]) do |part, out| if "#{liner}#{part}".length <= max_len liner << part else yield(liner) if block_given? out << liner liner = part.strip end end.tap do |out| if out.empty? || !liner.empty? yield(liner) if block_given? out << liner if liner end end end
help_line(key, desc, keys_max_len = key.length, line_len = 100)
click to toggle source
Creatas a well aligned line
# File lib/eco/cli/config/help.rb, line 17 def help_line(key, desc, keys_max_len = key.length, line_len = 100) blanks = keys_max_len + 3 - key.length blanks = blanks < 0 ? 0 : blanks top_line = " #{key}#{" "*blanks} " indent = top_line.length first = true each_slice_words(desc, line_len - indent).each_with_object([]) do |line, lines| lines << (first ? "#{top_line}#{line}" : "#{" " * indent}#{line}") first = false end.join("\n") end
keys_max_len(keys)
click to toggle source
# File lib/eco/cli/config/help.rb, line 12 def keys_max_len(keys) keys.max {|a, b| a.length <=> b.length}.length end