Class: TinyClassifier::ClassifierGenerator

Inherits:
Base
  • Object
show all
Defined in:
lib/tiny-classifier/classifier-generator.rb

Instance Attribute Summary

Attributes inherited from Base

#tokenizer

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#classifier, #parse_command_line_options

Constructor Details

#initializeClassifierGenerator

Returns a new instance of ClassifierGenerator.



32
33
34
35
36
37
38
39
# File 'lib/tiny-classifier/classifier-generator.rb', line 32

def initialize
  super
  @output_dir = Dir.pwd
  option_parser.on("-o PATH", "--output-dir=PATH",
                   "Path to the classifier command to be saved (default=current directory)") do |output_dir|
    @output_dir = output_dir
  end
end

Class Method Details

.run(argv = nil) ⇒ Object



24
25
26
27
28
29
# File 'lib/tiny-classifier/classifier-generator.rb', line 24

def run(argv=nil)
  argv ||= ARGV.dup
  generator = new
  generator.parse_command_line_options(argv)
  generator.run
end

Instance Method Details

#runObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/tiny-classifier/classifier-generator.rb', line 41

def run
  File.open(output_file_path, "w") do |file|
    file.puts("#!/usr/bin/env ruby")
    file.puts("require \"base64\"")
    file.puts("require \"classifier-reborn\"")
    file.puts("require \"tiny-classifier/classifier\"")
    file.puts("classifier_code = Base64.strict_decode64(\"#{encoded_classifier}\")")
    file.puts("classifier = TinyClassifier::Classifier.new")
    file.puts("classifier.classifier = Marshal.load(classifier_code)")
    file.puts("classifier.tokenizer.type = \"#{@tokenizer.type}\"")
    file.puts("classifier.run")
  end
  FileUtils.chmod("a+x", output_file_path)
end