module Dramaturg::Command::Opt
Public Instance Methods
opt(name, default)
click to toggle source
# File lib/dramaturg/command/opt.rb, line 8 def opt(name, default) self.send(:define_method, name, ->(arg=nil) do iv_symbol = "@opt_#{name.to_s}".to_sym if arg.nil? && !self.instance_variable_defined?(iv_symbol) default_value = default.respond_to?(:call)? default.(self) : default self.instance_variable_set(iv_symbol, default_value) end if arg != nil arg_value = arg.respond_to?(:call)? arg.(self) : arg self.instance_variable_set(iv_symbol, arg_value) return self #allow chaining end self.instance_variable_get(iv_symbol) end) end