class Jets::Commands::Markdown::Page
def desc_markdown
def desc_markdown <<-EOL escription scription} end
def description
def description @command.description end
def doc
def doc <<-EOL ont_matter} age_markdown} ng_desc_markdown} tions_markdown} end
def front_matter
def front_matter command = [cli_name, full_command].compact.join(' ') <<-EOL e: #{command} rence: true end
def full_command
def full_command [namespace, @command_name].compact.join(':') end
def initialize(cli_class:, command_name:)
def initialize(cli_class:, command_name:) @cli_class = cli_class # IE: Jets::Commands::Main @command_name = command_name # IE: generate @cli_name = "jets" @command = @cli_class.commands[@command_name] end
def long_desc_markdown
def long_desc_markdown return desc_markdown if long_description.empty? <<-EOL escription scription}. ng_description} end
def long_description
def long_description text = @command.long_description return "" if text.nil? # empty description lines = text.split("\n") lines.map do |line| # In the CLI help, we use 2 spaces to designate commands # In Markdown we need 4 spaces. line.sub(/^ \b/, ' ') end.join("\n") end
def namespace
def namespace ns = @cli_class.to_s.sub('Jets::Commands::','').underscore.gsub('/','-') ns == 'main' ? nil : ns end
def options
def options shell = Shell.new @cli_class.send(:class_options_help, shell, nil => @command.options.values) text = shell.stdout.string return "" if text.empty? # there are no options lines = text.split("\n")[1..-1] # remove first line wihth "Options: " lines.map! do |line| # remove 2 leading spaces line.sub(/^ /, '') end lines.join("\n") end
def options_markdown
def options_markdown return '' if options.empty? <<-EOL ptions tions} end
def path
def path full_name = [cli_name, namespace, @command_name].compact.join('-') "docs/_reference/#{full_name}.md" end
def usage
def usage banner = @cli_class.send(:banner, @command) # banner is protected method invoking_command = File.basename($0) # could be rspec, etc banner.sub(invoking_command, cli_name) end
def usage_markdown
def usage_markdown <<-EOL sage #{usage} end