<commit_before>class Version
  include Comparable

  class Token
    include Comparable

    attr_reader :value

    def initialize(value)
      @value = value
    end

    def inspect
      "#<#{self.class} #{value.inspect}>"
    end
  end

  class NullToken < Token
    def initialize(value=nil)
      super
    end

    def <=>(other)
      case other
      when NumericToken
        other.value == 0 ? 0 : -1
      when AlphaToken, BetaToken, RCToken
        1
      else<commit_msg>Define to_s for Version::Token<commit_after>class Version
  include Comparable

  class Token
    include Comparable

    attr_reader :value

    def initialize(value)
      @value = value
    end

    def inspect
      "#<#{self.class} #{value.inspect}>"
    end

    def to_s
      value.to_s
    end
  end

  class NullToken < Token
    def initialize(value=nil)
      super
    end

    def <=>(other)
      case other
      when NumericToken
        other.value == 0 ? 0 : -1
      when AlphaToken, BetaToken, RCToken
        1
      else
{'fraction_non_alphanumeric': 0.0766990291262136, 'fraction_numerical': 0.007766990291262136, 'mean_word_length': 1.997093023255814, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6930020', 'n_tokens_mistral': 328, 'n_tokens_neox': 309, 'n_words': 94}