class MisterBin::CommandMeta
This class is responsible for holding all the meta data for a command and for generating a text string ready to be used by Docopt.
Attributes
commands[R]
env_vars[R]
examples[R]
help[RW]
options[R]
params[R]
summary[RW]
usages[R]
version[RW]
Public Class Methods
new()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 13 def initialize @version = nil @help = nil @summary = nil @usages = [] @options = [] @params = [] @commands = [] @examples = [] @env_vars = [] end
Public Instance Methods
description()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 30 def description summary || help || '' end
docopt()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 25 def docopt [summary_string, help_string, usage_string, commands_string, options_string, params_string, env_string, examples_string].compact.join "\n" end
long_description()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 34 def long_description summary && help ? "#{summary}\n\n#{help}" : description end
Private Instance Methods
commands_string()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 84 def commands_string return nil if commands.empty? key_value_block 'Commands:', commands end
env_string()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 79 def env_string return nil if env_vars.empty? key_value_block 'Environment Variables:', env_vars end
examples_string()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 89 def examples_string return nil if examples.empty? result = ["Examples:"] examples.each { |text| result << word_wrap(" #{text}") } result << "" result.join "\n" end
help_string()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 44 def help_string help ? word_wrap(help) + "\n" : nil end
key_value_block(caption, pairs)
click to toggle source
# File lib/mister_bin/command_meta.rb, line 98 def key_value_block(caption, pairs) result = [caption] pairs.each do |key, value| result << " #{key}" result << word_wrap(" #{value}") result << "" end result.join "\n" end
options_string()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 55 def options_string result = ["Options:"] options.each do |option| result << " #{option[0]}" result << word_wrap(" #{option[1]}") result << "" end result << " -h --help" result << " Show this help\n" if version result << " --version" result << " Show version number\n" end result.join "\n" end
params_string()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 74 def params_string return nil if params.empty? key_value_block 'Parameters:', params end
summary_string()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 40 def summary_string summary ? word_wrap(summary) + "\n" : nil end
usage_string()
click to toggle source
# File lib/mister_bin/command_meta.rb, line 48 def usage_string result = ["Usage:"] usages.each { |text| result << word_wrap(" #{text}") } result << "" result.join "\n" end