def percentAt(self, value):
        """
        Returns the percentage where the given value lies between this rulers
        minimum and maximum values.  If the value equals the minimum, then the
        percent is 0, if it equals the maximum, then the percent is 1 - any
        value between will be a floating point.  If the ruler is a custom type,
        then only if the value matches a notch will be successful.
        
        :param      value | <variant>
        
        :return     <float>
        """
        if value is None:
            return 0.0
        
        values = self.values()
        
        try:
            return float(values.index(value)) / (len(values) - 1)
        except ValueError:
            return 0.0
        except ZeroDivisionError:
            return 1.0