# File lib/kafo/help_builders/base.rb, line 11 def initialize(params) super() @params = params end
# File lib/kafo/help_builders/base.rb, line 16 def add_list(heading, items) if heading == 'Options' puts "\n#{heading}:" data = by_module(items) sorted_keys(data).each do |section| if section == 'Generic' add_list(header(1, section), data[section]) else add_module(section, data[section]) end end else super end end
# File lib/kafo/help_builders/base.rb, line 42 def add_module(name, items) raise NotImplementedError, 'add module not defined' end
# File lib/kafo/help_builders/base.rb, line 71 def by_module(help_items) data = Hash.new { |h, k| h[k] = [] } params_mapping(help_items).each do |item, param| data[param.nil? ? DEFAULT_MODULE_NAME : param.module_name].push item end data end
# File lib/kafo/help_builders/base.rb, line 58 def by_parameter_groups(items) data = Hash.new { |h, k| h[k] = [] } params_mapping(items).each do |item, param| data[group(param)].push item end data end
# File lib/kafo/help_builders/base.rb, line 66 def group(param) name = param.groups.reverse.find { |group| group.include?('parameters') } name.nil? ? DEFAULT_GROUP_NAME : name.sub(IGNORE_IN_GROUP_NAME, '') end
# File lib/kafo/help_builders/base.rb, line 46 def header(level, text) level(level) + ' ' + text end
# File lib/kafo/help_builders/base.rb, line 54 def level(n) '=' * n end
# File lib/kafo/help_builders/base.rb, line 50 def module_header(name) "\n" + header(1, 'Module ' + name) end
# File lib/kafo/help_builders/base.rb, line 83 def parametrization @parametrization ||= begin @params.inject({}) do |h,p| h.update(parametrize(p) => p, parametrize(p, 'reset-') => p) end end end
# File lib/kafo/help_builders/base.rb, line 79 def params_mapping(items) items.map { |i| [i, parametrization[i.help.first.strip]] } end
sorts modules by name with leaving Generic as first one
# File lib/kafo/help_builders/base.rb, line 36 def sorted_keys(modules_hash) keys = modules_hash.keys keys.reject! { |k| k == DEFAULT_MODULE_NAME } [ DEFAULT_MODULE_NAME ] + keys.sort end