Class: UdbGen::ManualOptions

Inherits:
SubcommandWithCommonOptions show all
Includes:
TTY::Exit, TemplateHelpers
Defined in:
lib/udb-gen/generators/manual/generator.rb

Constant Summary collapse

NAME =
"manual"
RakeApp =
Class.new(Rake::Application) do
  def initialize(gen_dir:, cfg_arch:, versions:, resolver:)
    super()
    @gen_dir = gen_dir
    @cfg_arch = cfg_arch
    @versions = versions
    @resolver = resolver
  end
  def gen_dir = @gen_dir
  def cfg_arch = @cfg_arch
  def versions = @versions
  def resolver = @resolver
end

Constants included from TemplateHelpers

TemplateHelpers::LinkableObj

Instance Attribute Summary

Attributes inherited from Subcommand

#desc, #name

Instance Method Summary collapse

Methods included from TemplateHelpers

#anchor_for, #convert_monospace_to_links, #link_name, #link_to, #partial, #resolve_intermediate_links

Methods included from AdocHelpers

#state_preamble_adoc, #state_revmark

Methods inherited from SubcommandWithCommonOptions

#cfg_arch, #resolve_cfg_arg, #resolver

Constructor Details

#initializeManualOptions

Returns a new instance of ManualOptions.



24
25
26
# File 'lib/udb-gen/generators/manual/generator.rb', line 24

def initialize
  super(name: NAME, desc: "Generate a manual")
end

Instance Method Details

#gen_htmlObject



77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/udb-gen/generators/manual/generator.rb', line 77

def gen_html
  app = RakeApp.new(
    gen_dir: params[:output_dir],
    cfg_arch:,
    versions: params[:versions],
    resolver:
  )
  Rake.with_application(app) do |rake|
    rake.init("manual", ["-f", "#{Pathname.new(__dir__).realpath}/tasks.rake"])
    rake.load_rakefile
    puts rake.top_level_tasks
    rake.invoke_task("gen:html_manual")
  end
end

#run(argv) ⇒ Object



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/udb-gen/generators/manual/generator.rb', line 93

def run(argv)
  parse(argv)

  if params[:help]
    print help
    exit_with(:success)
  end

  if params.errors.any?
    exit_with(:usage_error, "#{params.errors.summary}\n\n#{help}")
  end

  unless params.remaining.empty?
    exit_with(:usage_error, "Unknown arguments: #{params.remaining}\n")
  end

  if params[:versions].include?("all")
    if params[:versions].size > 1
      exit_with(:usage_error, "'all' must be specified alone\n")
    end
  end

  if params[:format] == "html"
    gen_html
  else
    exit_with(:usage_error, "Unknown format: '#{params[:format]}'\n\n#{help}")
  end

  exit_with(:success)
end