class HammerCLI::Help::List
Constants
- LIST_INDENT
Public Class Methods
new(items, options = {})
click to toggle source
Calls superclass method
HammerCLI::Help::AbstractItem::new
# File lib/hammer_cli/help/definition/list.rb, line 6 def initialize(items, options = {}) super(options) @indent_size = options[:indent_size] || indent_size(items) build_definition(items || []) end
Public Instance Methods
build_string()
click to toggle source
# File lib/hammer_cli/help/definition/list.rb, line 12 def build_string out = StringIO.new @definition.each do |item| out.puts item.build_string end out.string end
Protected Instance Methods
build_definition(items)
click to toggle source
# File lib/hammer_cli/help/definition/list.rb, line 22 def build_definition(items) @definition = Definition.new items.each do |item| @definition << Text.new(format_item(item)) end @definition end
Private Instance Methods
format_item(item)
click to toggle source
# File lib/hammer_cli/help/definition/list.rb, line 38 def format_item(item) col1, col2, options = item options ||= {} col1 = HighLine.color(col1.to_s, :bold) if options[:bold] col2 = indent(col2.to_s, ' ' * @indent_size).lstrip padding = col1.length - HammerCLI::Output::Utils.real_length(col1) line = "%-#{@indent_size + padding}s%s" % [col1, col2] line.strip! line end
indent_size(items)
click to toggle source
# File lib/hammer_cli/help/definition/list.rb, line 32 def indent_size(items) items = normalize(items) max_len = items.map { |i| i[0].to_s.length }.max (max_len + INDENT_STEP > LIST_INDENT) ? (max_len + INDENT_STEP) : LIST_INDENT end
normalize(items)
click to toggle source
# File lib/hammer_cli/help/definition/list.rb, line 49 def normalize(items) items.map do |i| i.is_a?(Array) ? i : [i] end end