From 5daaee88b44c65e6230fd854b8139990f97564e2 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Wed, 20 Jun 2012 12:50:05 -0500 Subject: [PATCH] Sort classifier yaml output --- lib/linguist/classifier.rb | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/lib/linguist/classifier.rb b/lib/linguist/classifier.rb index 319fb5bc..a89327c3 100644 --- a/lib/linguist/classifier.rb +++ b/lib/linguist/classifier.rb @@ -144,6 +144,39 @@ module Linguist def language_probability(language) Math.log(@languages[language].to_f / @languages_total.to_f) end + + # Public: Serialize classifier to YAML. + # + # opts - Hash of YAML options. + # + # Returns nothing. + def to_yaml(io) + data = "--- !ruby/object:Linguist::Classifier\n" + + data << "languages_total: #{@languages_total}\n" + data << "tokens_total: #{@tokens_total}\n" + + data << "languages:\n" + @languages.sort.each do |language, count| + data << " #{language.inspect}: #{count}\n" + end + + data << "language_tokens:\n" + @language_tokens.sort.each do |language, count| + data << " #{language.inspect}: #{count}\n" + end + + data << "tokens:\n" + @tokens.sort.each do |language, tokens| + data << " #{language.inspect}:\n" + tokens.sort.each do |token, count| + data << " #{token.inspect}: #{count}\n" + end + end + + io.write data + nil + end end # Eager load instance