Class: AjaxCat::Request::Table

Inherits:
Raw
  • Object
show all
Defined in:
lib/ajax-cat/request/table.rb

Constant Summary collapse

@@rows =
5

Instance Attribute Summary

Attributes inherited from Raw

#lock, #processed, #sentence

Instance Method Summary collapse

Methods inherited from Raw

parse_position, #prepare_moses_request, #tokenize

Constructor Details

#initialize(sentence) ⇒ Table

Returns a new instance of Table.



9
10
11
12
13
14
15
# 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

Instance Method Details

#process_line(line) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
# 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

#resultObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 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