class Sinatra::Base
def set(option, value=self)
def set(option, value=self) if value.kind_of?(Proc) metadef(option, &value) metadef("#{option}?") { !!__send__(option) } metadef("#{option}=") { |val| set(option, Proc.new{val}) } elsif value == self && option.respond_to?(:to_hash) option.to_hash.each(&method(:set)) elsif respond_to?("#{option}=") __send__ "#{option}=", value else set option, Proc.new{value} end self end