summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/mercenary-0.4.0/lib/mercenary.rb
blob: cd38f78f07852e14f55ce323e71caf1dd3082e08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# frozen_string_literal: true

require File.expand_path("mercenary/version", __dir__)
require "optparse"
require "logger"

module Mercenary
  autoload :Command,   File.expand_path("mercenary/command", __dir__)
  autoload :Option,    File.expand_path("mercenary/option", __dir__)
  autoload :Presenter, File.expand_path("mercenary/presenter", __dir__)
  autoload :Program,   File.expand_path("mercenary/program", __dir__)

  # Public: Instantiate a new program and execute.
  #
  # name - the name of your program
  #
  # Returns nothing.
  def self.program(name)
    program = Program.new(name)
    yield program
    program.go(ARGV)
  end
end