# File lib/dnsruby/name.rb, line 162
    def canonically_before(n)
      if (!(Name === n))
        n = Name.create(n)
      end
      #  Work out whether this name is canonically before the passed Name
      #  RFC 4034 section 6.1
      #  For the purposes of DNS security, owner names are ordered by treating
      # individual labels as unsigned left-justified octet strings.  The
      # absence of a octet sorts before a zero value octet, and uppercase
      # US-ASCII letters are treated as if they were lowercase US-ASCII
      # letters.
      # To compute the canonical ordering of a set of DNS names, start by
      # sorting the names according to their most significant (rightmost)
      # labels.  For names in which the most significant label is identical,
      # continue sorting according to their next most significant label, and
      # so forth.

      #  Get the list of labels for both names, and then swap them
      my_labels = @labels.reverse
      other_labels = n.labels.reverse
      my_labels.each_index {|i|
        if (!other_labels[i])
          return false
        end
        next if (other_labels[i].downcase == my_labels[i].downcase)
        return (my_labels[i].downcase < other_labels[i].downcase)
      }
      return true
    end