def __add_one_arg_setter(klass)
method_names = klass.instance_methods(false)
method_names.each do |method_name|
next if /\Aset_/ !~ method_name
property_name = $POSTMATCH
next if klass.method_defined?("#{property_name}=")
next if klass.instance_method(method_name).arity != 1
begin
klass.module_eval("def #{property_name}=(val); set_#{property_name}(val); val; end\n")
rescue SyntaxError
if $DEBUG
$stderr.puts "Couldn't create #{klass}\##{property_name}=(v)."
end
end
end
if klass.method(:methods).arity == -1
method_names = klass.methods(false)
else
method_names = klass.methods
end
singleton_klass = (class << klass; self; end)
method_names.each do |method_name|
next if /\Aset_/ !~ method_name
property_name = $POSTMATCH
next if singleton_klass.method_defined?("#{property_name}=")
next if klass.method(method_name).arity != 1
begin
klass.module_eval("def self.#{property_name}=(val); set_#{property_name}(val); val; end\n")
rescue SyntaxError
if $DEBUG
$stderr.puts "Couldn't create #{klass}.#{property_name}=(v)."
end
end
end
end