mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Warn if classifier instance is out of date
This commit is contained in:
@@ -29,6 +29,19 @@ module Linguist
|
||||
@languages = Hash.new(0)
|
||||
end
|
||||
|
||||
# Public: Compare Classifier objects.
|
||||
#
|
||||
# other - Classifier object to compare to.
|
||||
#
|
||||
# Returns Boolean.
|
||||
def eql?(other)
|
||||
# Lazy fast check counts only
|
||||
other.is_a?(self.class) &&
|
||||
@tokens_total == other.instance_variable_get(:@tokens_total) &&
|
||||
@languages_total == other.instance_variable_get(:@languages_total)
|
||||
end
|
||||
alias_method :==, :eql?
|
||||
|
||||
# Public: Train classifier that data is a certain language.
|
||||
#
|
||||
# language - Language of data
|
||||
|
||||
@@ -16,6 +16,13 @@ class TestClassifier < Test::Unit::TestCase
|
||||
File.read(File.join(fixtures_path, name))
|
||||
end
|
||||
|
||||
def test_instance_freshness
|
||||
# Just warn, it shouldn't scare people off by breaking the build.
|
||||
unless Classifier.instance.eql?(Linguist::Sample.classifier)
|
||||
warn "Classifier database is out of date. Run `bundle exec rake classifier`."
|
||||
end
|
||||
end
|
||||
|
||||
def test_classify
|
||||
classifier = Classifier.new
|
||||
classifier.train Language["Ruby"], fixture("ruby/foo.rb")
|
||||
|
||||
Reference in New Issue
Block a user