class AjaxCat::Request::Table

Public Class Methods

new(sentence) click to toggle source
Calls superclass method AjaxCat::Request::Raw::new
# File lib/ajax-cat/request/table.rb, line 9
def initialize(sentence)
        super(sentence)
        @ret = {}
        @ret["source"] = @sentence.strip.split(" ")
        @buckets = []
        @ret["source"].size.times {@buckets.push([])}
end

Public Instance Methods

process_line(line) click to toggle source
# File lib/ajax-cat/request/table.rb, line 46
def process_line(line)
        splited = line.split(" ||| ")
        words = splited[1].strip.split(" ")
        alignment = splited[4].strip.split(" ")
        alignment.each do |al|
                phrase = Phrase.new(words, al)
                finded = @buckets[phrase.from].find do |el|
                        el.words == phrase.words and el.to == phrase.to
                end
                @buckets[phrase.from].push(phrase) if finded == nil
        end
end
result() click to toggle source
# File lib/ajax-cat/request/table.rb, line 17
def result
        @ret["table"] = []
        @@rows.times do |row_number|
                i = 0
                free_space = 0
                row = []
                while i < @buckets.size
                        el = @buckets[i].shift
                        if el
                                if free_space > 0
                                        row.push({"w" => free_space})
                                end
                                this_space = el.to - el.from + 1
                                row.push({
                                        "str" => el.words,
                                        "w" => this_space
                                })
                                free_space = 0
                                i += this_space
                        else
                                free_space += 1
                                i += 1
                        end
                end
                @ret["table"].push(row) if row.size > 0
        end
        return @ret
end