class Oak::Request::Options

Public Class Methods

parse(args) click to toggle source
# File lib/oak_api.rb, line 76
def self.parse(args)
  options = {}

  OptionParser.new do |opts|
    opts.program_name = 'oak-api'
    opts.banner = "Usage: #{opts.program_name} [options] [http_verb] [endpoint] [http_body]"

    opts.separator ""
    opts.separator "Options:"

    opts.on("-d", "--debug", "Enable debug mode") do |v|
      options[:debug] = v
    end

    opts.on("-e", "--environment=ENV", "Enable debug mode ") do |v|
      options[:environment] = v
    end

    opts.on("-l", "--list", "List API endpoints") do |v=x|
      options[:list] = v
    end

    opts.on_tail("-a", "--api=VERSION", "Target a specific API version (defaults to latest)") do |v|
      options[:api] = v
    end

    opts.on_tail("-H", "--headers=HEADERS", "HEADERS is a JSON string with HTTP headers") do |v|
      options[:headers] = JSON.parse(v)
    end

    opts.on("-o", "--output=NAME", "Specify output file name") do |v|
      options[:output] = v
    end

    opts.on("-t", "--tree", "Print a welcome message") do |v|
      Oak.greetings
      abort
    end

    opts.on_tail("-h", "--help", "Print help", "something else") do |v|
      abort opts.to_s
    end

    opts.on_tail("-v", "--version", "Print version") do |v|
      abort "#{opts.program_name} #{VERSION}"
    end
  end.parse!(args)

  options
end