lib/ajax-cat.rb in ajax-cat-0.3.0 vs lib/ajax-cat.rb in ajax-cat-0.4.0

- old
+ new

@@ -3,36 +3,123 @@ require 'sinatra/base' require 'thin' require 'json' require 'thread' require 'colorize' +require 'sqlite3' +require 'active_record' require_relative 'ajax-cat/moses_pair.rb' +require_relative 'ajax-cat/pairs.rb' require_relative 'ajax-cat/request/raw.rb' require_relative 'ajax-cat/request/simple.rb' +require_relative 'ajax-cat/request/table.rb' +require_relative 'ajax-cat/request/suggestion.rb' require_relative 'ajax-cat/ajax_cat_server.rb' require_relative 'ajax-cat/logger.rb' +require_relative 'ajax-cat/log.rb' +require_relative 'ajax-cat/task.rb' +VERSION = File.read(File.dirname(__FILE__) + "/../VERSION") +DEFAULT_PORT = 8585 + module AjaxCat - class Starter - - def self.pair - @@pair + class Runner + def self.pairs + @@pairs end - def self.start(port = 8585, silent = false) + def initialize(port = DEFAULT_PORT, silent = true) logger = Logger.new logger.log "starting ajax-cat" Thin::Logging.silent = silent - @@pair = MosesPair.new('cs-en',"moses","/Users/ondrejodchazel/projects/ajax-cat/ajax-cat-new/test/fixtures/moses.ini") + @settings = JSON.parse(File.read("ajax-cat.ini.json")) + port = @settings["port"] if port == DEFAULT_PORT + @@pairs = Pairs.new(@settings) Dir.chdir(Dir.home) Dir.mkdir('.ajax-cat') unless Dir.exist?('.ajax-cat') builder = Rack::Builder.new do map('/'){ run AjaxCatServer } end logger.log "starting server on port #{port}" + @server = builder Rack::Handler::Thin.run builder, :Port => port - logger.log "shutting down ajax-cat server" + logger.log "ajax-cat server shutted down" end + + def self.example + ret = <<-END.gsub(/^ {8}/, '') + { + "port": #{DEFAULT_PORT}, + "pairs": [ + { + "name": "de-en", + "moses_path": "moses", + "moses_ini_path": "#{File.dirname(__FILE__) + "/../test/fixtures/moses.ini"}" + } + ] + } + END + ret + end + + def self.create_sample_moses_ini + path = File.dirname(__FILE__) + "/../test/fixtures/" + @moses_ini = <<-END.gsub(/^ {6}/, '') + ######################### + ### MOSES CONFIG FILE ### + ######################### + + # input factors + [input-factors] + 0 + + # mapping steps, either (T) translation or (G) generation + [mapping] + T 0 + + # translation tables: source-factors, target-factors, number of scores, file + [ttable-file] + 0 0 0 1 #{path}phrase-table + + # language models: type(srilm/irstlm/kenlm), factors, order, file + [lmodel-file] + 8 0 3 #{path}europarl.srilm.gz + + # limit on how many phrase translations e for each phrase f are loaded + [ttable-limit] + 10 + + # distortion (reordering) weight + [weight-d] + 1 + + # language model weights + [weight-l] + 1 + + # translation model weights + [weight-t] + 1 + + # word penalty + [weight-w] + 0 + + [n-best-list] + nbest.txt + 100 + + + + END + f = File.new(File.dirname(__FILE__) + "/../test/fixtures/moses.ini", "w") + f.write(@moses_ini) + f.close + + + end + end -end \ No newline at end of file +end +