Allow tokens to be passed directly to classify

This commit is contained in:
Joshua Peek
2012-06-19 14:17:27 -05:00
parent d0691988a9
commit 8f85a447de
2 changed files with 8 additions and 3 deletions

View File

@@ -74,7 +74,7 @@ module Linguist
# Public: Guess language of data. # Public: Guess language of data.
# #
# data - String data to analyze. # data - Array of tokens or String data to analyze.
# #
# Examples # Examples
# #
@@ -83,8 +83,8 @@ module Linguist
# #
# Returns sorted Array of result pairs. Each pair contains the # Returns sorted Array of result pairs. Each pair contains the
# Language and a Float score. # Language and a Float score.
def classify(data) def classify(tokens)
tokens = Tokenizer.new(data).tokens tokens = Tokenizer.new(tokens).tokens if tokens.is_a?(String)
scores = {} scores = {}
@languages.keys.each do |language| @languages.keys.each do |language|

View File

@@ -1,6 +1,7 @@
require 'linguist/classifier' require 'linguist/classifier'
require 'linguist/language' require 'linguist/language'
require 'linguist/sample' require 'linguist/sample'
require 'linguist/tokenizer'
require 'test/unit' require 'test/unit'
@@ -23,6 +24,10 @@ class TestClassifier < Test::Unit::TestCase
results = classifier.classify(fixture("objective-c/hello.m")) results = classifier.classify(fixture("objective-c/hello.m"))
assert_equal Language["Objective-C"], results.first[0] assert_equal Language["Objective-C"], results.first[0]
tokens = Tokenizer.new(fixture("objective-c/hello.m")).tokens
results = classifier.classify(tokens)
assert_equal Language["Objective-C"], results.first[0]
end end
def test_instance_classify_empty def test_instance_classify_empty