class Scripting::Options

Public Instance Methods

[](name) click to toggle source
# File lib/scripting/options.rb, line 6
def [](name)
  ivar = "@#{name}"
  value = instance_variable_get(ivar)

  if value.respond_to? :call
    instance_eval &value
  else
    value
  end
end
[]=(name, value) click to toggle source
# File lib/scripting/options.rb, line 17
def []=(name, value)
  ivar = "@#{name}"
  instance_variable_set(ivar, value)
end
describe(&blk;) click to toggle source
# File lib/scripting/options.rb, line 4
def describe &blk; instance_eval &blk; end
method_missing(name, *args, &blk) click to toggle source
# File lib/scripting/options.rb, line 22
def method_missing(name, *args, &blk)
  name = name.to_s

  # predicate?
  if name =~/\?$/
    return !!self[name.chop]
  end

  # assignment=
  if name =~ /=$/
    name.chop!
  end

  if block_given?
    self[name] = blk
  elsif args.length > 0
    self[name] = args.first
  else
    self[name]
  end
end