An option can take the next argument as its value.

option value After finding an option name, read the following array entry and validate a default when it is missing.

Option Values

args
option_values.rb
Replay: real traced execution (multi-file project)
args = ["--limit", "5"]
limit_index = args.index("--limit")
raw_limit = limit_index ? args[limit_index + 1] : nil
display_limit = raw_limit || "none"
limit = raw_limit ? raw_limit.to_i : 10
limit = 1 if limit < 1

puts "args=#{args.join(' ')}"
puts "raw_limit=#{display_limit}"
puts "limit=#{limit}"
puts "bounded=#{limit >= 1}"
args = ["--limit", "2"]
limit_index = args.index("--limit")
raw_limit = limit_index ? args[limit_index + 1] : nil
display_limit = raw_limit || "none"
limit = raw_limit ? raw_limit.to_i : 10
limit = 1 if limit < 1

puts "args=#{args.join(' ')}"
puts "raw_limit=#{display_limit}"
puts "limit=#{limit}"
puts "bounded=#{limit >= 1}"
args = ["--name", "ruby"]
limit_index = args.index("--limit")
raw_limit = limit_index ? args[limit_index + 1] : nil
display_limit = raw_limit || "none"
limit = raw_limit ? raw_limit.to_i : 10
limit = 1 if limit < 1

puts "args=#{args.join(' ')}"
puts "raw_limit=#{display_limit}"
puts "limit=#{limit}"
puts "bounded=#{limit >= 1}"
  1. args ← ["--limit", "5"], limit_index ← 0, raw_limit ← 5, display_limit ← 5

    1args→ ["--limit", "5"] = ["--limit", "5"]  #@args=["--limit", "2"], ["--name", "ruby"]2limit_index→ 0 = args.index("--limit")03raw_limit→ 5 = limit_index0 ? args[limit_index + 1]5 : nil4display_limit→ 5 = raw_limit5 || "none"5limit→ 5 = raw_limit5 ? raw_limit.to_i5 : 106limit = 1 if limit < 178puts "args=#{args.join(' ')--limit 5}"9puts "raw_limit=#{display_limit5}"10puts "limit=#{limit5}"11puts "bounded=#{limit5 >= 1}"
    outputargs=--limit 5
    raw_limit=5
    limit=5
    bounded=true
  1. args ← ["--limit", "2"], limit_index ← 0, raw_limit ← 2, display_limit ← 2

    1args→ ["--limit", "2"] = ["--limit", "2"]2limit_index→ 0 = args.index("--limit")03raw_limit→ 2 = limit_index0 ? args[limit_index + 1]2 : nil4display_limit→ 2 = raw_limit2 || "none"5limit→ 2 = raw_limit2 ? raw_limit.to_i2 : 106limit = 1 if limit < 178puts "args=#{args.join(' ')--limit 2}"9puts "raw_limit=#{display_limit2}"10puts "limit=#{limit2}"11puts "bounded=#{limit2 >= 1}"
    outputargs=--limit 2
    raw_limit=2
    limit=2
    bounded=true
  1. args ← ["--name", "ruby"], limit_index ← (empty), raw_limit ← (empty)

    1args→ ["--name", "ruby"] = ["--name", "ruby"]2limit_index→ (empty) = args.index("--limit")(empty)3raw_limit→ (empty) = limit_index(empty) ? args[limit_index + 1](empty) : nil4display_limit→ none = raw_limit(empty) || "none"5limit→ 10 = raw_limit(empty) ? raw_limit.to_i0 : 106limit = 1 if limit < 178puts "args=#{args.join(' ')--name ruby}"9puts "raw_limit=#{display_limitnone}"10puts "limit=#{limit10}"11puts "bounded=#{limit10 >= 1}"
    outputargs=--name ruby
    raw_limit=none
    limit=10
    bounded=true