Class: Benry::CmdApp::ApplicationHelpBuilder
Constant Summary
BaseHelpBuilder::HEADER_ABBREVS, BaseHelpBuilder::HEADER_ACTIONS, BaseHelpBuilder::HEADER_ALIASES, BaseHelpBuilder::HEADER_CATEGORIES, BaseHelpBuilder::HEADER_DESCRIPTION, BaseHelpBuilder::HEADER_OPTIONS, BaseHelpBuilder::HEADER_USAGE
Instance Method Summary
collapse
#initialize
Instance Method Details
#build_help_message(gschema, all: false) ⇒ Object
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
|
# File 'lib/benry/cmdapp.rb', line 1363
def build_help_message(gschema, all: false)
sb = []
sb << section_preamble()
sb << section_usage()
sb << section_description()
sb << section_options(gschema, all: all)
sb << section_actions(true, all: all)
sb << section_postamble()
return sb.compact().join("\n")
end
|
#section_abbrevs(all: false) ⇒ Object
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
|
# File 'lib/benry/cmdapp.rb', line 1539
def section_abbrevs(all: false)
registry = @_registry
format = @config.format_abbrev
_ = all sb = []
registry.abbrev_each do |abbrev, prefix|
sb << format % [abbrev, prefix] << "\n"
end
return nil if sb.empty?
return render_section((:HEADER_ABBREVS), sb.join()) end
|
#section_actions(include_aliases = true, all: false) ⇒ Object
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
|
# File 'lib/benry/cmdapp.rb', line 1434
def section_actions(include_aliases=true, all: false)
c = @config
str = _render_metadata_list(c.format_action, include_aliases, all: all) {|md|
! md.alias?
}
return nil if str.empty?
= c.default_action ? "(default: #{c.default_action})" : nil
return render_section((:HEADER_ACTIONS), str, ) end
|
#section_aliases(all: false) ⇒ Object
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
|
# File 'lib/benry/cmdapp.rb', line 1522
def section_aliases(all: false)
registry = @_registry
sb = []
format = @config.format_action
registry.metadata_each(all: all).select {|md| md.alias? }.sort_by {|md| [md.action, md.name] }.each do |md|
s = format % [md.name, md.desc]
sb << decorate_str(s, md.hidden?, md.important?) << "\n"
end
return nil if sb.empty?
return render_section((:HEADER_ALIASES), sb.join()) end
|
#section_availables(include_aliases = true, all: false) ⇒ Object
1477
1478
1479
1480
1481
1482
|
# File 'lib/benry/cmdapp.rb', line 1477
def section_availables(include_aliases=true, all: false)
s1 = section_actions(include_aliases, all: all)
s2 = section_aliases(all: all)
return [s1, s2].compact.join("\n")
end
|
#section_candidates(prefix, all: false) ⇒ Object
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
|
# File 'lib/benry/cmdapp.rb', line 1484
def section_candidates(prefix, all: false)
c = @config
registry = @_registry
prefix2 = prefix.chomp(':')
str = _render_metadata_list(c.format_action, all: all) {|metadata|
_category_action?(metadata, prefix)
}
s1 = render_section((:HEADER_ACTIONS), str)
str = _render_metadata_list(c.format_action, all: all) {|metadata|
metadata.alias? && metadata.action.start_with?(prefix)
}
str = str.each_line.sort_by {|line|
line =~ /'([^']+)'/
[$1, line]
}.join()
s2 = str.empty? ? nil : render_section((:HEADER_ALIASES), str)
return [s1, s2].compact().join("\n")
end
|
#section_categories(depth = 0, all: false) ⇒ Object
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
|
# File 'lib/benry/cmdapp.rb', line 1553
def section_categories(depth=0, all: false)
registry = @_registry
c = @config
dict = registry.category_count_actions(depth, all: all)
return nil if dict.empty?
format = (c.format_category || c.format_action) + "\n"
indent = /^( *)/.match(format)[1]
str = dict.keys.sort.collect {|prefix|
s = "#{prefix} (#{dict[prefix]})"
desc = registry.category_get_desc(prefix)
desc ? (format % [s, desc]) : "#{indent}#{s}\n"
}.join()
return render_section((:HEADER_CATEGORIES), str, "(depth=#{depth})") end
|