def alias_attribute(aliaz, attribute)
      if property_defined?(attribute) then
        delegate_to_property(aliaz, property(attribute))
        register_property_alias(aliaz, attribute)
      else
        super
      end
    end
def alias_attribute(aliaz, attribute)
      if property_defined?(attribute) then
        delegate_to_property(aliaz, property(attribute))
        register_property_alias(aliaz, attribute)
      else
        super
      end
    end
Creates the given attribute alias. If the attribute metadata is registered with this class, then
 this method overrides +Class.alias_attribute+ to create a new alias reader (writer) method
 which delegates to the attribute reader (writer, resp.). This aliasing mechanism differs from
 {Class#alias_attribute}, which directly aliases the existing reader or writer method.
 Delegation allows the alias to pick up run-time redefinitions of the aliased reader and writer.
 If the attribute metadata is not registered with this class, then this method delegates to
 {Class#alias_attribute}.

 @param [Symbol] aliaz the attribute alias
 @param [Symbol] attribute the attribute to alias