title_regex

in lib/licensee/license.rb [143:175]


    def title_regex
      return @title_regex if defined? @title_regex

      string = name.downcase.sub('*', 'u')
      simple_title_regex = Regexp.new string, 'i'
      string.sub!(/\Athe /i, '')
      string.sub!(/,? version /, ' ')
      string.sub!(/v(\d+\.\d+)/, '\1')
      string = Regexp.escape(string)
      string = string.sub(/\\ licen[sc]e/i, '(?:\ licen[sc]e)?')
      version_match = string.match(/\d+\\.(\d+)/)
      if version_match
        vsub = if version_match[1] == '0'
                 ',?\s+(?:version\ |v(?:\. )?)?\1(\2)?'
               else
                 ',?\s+(?:version\ |v(?:\. )?)?\1\2'
               end
        string = string.sub(/\\ (\d+)(\\.\d+)/, vsub)
      end
      string = string.sub(/\bgnu\\ /, '(?:GNU )?')
      title_regex = Regexp.new string, 'i'

      string = key.sub('-', '[- ]')
      string.sub!('.', '\.')
      string << '(?:\ licen[sc]e)?'
      key_regex = Regexp.new string, 'i'

      parts = [simple_title_regex, title_regex, key_regex]
      parts.push Regexp.new meta.nickname.sub(/\bGNU /i, '(?:GNU )?') if meta.nickname

      @title_regex = Regexp.union parts
    end