class Ironment::Optparse
Constants
- BASE_HELP_TEXT
- EXEC_HELP_TEXT
- HELP_OPTIONS
- TRUST_HELP_TEXT
- UNTRUST_HELP_TEXT
- VERSION_OPTIONS
Public Class Methods
new(options = {})
click to toggle source
# File lib/ironment/optparse.rb, line 6 def initialize(options = {}) @argv = options[:argv] || ARGV @stdout = options[:stdout] || $stdout @stderr = options[:stderr] || $stderr @cl = options[:cl] || CL.new end
Private Class Methods
unindent(s)
click to toggle source
# File lib/ironment/optparse/help_texts.rb, line 6 def unindent(s) s.gsub(/^#{s.scan(/^[ \t]+(?=\S)/).min}/, '') end
Public Instance Methods
parse()
click to toggle source
# File lib/ironment/optparse.rb, line 13 def parse if include_version?(@argv) @stdout.puts "Ironment #{VERSION}" return end unknown_options = options(@argv) - HELP_OPTIONS - VERSION_OPTIONS if !unknown_options.empty? @stderr.puts "Unknown option: #{unknown_options.first}" return 1 end case @argv.first when "help" case @argv[1] when "exec" @stdout.puts EXEC_HELP_TEXT when "trust" @stdout.puts TRUST_HELP_TEXT when "untrust" @stdout.puts UNTRUST_HELP_TEXT when "help", nil @stdout.puts BASE_HELP_TEXT else @stderr.puts "Unknown command: #{@argv[1]}" return 1 end when "trust" return @stdout.puts TRUST_HELP_TEXT if include_help?(@argv) @argv.drop(1).each do |arg| @cl.trust arg end when "untrust" return @stdout.puts UNTRUST_HELP_TEXT if include_help?(@argv) @argv.drop(1).each do |arg| @cl.untrust arg end when "exec" return @stdout.puts EXEC_HELP_TEXT if include_help?(@argv) @cl.exec_with_environment *@argv.drop(1) else return @stdout.puts BASE_HELP_TEXT if include_help?(@argv) return @stdout.puts BASE_HELP_TEXT if @argv.empty? @cl.exec_with_environment *@argv end end
Private Instance Methods
include_help?(argv)
click to toggle source
# File lib/ironment/optparse.rb, line 63 def include_help?(argv) !(options(argv) & HELP_OPTIONS).empty? end
include_version?(argv)
click to toggle source
# File lib/ironment/optparse.rb, line 67 def include_version?(argv) !(options(argv) & VERSION_OPTIONS).empty? end
options(argv)
click to toggle source
# File lib/ironment/optparse.rb, line 71 def options(argv) if ["help", "exec", "trust", "untrust"].include?(argv.first) argv = argv.drop(1) end argv.take_while do |arg| arg.start_with?("-") end end