def method_missing(name, *args, &block)
key = name.to_s
case key
when /=$/
real_key = $PREMATCH
if have_attribute?(real_key, ['objectClass'])
if args.size != 1
raise ArgumentError,
_("wrong number of arguments (%d for 1)") % args.size
end
return set_attribute(real_key, *args, &block)
end
when /(?:(_before_type_cast)|(\?))?$/
real_key = $PREMATCH
before_type_cast = !$1.nil?
query = !$2.nil?
if have_attribute?(real_key, ['objectClass'])
if args.size > 1
raise ArgumentError,
_("wrong number of arguments (%d for 1)") % args.size
end
if before_type_cast
return get_attribute_before_type_cast(real_key, *args)[1]
elsif query
return get_attribute_as_query(real_key, *args)
else
return get_attribute(real_key, *args)
end
end
end
super
end