diff options
| author | Joshua Peek <josh@joshpeek.com> | 2012-07-20 15:14:58 -0500 |
|---|---|---|
| committer | Joshua Peek <josh@joshpeek.com> | 2012-07-20 15:14:58 -0500 |
| commit | 2637d8dc55a228d7aec793016632aed2dbf052d3 (patch) | |
| tree | 3954655776f0b76573ba8c7d9c649a0e34c423c2 | |
| parent | 79be8b8c676fc21f9456d6ab3ca52546a531949c (diff) | |
Add tokenize helper to Tokenize class
| -rw-r--r-- | lib/linguist/classifier.rb | 4 | ||||
| -rw-r--r-- | lib/linguist/tokenizer.rb | 18 | ||||
| -rw-r--r-- | test/test_classifier.rb | 2 | ||||
| -rw-r--r-- | test/test_tokenizer.rb | 2 |
4 files changed, 8 insertions, 18 deletions
diff --git a/lib/linguist/classifier.rb b/lib/linguist/classifier.rb index 3aef234..1e4084d 100644 --- a/lib/linguist/classifier.rb +++ b/lib/linguist/classifier.rb @@ -55,7 +55,7 @@ module Linguist # Returns nothing. def train(language, data) language = language.name - tokens = Tokenizer.new(data).tokens + tokens = Tokenizer.tokenize(data) tokens.each do |token| @tokens[language][token] += 1 @@ -98,7 +98,7 @@ module Linguist # Language and a Float score. def classify(tokens, languages = @languages.keys) return [] if tokens.nil? - tokens = Tokenizer.new(tokens).tokens if tokens.is_a?(String) + tokens = Tokenizer.tokenize(tokens) if tokens.is_a?(String) scores = {} languages.each do |language| diff --git a/lib/linguist/tokenizer.rb b/lib/linguist/tokenizer.rb index 8370606..520ed5c 100644 --- a/lib/linguist/tokenizer.rb +++ b/lib/linguist/tokenizer.rb @@ -5,23 +5,13 @@ module Linguist # It strips any data strings or comments and preserves significant # language symbols. class Tokenizer - # Public: Initialize a Tokenizer. + # Public: Extract tokens from data # - # data - String data to scan. - def initialize(data) - @data = data - end - - # Public: Get source data. - # - # Returns String. - attr_reader :data - - # Public: Extract tokens from data. + # data - String to tokenize # # Returns Array of token Strings. - def tokens - extract_tokens(data) + def self.tokenize(data) + new.extract_tokens(data) end SINGLE_LINE_COMMENTS = [ diff --git a/test/test_classifier.rb b/test/test_classifier.rb index 81725bc..ac7fbb0 100644 --- a/test/test_classifier.rb +++ b/test/test_classifier.rb @@ -32,7 +32,7 @@ class TestClassifier < Test::Unit::TestCase results = classifier.classify(fixture("objective-c/hello.m")) assert_equal Language["Objective-C"], results.first[0] - tokens = Tokenizer.new(fixture("objective-c/hello.m")).tokens + tokens = Tokenizer.tokenize(fixture("objective-c/hello.m")) results = classifier.classify(tokens) assert_equal Language["Objective-C"], results.first[0] end diff --git a/test/test_tokenizer.rb b/test/test_tokenizer.rb index bbd4387..00142b5 100644 --- a/test/test_tokenizer.rb +++ b/test/test_tokenizer.rb @@ -11,7 +11,7 @@ class TestTokenizer < Test::Unit::TestCase def tokenize(data) data = File.read(File.join(samples_path, data.to_s)) if data.is_a?(Symbol) - Tokenizer.new(data).tokens + Tokenizer.tokenize(data) end def test_skip_string_literals |
