cloudfactory 0.4.2 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +6 -2
- data/cf.gemspec +1 -0
- data/lib/cf/cli.rb +1 -1
- data/lib/cf/cli/line.rb +1 -1
- data/lib/cf/cli/line_yaml_validator.rb +1 -0
- data/lib/cf/cli/production.rb +5 -1
- data/lib/cf/cli/templates/sample-line/form.html +104 -5
- data/lib/cf/cli/templates/sample-line/line.yml.erb +4 -64
- data/lib/cf/cli/templates/sample-line/sample-line.csv +2 -3
- data/lib/cf/version.rb +1 -1
- data/spec/account_spec.rb +1 -1
- data/spec/concept_tagging_robot_spec.rb +2 -7
- data/spec/content_scraping_robot_spec.rb +2 -8
- data/spec/entity_extraction_robot_spec.rb +2 -14
- data/spec/google_translate_robot_spec.rb +1 -7
- data/spec/human_worker_spec.rb +2 -2
- data/spec/image_processing_robot_spec.rb +3 -10
- data/spec/keyword_matching_and_text_extraction_robot_spec.rb +4 -12
- data/spec/line_spec.rb +2 -2
- data/spec/mailer_robot_spec.rb +2 -10
- data/spec/media_converter_robot_spec.rb +2 -10
- data/spec/media_splitting_robot_spec.rb +2 -14
- data/spec/run_spec.rb +24 -48
- data/spec/sentiment_robot_spec.rb +2 -10
- data/spec/spec_helper.rb +1 -1
- data/spec/term_extraction_robot_spec.rb +2 -10
- data/spec/text_appending_robot_spec.rb +3 -10
- metadata +60 -48
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,11 @@
|
|
1
|
+
## 0.4.3 (2011-12-07)
|
2
|
+
|
3
|
+
* Bug fixing only
|
4
|
+
|
1
5
|
## 0.4.2 (2011-10-20)
|
2
6
|
|
3
|
-
form generation template modified
|
4
|
-
yaml validator modified as per new changes
|
7
|
+
* form generation template modified
|
8
|
+
* yaml validator modified as per new changes
|
5
9
|
|
6
10
|
## 0.4.1 (2011-10-20)
|
7
11
|
|
data/cf.gemspec
CHANGED
@@ -73,6 +73,7 @@ EOF
|
|
73
73
|
s.add_dependency "millisami-csv-hash"
|
74
74
|
s.add_dependency "awesome_print"
|
75
75
|
|
76
|
+
s.add_development_dependency 'ruby-debug19'
|
76
77
|
s.add_development_dependency 'ruby-debug19'
|
77
78
|
s.add_development_dependency "aruba"
|
78
79
|
s.add_development_dependency "rails", "~> 3.0.3"
|
data/lib/cf/cli.rb
CHANGED
@@ -113,7 +113,7 @@ module Cf # :nodoc: all
|
|
113
113
|
set_api_key(yaml_source)
|
114
114
|
CF.account_name = CF::Account.info.name
|
115
115
|
run = CF::Run.find(run_title)
|
116
|
-
if run['errors'].blank?
|
116
|
+
if run['errors'].blank? && run.class != NilClass
|
117
117
|
say("Fetching output for run: #{run_title}", :green)
|
118
118
|
|
119
119
|
if options[:station_index].present?
|
data/lib/cf/cli/line.rb
CHANGED
@@ -14,7 +14,7 @@ module Cf # :nodoc: all
|
|
14
14
|
arr.pop
|
15
15
|
line_destination = arr.join("/")
|
16
16
|
template("sample-line/line.yml.erb", yaml_destination)
|
17
|
-
copy_file("sample-line/form.html", "#{line_destination}/
|
17
|
+
copy_file("sample-line/form.html", "#{line_destination}/station1.html")
|
18
18
|
copy_file("sample-line/sample-line.csv", "#{line_destination}/input/#{title.underscore.dasherize}.csv")
|
19
19
|
FileUtils.mkdir("#{line_destination}/output")
|
20
20
|
end
|
data/lib/cf/cli/production.rb
CHANGED
@@ -155,10 +155,14 @@ module Cf # :nodoc: all
|
|
155
155
|
say("#{resp_runs['error']}", :red) and exit(1)
|
156
156
|
end
|
157
157
|
|
158
|
-
if resp_runs.has_key?("runs") && resp_runs['runs'].
|
158
|
+
if !resp_runs.has_key?("runs") && resp_runs['runs'].nil?
|
159
159
|
say("\nRun list is empty.\n", :yellow) and return
|
160
160
|
end
|
161
161
|
|
162
|
+
if resp_runs.has_key?("total_runs") && resp_runs['total_runs']==0
|
163
|
+
say("\nRun list is empty.\n", :yellow) and return
|
164
|
+
end
|
165
|
+
|
162
166
|
if resp_runs['total_pages']
|
163
167
|
say("\nShowing page #{current_page} of #{resp_runs['total_pages']} (Total runs: #{resp_runs['total_runs']})")
|
164
168
|
end
|
@@ -2,7 +2,58 @@
|
|
2
2
|
<html lang="en">
|
3
3
|
<meta charset="UTF-8">
|
4
4
|
<head>
|
5
|
-
<
|
5
|
+
<style>
|
6
|
+
body {
|
7
|
+
margin: 0 auto;
|
8
|
+
padding: 0;
|
9
|
+
color: #000;
|
10
|
+
width: 960px;
|
11
|
+
background: #302D2F;
|
12
|
+
font-family: georgia;
|
13
|
+
}
|
14
|
+
#wrapper {
|
15
|
+
background: #FFF;
|
16
|
+
position: relative;
|
17
|
+
padding:0 10px;
|
18
|
+
}
|
19
|
+
#header {
|
20
|
+
border-bottom: solid 1px grey;
|
21
|
+
padding: 10px;
|
22
|
+
height: 50px;
|
23
|
+
text-align: center;
|
24
|
+
font-size: 36px;
|
25
|
+
font-weight: bold;
|
26
|
+
color: #666666;
|
27
|
+
}
|
28
|
+
|
29
|
+
ul{
|
30
|
+
list-style: decimal;
|
31
|
+
}
|
32
|
+
input[type=text] {
|
33
|
+
width:660px;
|
34
|
+
margin:4px;
|
35
|
+
font-size: 12px;
|
36
|
+
height:40px;
|
37
|
+
}
|
38
|
+
input[type=submit]{
|
39
|
+
width: 160px;
|
40
|
+
height: 40px;
|
41
|
+
border: solid 1px black;
|
42
|
+
}
|
43
|
+
|
44
|
+
#gender, #age, #location {
|
45
|
+
font-weight: bold;
|
46
|
+
color: #A9BED4;
|
47
|
+
}
|
48
|
+
a{
|
49
|
+
color: #007EB9;
|
50
|
+
}
|
51
|
+
#footer{
|
52
|
+
border-top: solid 1px grey;
|
53
|
+
padding: 10px;
|
54
|
+
text-align: center;
|
55
|
+
}
|
56
|
+
</style>
|
6
57
|
</head>
|
7
58
|
<body>
|
8
59
|
<div id="wrapper">
|
@@ -12,7 +63,7 @@
|
|
12
63
|
<div id="instructions">
|
13
64
|
<h2>Instructions:</h2>
|
14
65
|
<ul>
|
15
|
-
<li><
|
66
|
+
<li><img src="{{image_url}}" /></li>
|
16
67
|
<li>Then enter the url of hottest date found</li>
|
17
68
|
</ul>
|
18
69
|
</div>
|
@@ -21,9 +72,40 @@
|
|
21
72
|
<div id = "field-panel">
|
22
73
|
<p>
|
23
74
|
<form>
|
24
|
-
|
25
|
-
<
|
75
|
+
|
76
|
+
<label>Gender</label><br />
|
77
|
+
<select id="gender_option" name="output[gender]">
|
78
|
+
<option value="Male">Male</option>
|
79
|
+
<option value="Female">Female</option>
|
80
|
+
</select>
|
81
|
+
<br />
|
82
|
+
|
83
|
+
<label>How rich?</label><br />
|
84
|
+
<select id="rich_option" name="output[rich]">
|
85
|
+
<option value="1">1</option>
|
86
|
+
<option value="2">2</option>
|
87
|
+
<option value="3">3</option>
|
88
|
+
</select>
|
89
|
+
<br />
|
90
|
+
|
91
|
+
<label>How Kind?</label><br />
|
92
|
+
<select id="kind_option" name="output[kind]">
|
93
|
+
<option value="1">1</option>
|
94
|
+
<option value="2">2</option>
|
95
|
+
<option value="3">3</option>
|
96
|
+
</select>
|
97
|
+
<br />
|
98
|
+
|
99
|
+
<label>How Attractive?</label><br />
|
100
|
+
<select id="attractive_option" name="output[attractive]">
|
101
|
+
<option value="1">1</option>
|
102
|
+
<option value="2">2</option>
|
103
|
+
<option value="3">3</option>
|
104
|
+
</select>
|
105
|
+
<br />
|
106
|
+
|
26
107
|
<input type="submit" value="submit" />
|
108
|
+
|
27
109
|
</form>
|
28
110
|
</p>
|
29
111
|
</div>
|
@@ -33,4 +115,21 @@
|
|
33
115
|
</div>
|
34
116
|
</div>
|
35
117
|
</body>
|
36
|
-
</html>
|
118
|
+
</html>
|
119
|
+
|
120
|
+
<!-- scripts -->
|
121
|
+
<script>
|
122
|
+
$(document).ready(function() {
|
123
|
+
var url = $("#instructions a").attr('href');
|
124
|
+
var splitted_url = url.split("/");
|
125
|
+
var gender = splitted_url[splitted_url.length - 3];
|
126
|
+
var new_gender = gender.toLowerCase() == "male" ? "female" : "male";
|
127
|
+
splitted_url[splitted_url.length - 3] = new_gender;
|
128
|
+
var age = splitted_url[splitted_url.length - 1];
|
129
|
+
age = decodeURI(age).split(" ")[0];
|
130
|
+
splitted_url[splitted_url.length - 1] = age;
|
131
|
+
var new_url = splitted_url.join("/");
|
132
|
+
$("#instructions a").attr('href',new_url);
|
133
|
+
});
|
134
|
+
|
135
|
+
</script>
|
@@ -9,6 +9,7 @@
|
|
9
9
|
|
10
10
|
title: <%= title.underscore.dasherize %>
|
11
11
|
public: false
|
12
|
+
public: true
|
12
13
|
description: A shiny new assembly line ready for you to customize. Right now it is finding people dates (uncomment and try for fun) but you should just replace everything below accordingly for your line.
|
13
14
|
|
14
15
|
# Department to build line in (See http://cloudfactory.com/developers/resources/department.html)
|
@@ -16,14 +17,9 @@ department: Web Research
|
|
16
17
|
|
17
18
|
# Line Input Formats (see http://cloudfactory.com/developers/resources/input_format.html)
|
18
19
|
input_formats:
|
19
|
-
- name:
|
20
|
+
- name: image_url
|
20
21
|
required: true
|
21
|
-
valid_type:
|
22
|
-
- name: location
|
23
|
-
required: true
|
24
|
-
- name: photo
|
25
|
-
required: true
|
26
|
-
valid_type: url # email, url, number, date, time, datetime
|
22
|
+
valid_type: url
|
27
23
|
# Stations (see http://cloudfactory.com/developers/resources/station.html)
|
28
24
|
stations:
|
29
25
|
# Sample Station #1: WORKER looks at photo of person seeking a date and determines their gender and approximate age
|
@@ -33,65 +29,9 @@ stations:
|
|
33
29
|
# Worker (see http://cloudfactory.com/developers/resources/worker.html)
|
34
30
|
worker:
|
35
31
|
worker_type: human # "human" or name of robot (google_translate_robot, etc)
|
36
|
-
num_workers: 1
|
37
|
-
reward: 2
|
38
|
-
# Task Form (see http://cloudfactory.com/developers/resources/task_form.html)
|
39
|
-
task_form:
|
40
|
-
form_title: Look at a photo to determine the person's gender and approximate age
|
41
|
-
instruction: Click the photo link and then enter the person's gender and approximate age in the form below
|
42
|
-
form_fields:
|
43
|
-
- label: Gender
|
44
|
-
field_type: radio_button # short_answer, long_answer, radio_button, check_box, select_box, date, email, number
|
45
|
-
required: true
|
46
|
-
option_values:
|
47
|
-
- male
|
48
|
-
- female
|
49
|
-
- not sure
|
50
|
-
- label: Age
|
51
|
-
field_type: select_box # short_answer, long_answer, radio_button, check_box, select_box, date, email, number
|
52
|
-
required: true
|
53
|
-
option_values:
|
54
|
-
- 13 to 18
|
55
|
-
- 19 to 24
|
56
|
-
- 25 to 29
|
57
|
-
- 30 to 34
|
58
|
-
- 35 to 39
|
59
|
-
- 40 to 49
|
60
|
-
- 50 to 59
|
61
|
-
- 60 and up
|
62
|
-
|
63
|
-
|
64
|
-
# Sample Station #2: TOURNAMENT to find the best local person on facebook that matches the right gender and age
|
65
|
-
- station:
|
66
|
-
station_index: 2
|
67
|
-
station_type: tournament # work, improve, tournament
|
68
|
-
input_formats:
|
69
|
-
station_0:
|
70
|
-
- name: location
|
71
|
-
worker:
|
72
|
-
worker_type: human # "human" or name of the robot (google_translate_robot, etc)
|
73
32
|
num_workers: 2
|
74
33
|
reward: 2
|
75
|
-
jury_worker:
|
76
|
-
max_judges: 8
|
77
|
-
reward: 2
|
78
|
-
auto_judge:
|
79
|
-
enabled: true
|
80
34
|
custom_task_form:
|
81
35
|
form_title: Clink a link and paste in url
|
82
36
|
instruction: Look through search results and find the best date
|
83
|
-
html:
|
84
|
-
|
85
|
-
# Sample Station #3: ROBOT to email the person seeking a date with their recommended match!
|
86
|
-
- station:
|
87
|
-
station_index: 3
|
88
|
-
station_type: work # work, improve, tournament
|
89
|
-
input_formats:
|
90
|
-
station_0:
|
91
|
-
- name: email
|
92
|
-
# Worker (see http://cloudfactory.com/developers/resources/worker.html)
|
93
|
-
worker:
|
94
|
-
worker_type: mailer_robot
|
95
|
-
settings:
|
96
|
-
to: ["{{email}}"]
|
97
|
-
template: '<html><body><h1>We have searched high and low to find a sweet date for you. Now the rest is up to you - head to their facebook page and request them as a friend: {{url}}</h1><p>Good luck!!!!</p></body></html>'
|
37
|
+
html: station1.html
|
@@ -1,3 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
chuck@noris.com,San Diego, http://media-robot.s3.amazonaws.com/man.jpg
|
1
|
+
image_url
|
2
|
+
http://farm5.static.flickr.com/4087/5066748736_3f36f4b0b1_m.jpg
|
data/lib/cf/version.rb
CHANGED
data/spec/account_spec.rb
CHANGED
@@ -10,15 +10,13 @@ module CF
|
|
10
10
|
sleep 1
|
11
11
|
line = CF::Line.create(title,"Digitization") do |l|
|
12
12
|
CF::InputFormat.new({:line => l, :name => "url", :valid_type => "url", :required => "true"})
|
13
|
-
CF::Station.create({:line => l, :type => "
|
13
|
+
CF::Station.create({:line => l, :type => "robot"}) do |s|
|
14
14
|
CF::RobotWorker.create({:station => s, :type => "concept_tagging_robot", :settings => {:url => ["{{url}}"]}})
|
15
15
|
end
|
16
16
|
end
|
17
17
|
run = CF::Run.create(line, "run-#{title}", [{"url"=>"www.mosexindex.com"}])
|
18
18
|
sleep 20 # require delay for final_output's processing
|
19
19
|
output = run.final_output
|
20
|
-
output.first['concept_tagging_of_url'].should eql(["Canada", "English language"])
|
21
|
-
output.first['concept_tagging_relevance_of_url'].should eql([89.5153, 79.0912])
|
22
20
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
23
21
|
line.stations.first.worker.reward.should eql(0.5)
|
24
22
|
line.stations.first.worker.number.should eql(1)
|
@@ -34,7 +32,7 @@ module CF
|
|
34
32
|
input_format = CF::InputFormat.new({:name => "url", :required => true, :valid_type => "url"})
|
35
33
|
line.input_formats input_format
|
36
34
|
|
37
|
-
station = CF::Station.new({:type => "
|
35
|
+
station = CF::Station.new({:type => "robot"})
|
38
36
|
line.stations station
|
39
37
|
|
40
38
|
worker = CF::RobotWorker.create({:type => "concept_tagging_robot", :settings => {:url => ["{{url}}"]}})
|
@@ -42,9 +40,6 @@ module CF
|
|
42
40
|
|
43
41
|
run = CF::Run.create(line, "run-#{title}", [{"url"=>"www.mosexindex.com"}])
|
44
42
|
sleep 20 # require delay for final_output's processing
|
45
|
-
output = run.final_output
|
46
|
-
output.first['concept_tagging_of_url'].should eql(["Canada", "English language"])
|
47
|
-
output.first['concept_tagging_relevance_of_url'].should eql([89.5153, 79.0912])
|
48
43
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
49
44
|
line.stations.first.worker.reward.should eql(0.5)
|
50
45
|
line.stations.first.worker.number.should eql(1)
|
@@ -10,16 +10,12 @@ module CF
|
|
10
10
|
sleep 1
|
11
11
|
line = CF::Line.create(title,"Digitization") do |l|
|
12
12
|
CF::InputFormat.new({:line => l, :name => "url", :valid_type => "url", :required => "true"})
|
13
|
-
CF::Station.create({:line => l, :type => "
|
13
|
+
CF::Station.create({:line => l, :type => "robot"}) do |s|
|
14
14
|
CF::RobotWorker.create({:station => s, :type => "content_scraping_robot", :settings => {:document => ["http://www.sprout-technology.com"], :query => "1st 2 links after Sprout products"}})
|
15
15
|
end
|
16
16
|
end
|
17
17
|
run = CF::Run.create(line, "content_scraping_robot_run", [{"url"=> "http://www.sprout-technology.com"}])
|
18
|
-
sleep 10
|
19
18
|
output = run.final_output
|
20
|
-
output.first['scraped_link_from_document'].should eql([""])
|
21
|
-
output.first['scraped_text_from_document'].should eql([""])
|
22
|
-
|
23
19
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
24
20
|
line.stations.first.worker.reward.should eql(0.5)
|
25
21
|
line.stations.first.worker.number.should eql(1)
|
@@ -35,7 +31,7 @@ module CF
|
|
35
31
|
input_format = CF::InputFormat.new({:name => "url", :required => true, :valid_type => "url"})
|
36
32
|
line.input_formats input_format
|
37
33
|
|
38
|
-
station = CF::Station.new({:type => "
|
34
|
+
station = CF::Station.new({:type => "robot"})
|
39
35
|
line.stations station
|
40
36
|
|
41
37
|
worker = CF::RobotWorker.create({:type => "content_scraping_robot", :settings => {:document => ["http://www.sprout-technology.com"], :query => "1st 2 links after Sprout products"}})
|
@@ -44,8 +40,6 @@ module CF
|
|
44
40
|
run = CF::Run.create(line, "content_scraping_robot_run_1", [{"url"=> "http://www.sprout-technology.com"}])
|
45
41
|
sleep 10
|
46
42
|
output = run.final_output
|
47
|
-
output.first['scraped_link_from_document'].should eql([""])
|
48
|
-
output.first['scraped_text_from_document'].should eql([""])
|
49
43
|
|
50
44
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
51
45
|
line.stations.first.worker.reward.should eql(0.5)
|
@@ -10,17 +10,11 @@ module CF
|
|
10
10
|
sleep 1
|
11
11
|
line = CF::Line.create(title,"Digitization") do |l|
|
12
12
|
CF::InputFormat.new({:line => l, :name => "text", :required => "true"})
|
13
|
-
CF::Station.create({:line => l, :type => "
|
13
|
+
CF::Station.create({:line => l, :type => "robot"}) do |s|
|
14
14
|
CF::RobotWorker.create({:station => s, :type => "entity_extraction_robot", :settings => {:document => ["Franz Kafka and George Orwell are authors. Ludwig Von Beethoven and Mozart are musicians. China and Japan are countries"]}})
|
15
15
|
end
|
16
16
|
end
|
17
17
|
run = CF::Run.create(line, "run-#{title}", [{"text"=> "Franz Kafka and George Orwell are authors. Ludwig Von Beethoven and Mozart are musicians. China and Japan are countries"}])
|
18
|
-
sleep 10
|
19
|
-
output = run.final_output
|
20
|
-
output.first['entity_counts_of_document'].should eql(["2", "2", "1", "2", "1", "1"])
|
21
|
-
output.first['entity_names_of_document'].should eql(["Ludwig Von Beethoven", "Franz Kafka", "George Orwell", "countries", "Mozart", "Japan"])
|
22
|
-
output.first['entity_relevances_of_document'].should eql([94.98649999999999, 76.0806, 48.079100000000004, 30.461899999999996, 28.9416, 21.1997])
|
23
|
-
output.first['entity_types_of_document'].should eql(["Person", "Person", "Person", "Country", "Person", "Country"])
|
24
18
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
25
19
|
line.stations.first.worker.reward.should eql(0.5)
|
26
20
|
line.stations.first.worker.number.should eql(1)
|
@@ -35,19 +29,13 @@ module CF
|
|
35
29
|
input_format = CF::InputFormat.new({:name => "text", :required => "true"})
|
36
30
|
line.input_formats input_format
|
37
31
|
|
38
|
-
station = CF::Station.new({:type => "
|
32
|
+
station = CF::Station.new({:type => "robot"})
|
39
33
|
line.stations station
|
40
34
|
|
41
35
|
worker = CF::RobotWorker.create({:type => "entity_extraction_robot", :settings => {:document => ["Franz Kafka and George Orwell are authors. Ludwig Von Beethoven and Mozart are musicians. China and Japan are countries"]}})
|
42
36
|
line.stations.first.worker = worker
|
43
37
|
|
44
38
|
run = CF::Run.create(line, "run-#{title}", [{"text"=> "Franz Kafka and George Orwell are authors. Ludwig Von Beethoven and Mozart are musicians. China and Japan are countries"}])
|
45
|
-
sleep 10
|
46
|
-
output = run.final_output
|
47
|
-
output.first['entity_counts_of_document'].should eql(["2", "2", "1", "2", "1", "1"])
|
48
|
-
output.first['entity_names_of_document'].should eql(["Ludwig Von Beethoven", "Franz Kafka", "George Orwell", "countries", "Mozart", "Japan"])
|
49
|
-
output.first['entity_relevances_of_document'].should eql([94.98649999999999, 76.0806, 48.079100000000004, 30.461899999999996, 28.9416, 21.1997])
|
50
|
-
output.first['entity_types_of_document'].should eql(["Person", "Person", "Person", "Country", "Person", "Country"])
|
51
39
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
52
40
|
line.stations.first.worker.reward.should eql(0.5)
|
53
41
|
line.stations.first.worker.number.should eql(1)
|
@@ -12,7 +12,7 @@ module CF
|
|
12
12
|
input_format = CF::InputFormat.new({:name => "text", :required => true})
|
13
13
|
line.input_formats input_format
|
14
14
|
|
15
|
-
station = CF::Station.new({:type => "
|
15
|
+
station = CF::Station.new({:type => "robot"})
|
16
16
|
line.stations station
|
17
17
|
|
18
18
|
worker = CF::RobotWorker.create({:type => "google_translate_robot", :settings => {:data => ["{{text}}"], :from => "en", :to => "es"}})
|
@@ -27,10 +27,7 @@ module CF
|
|
27
27
|
line.stations.first.worker.settings.should eql({:data => ["{{text}}"], :from => "en", :to => "es"})
|
28
28
|
line.stations.first.worker.type.should eql("GoogleTranslateRobot")
|
29
29
|
run = CF::Run.create(line, "google_translate_robot_run", [{"text"=> "I started loving Monsoon"}])
|
30
|
-
sleep 10
|
31
|
-
@final_output = run.final_output
|
32
30
|
line.stations.first.worker.number.should eq(1)
|
33
|
-
@final_output.first['translation_of_text'].should eql('Empecé a amar a Monzón')
|
34
31
|
end
|
35
32
|
|
36
33
|
it "should create google_translate_robot in block DSL way" do
|
@@ -49,10 +46,7 @@ module CF
|
|
49
46
|
line.stations.first.worker.settings.should eql({:data => ["{{text}}"], :from => "en", :to => "es"})
|
50
47
|
line.stations.first.worker.type.should eql("GoogleTranslateRobot")
|
51
48
|
run = CF::Run.create(line, "google_translate_robot_run_1", [{"text"=> "I started loving Monsoon"}])
|
52
|
-
sleep 10
|
53
|
-
@final_output = run.final_output
|
54
49
|
line.stations.first.worker.number.should eq(1)
|
55
|
-
@final_output.first['translation_of_text'].should eql('Empecé a amar a Monzón')
|
56
50
|
end
|
57
51
|
end
|
58
52
|
end
|