cloudfactory 0.1.12 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/fixtures/input_data/test.csv +2 -2
- data/lib/cf.rb +2 -1
- data/lib/cf/cli.rb +7 -0
- data/lib/cf/cli/line.rb +9 -1
- data/lib/cf/cli/line_yaml_validator.rb +183 -0
- data/lib/cf/cli/production.rb +17 -0
- data/lib/cf/line.rb +9 -8
- data/lib/cf/run.rb +3 -3
- data/lib/cf/version.rb +1 -1
- data/spec/badge_spec.rb +2 -2
- data/spec/concept_tagging_robot_spec.rb +6 -6
- data/spec/content_scraping_robot_spec.rb +2 -4
- data/spec/custom_task_form_spec.rb +10 -10
- data/spec/entity_extraction_robot_spec.rb +2 -2
- data/spec/form_field_spec.rb +30 -26
- data/spec/google_translate_robot_spec.rb +6 -12
- data/spec/human_worker_spec.rb +4 -4
- data/spec/image_processing_robot_spec.rb +6 -8
- data/spec/keyword_matching_and_text_extraction_robot_spec.rb +12 -12
- data/spec/line_spec.rb +15 -31
- data/spec/mailer_robot_spec.rb +12 -18
- data/spec/media_converter_robot_spec.rb +8 -14
- data/spec/media_splitting_robot_spec.rb +10 -14
- data/spec/run_spec.rb +50 -77
- data/spec/sentiment_robot_spec.rb +6 -8
- data/spec/station_spec.rb +23 -63
- data/spec/task_form_spec.rb +46 -73
- data/spec/term_extraction_robot_spec.rb +6 -10
- data/spec/text_appending_robot_spec.rb +6 -6
- metadata +47 -46
@@ -20,7 +20,7 @@ module CF
|
|
20
20
|
output.first.final_output.first.entity_relevances_of_document.should eql([[92.12089999999999, 73.8997, 48.079100000000004, 28.9416, 27.1982, 21.1997]])
|
21
21
|
output.first.final_output.first.entity_types_of_document.should eql([["Person", "Person", "Person", "Person", "Country", "Country"]])
|
22
22
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
23
|
-
line.stations.first.worker.reward.should eql(5)
|
23
|
+
line.stations.first.worker.reward.should eql(0.5)
|
24
24
|
line.stations.first.worker.number.should eql(1)
|
25
25
|
line.stations.first.worker.settings.should eql({:document => ["Franz Kafka and George Orwell are authors. Ludwig Von Beethoven and Mozart are musicians. China and Japan are countries"]})
|
26
26
|
end
|
@@ -46,7 +46,7 @@ module CF
|
|
46
46
|
output.first.final_output.first.entity_relevances_of_document.should eql([[92.12089999999999, 73.8997, 48.079100000000004, 28.9416, 27.1982, 21.1997]])
|
47
47
|
output.first.final_output.first.entity_types_of_document.should eql([["Person", "Person", "Person", "Person", "Country", "Country"]])
|
48
48
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
49
|
-
line.stations.first.worker.reward.should eql(5)
|
49
|
+
line.stations.first.worker.reward.should eql(0.5)
|
50
50
|
line.stations.first.worker.number.should eql(1)
|
51
51
|
line.stations.first.worker.settings.should eql({:document => ["Franz Kafka and George Orwell are authors. Ludwig Von Beethoven and Mozart are musicians. China and Japan are countries"]})
|
52
52
|
end
|
data/spec/form_field_spec.rb
CHANGED
@@ -6,6 +6,10 @@ describe CF::FormField do
|
|
6
6
|
# WebMock.allow_net_connect!
|
7
7
|
VCR.use_cassette "form-fields/plain-ruby/create-form-fields", :record => :new_episodes do
|
8
8
|
line = CF::Line.new("Digitize-0", "Digitization")
|
9
|
+
|
10
|
+
input_format = CF::InputFormat.new({:name => "image_url", :required => true, :valid_type => "url"})
|
11
|
+
line.input_formats input_format
|
12
|
+
|
9
13
|
station = CF::Station.new({:type => "work"})
|
10
14
|
line.stations station
|
11
15
|
|
@@ -15,30 +19,30 @@ describe CF::FormField do
|
|
15
19
|
form = CF::TaskForm.new({:title => "Enter text from a business card image", :instruction => "Describe"})
|
16
20
|
line.stations.first.form = form
|
17
21
|
|
18
|
-
form_fields_1 = CF::FormField.new({:label => "First Name", :field_type => "
|
22
|
+
form_fields_1 = CF::FormField.new({:label => "First Name", :field_type => "short_answer", :required => "true"})
|
19
23
|
line.stations.first.form.form_fields form_fields_1
|
20
|
-
form_fields_2 = CF::FormField.new({:label => "Middle Name", :field_type => "
|
24
|
+
form_fields_2 = CF::FormField.new({:label => "Middle Name", :field_type => "short_answer"})
|
21
25
|
line.stations.first.form.form_fields form_fields_2
|
22
|
-
form_fields_3 = CF::FormField.new({:label => "Last Name", :field_type => "
|
26
|
+
form_fields_3 = CF::FormField.new({:label => "Last Name", :field_type => "short_answer", :required => "true"})
|
23
27
|
line.stations.first.form.form_fields form_fields_3
|
24
|
-
form_fields_3 = CF::FormField.new({:label => "Gender", :field_type => "
|
28
|
+
form_fields_3 = CF::FormField.new({:label => "Gender", :field_type => "radio_button", :required => "true", :option_values => ["male","female"]})
|
25
29
|
line.stations.first.form.form_fields form_fields_3
|
26
30
|
|
27
31
|
line.stations.first.form.form_fields[0].label.should eq("First Name")
|
28
|
-
line.stations.first.form.form_fields[0].field_type.should eq("
|
32
|
+
line.stations.first.form.form_fields[0].field_type.should eq("short_answer")
|
29
33
|
line.stations.first.form.form_fields[0].required.should eq(true)
|
30
|
-
line.stations.first.form.form_fields[0].form_field_params.should eql({:label => "First Name", :field_type => "
|
34
|
+
line.stations.first.form.form_fields[0].form_field_params.should eql({:label => "First Name", :field_type => "short_answer", :required => "true"})
|
31
35
|
line.stations.first.form.form_fields[1].label.should eq("Middle Name")
|
32
|
-
line.stations.first.form.form_fields[1].field_type.should eq("
|
33
|
-
line.stations.first.form.form_fields[1].form_field_params.should eql({:label => "Middle Name", :field_type => "
|
36
|
+
line.stations.first.form.form_fields[1].field_type.should eq("short_answer")
|
37
|
+
line.stations.first.form.form_fields[1].form_field_params.should eql({:label => "Middle Name", :field_type => "short_answer"})
|
34
38
|
line.stations.first.form.form_fields[2].label.should eq("Last Name")
|
35
|
-
line.stations.first.form.form_fields[2].field_type.should eq("
|
39
|
+
line.stations.first.form.form_fields[2].field_type.should eq("short_answer")
|
36
40
|
line.stations.first.form.form_fields[2].required.should eq(true)
|
37
|
-
line.stations.first.form.form_fields[2].form_field_params.should eql({:label => "Last Name", :field_type => "
|
41
|
+
line.stations.first.form.form_fields[2].form_field_params.should eql({:label => "Last Name", :field_type => "short_answer", :required => "true"})
|
38
42
|
line.stations.first.form.form_fields[3].label.should eq("Gender")
|
39
|
-
line.stations.first.form.form_fields[3].field_type.should eq("
|
43
|
+
line.stations.first.form.form_fields[3].field_type.should eq("radio_button")
|
40
44
|
line.stations.first.form.form_fields[3].required.should eq(true)
|
41
|
-
line.stations.first.form.form_fields[3].form_field_params.should eql({:label => "Gender", :field_type => "
|
45
|
+
line.stations.first.form.form_fields[3].form_field_params.should eql({:label => "Gender", :field_type => "radio_button", :required => "true", :option_values => ["male","female"]})
|
42
46
|
end
|
43
47
|
end
|
44
48
|
|
@@ -50,10 +54,10 @@ describe CF::FormField do
|
|
50
54
|
CF::Station.create({:line => self, :type => "work"}) do |station|
|
51
55
|
CF::HumanWorker.new({:station => station, :number => 2, :reward => 20})
|
52
56
|
CF::TaskForm.create({:station => station, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
|
53
|
-
CF::FormField.new({:form => i, :label => "First Name", :field_type => "
|
54
|
-
CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "
|
55
|
-
CF::FormField.new({:form => i, :label => "Last Name", :field_type => "
|
56
|
-
CF::FormField.new({:form => i, :label => "Gender", :field_type => "
|
57
|
+
CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
|
58
|
+
CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
|
59
|
+
CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
|
60
|
+
CF::FormField.new({:form => i, :label => "Gender", :field_type => "radio_button", :required => "true", :option_values => ["male","female"]})
|
57
61
|
end
|
58
62
|
end
|
59
63
|
end
|
@@ -64,20 +68,20 @@ describe CF::FormField do
|
|
64
68
|
line.stations.first.worker.number.should eq(2)
|
65
69
|
line.stations.first.form.instruction.should eq("Describe")
|
66
70
|
line.stations.first.form.form_fields[0].label.should eq("First Name")
|
67
|
-
line.stations.first.form.form_fields[0].field_type.should eq("
|
71
|
+
line.stations.first.form.form_fields[0].field_type.should eq("short_answer")
|
68
72
|
line.stations.first.form.form_fields[0].required.should eq(true)
|
69
|
-
line.stations.first.form.form_fields[0].form_field_params.should eql({:label => "First Name", :field_type => "
|
73
|
+
line.stations.first.form.form_fields[0].form_field_params.should eql({:label => "First Name", :field_type => "short_answer", :required => "true"})
|
70
74
|
line.stations.first.form.form_fields[1].label.should eq("Middle Name")
|
71
|
-
line.stations.first.form.form_fields[1].field_type.should eq("
|
72
|
-
line.stations.first.form.form_fields[1].form_field_params.should eql({:label => "Middle Name", :field_type => "
|
75
|
+
line.stations.first.form.form_fields[1].field_type.should eq("short_answer")
|
76
|
+
line.stations.first.form.form_fields[1].form_field_params.should eql({:label => "Middle Name", :field_type => "short_answer"})
|
73
77
|
line.stations.first.form.form_fields[2].label.should eq("Last Name")
|
74
|
-
line.stations.first.form.form_fields[2].field_type.should eq("
|
78
|
+
line.stations.first.form.form_fields[2].field_type.should eq("short_answer")
|
75
79
|
line.stations.first.form.form_fields[2].required.should eq(true)
|
76
|
-
line.stations.first.form.form_fields[2].form_field_params.should eql({:label => "Last Name", :field_type => "
|
80
|
+
line.stations.first.form.form_fields[2].form_field_params.should eql({:label => "Last Name", :field_type => "short_answer", :required => "true"})
|
77
81
|
line.stations.first.form.form_fields[3].label.should eq("Gender")
|
78
|
-
line.stations.first.form.form_fields[3].field_type.should eq("
|
82
|
+
line.stations.first.form.form_fields[3].field_type.should eq("radio_button")
|
79
83
|
line.stations.first.form.form_fields[3].required.should eq(true)
|
80
|
-
line.stations.first.form.form_fields[3].form_field_params.should eql({:label => "Gender", :field_type => "
|
84
|
+
line.stations.first.form.form_fields[3].form_field_params.should eql({:label => "Gender", :field_type => "radio_button", :required => "true", :option_values => ["male","female"]})
|
81
85
|
end
|
82
86
|
end
|
83
87
|
|
@@ -89,7 +93,7 @@ describe CF::FormField do
|
|
89
93
|
CF::Station.create({:line => self, :type => "work"}) do |station|
|
90
94
|
CF::HumanWorker.new({:station => station, :number => 2, :reward => 20})
|
91
95
|
CF::TaskForm.create({:station => station, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
|
92
|
-
CF::FormField.new({:form => i, :field_type => "
|
96
|
+
CF::FormField.new({:form => i, :field_type => "short_answer", :required => "true"})
|
93
97
|
end
|
94
98
|
end
|
95
99
|
end
|
@@ -114,7 +118,7 @@ describe CF::FormField do
|
|
114
118
|
form = CF::TaskForm.new({:title => "Enter text from a business card image", :instruction => "Describe"})
|
115
119
|
line.stations.first.form = form
|
116
120
|
|
117
|
-
form_fields_1 = CF::FormField.new({:field_type => "
|
121
|
+
form_fields_1 = CF::FormField.new({:field_type => "short_answer", :required => "true"})
|
118
122
|
line.stations.first.form.form_fields form_fields_1
|
119
123
|
|
120
124
|
line.stations.first.type.should eql("WorkStation")
|
@@ -14,21 +14,18 @@ module CF
|
|
14
14
|
station = CF::Station.new({:type => "work"})
|
15
15
|
line.stations station
|
16
16
|
|
17
|
-
worker = CF::RobotWorker.create({:type => "google_translate_robot", :settings => {:data => ["{text}"], :from => "en", :to => "es"}})
|
17
|
+
worker = CF::RobotWorker.create({:type => "google_translate_robot", :settings => {:data => ["{{text}}"], :from => "en", :to => "es"}})
|
18
18
|
line.stations.first.worker = worker
|
19
19
|
|
20
20
|
form = CF::TaskForm.new({:title => "Enter text", :instruction => "Describe"})
|
21
21
|
line.stations.first.form = form
|
22
22
|
|
23
|
-
form_fields = CF::FormField.new({:label => "Description", :field_type => "SA", :required => "true"})
|
24
|
-
line.stations.first.form.form_fields form_fields
|
25
23
|
line.title.should eql("google_translate_robot")
|
26
24
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
27
25
|
line.stations.first.worker.number.should eql(1)
|
28
|
-
line.stations.first.worker.settings.should eql({:data => ["{text}"], :from => "en", :to => "es"})
|
26
|
+
line.stations.first.worker.settings.should eql({:data => ["{{text}}"], :from => "en", :to => "es"})
|
29
27
|
line.stations.first.worker.type.should eql("GoogleTranslateRobot")
|
30
|
-
run = CF::Run.create(line, "google_translate_robot_run", [{"text"=> "I started loving Monsoon"
|
31
|
-
|
28
|
+
run = CF::Run.create(line, "google_translate_robot_run", [{"text"=> "I started loving Monsoon"}])
|
32
29
|
@final_output = run.final_output
|
33
30
|
line.stations.first.worker.number.should eq(1)
|
34
31
|
@final_output.first.final_output.first.translation_of_text.should eql('Empecé a amar a Monzón')
|
@@ -41,18 +38,15 @@ module CF
|
|
41
38
|
line = CF::Line.create("google_translate_robot_1","Digitization") do |l|
|
42
39
|
CF::InputFormat.new({:line => l, :name => "text", :required => true, :valid_type => "general"})
|
43
40
|
CF::Station.create({:line => l, :type => "work"}) do |s|
|
44
|
-
CF::RobotWorker.create({:station => s, :type => "google_translate_robot", :settings => {:data => ["{text}"], :from => "en", :to => "es"}})
|
45
|
-
CF::TaskForm.create({:station => s, :title => "Enter text", :instruction => "Describe"}) do |i|
|
46
|
-
CF::FormField.new({:form => i, :label => "Description", :field_type => "SA", :required => "true"})
|
47
|
-
end
|
41
|
+
CF::RobotWorker.create({:station => s, :type => "google_translate_robot", :settings => {:data => ["{{text}}"], :from => "en", :to => "es"}})
|
48
42
|
end
|
49
43
|
end
|
50
44
|
line.title.should eql("google_translate_robot_1")
|
51
45
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
52
46
|
line.stations.first.worker.number.should eql(1)
|
53
|
-
line.stations.first.worker.settings.should eql({:data => ["{text}"], :from => "en", :to => "es"})
|
47
|
+
line.stations.first.worker.settings.should eql({:data => ["{{text}}"], :from => "en", :to => "es"})
|
54
48
|
line.stations.first.worker.type.should eql("GoogleTranslateRobot")
|
55
|
-
run = CF::Run.create(line, "google_translate_robot_run_1", [{"text"=> "I started loving Monsoon"
|
49
|
+
run = CF::Run.create(line, "google_translate_robot_run_1", [{"text"=> "I started loving Monsoon"}])
|
56
50
|
|
57
51
|
@final_output = run.final_output
|
58
52
|
line.stations.first.worker.number.should eq(1)
|
data/spec/human_worker_spec.rb
CHANGED
@@ -28,7 +28,7 @@ module CF
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
line.stations.first.type.should eql("WorkStation")
|
31
|
-
line.stations.first.worker.errors.should eql("[\"Reward is not a number\", \"Reward
|
31
|
+
line.stations.first.worker.errors.should eql("[\"Reward is not a number\", \"Reward can't be blank\"]")
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -46,7 +46,7 @@ module CF
|
|
46
46
|
line.stations.first.worker = worker
|
47
47
|
|
48
48
|
line.stations.first.type.should eql("WorkStation")
|
49
|
-
line.stations.first.worker.errors.should eql("[\"Reward is not a number\", \"Reward
|
49
|
+
line.stations.first.worker.errors.should eql("[\"Reward is not a number\", \"Reward can't be blank\"]")
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -89,7 +89,7 @@ module CF
|
|
89
89
|
line.stations.first.type.should eql("WorkStation")
|
90
90
|
line.stations.first.worker.number.should eql(2)
|
91
91
|
line.stations.first.worker.reward.should eql(20)
|
92
|
-
line.stations.first.worker.skill_badges.first.should eql([{"title"=>"Football Fanatic", "description"=>"This qualification allows you to perform work at stations which have this badge.", "score"=>nil, "
|
92
|
+
line.stations.first.worker.skill_badges.first.should eql([{"title"=>"Football Fanatic", "description"=>"This qualification allows you to perform work at stations which have this badge.", "score"=>nil, "quality_rating"=>nil, "max_badges"=>3, "skill_test"=>{"score_after"=>"submit", "manual_scoring"=>false, "display_answers"=>false, "edit_answers"=>true, "retries"=>0, "pass_percentage"=>100, "test_units"=>[{"input"=>{"name"=>"Lionel Andres Messi", "country"=>"Argentina"}, "expected_output"=>[{"birthplace"=>"Rosario, Santa Fe, Argentina", "match_options"=>{"tolerance"=>"1", "ignore_case"=>"false"}, "position"=>"CF", "current-club"=>"Barcelona"}], "match_options"=>{"tolerance"=>0, "ignore_case"=>false}}]}}])
|
93
93
|
line.stations.first.worker.stat_badge.should eql({"approval_rating"=>80, "assignment_duration"=>3600, "abandonment_rate"=>30, "country"=>nil})
|
94
94
|
end
|
95
95
|
end
|
@@ -122,7 +122,7 @@ module CF
|
|
122
122
|
line.stations.first.type.should eql("WorkStation")
|
123
123
|
line.stations.first.worker.number.should eql(2)
|
124
124
|
line.stations.first.worker.reward.should eql(20)
|
125
|
-
line.stations.first.worker.skill_badges.first.should eql([{"title"=>"Football Fanatic", "description"=>"This qualification allows you to perform work at stations which have this badge.", "score"=>nil, "
|
125
|
+
line.stations.first.worker.skill_badges.first.should eql([{"title"=>"Football Fanatic", "description"=>"This qualification allows you to perform work at stations which have this badge.", "score"=>nil, "quality_rating"=>nil, "max_badges"=>3, "skill_test"=>{"score_after"=>"submit", "manual_scoring"=>false, "display_answers"=>false, "edit_answers"=>true, "retries"=>0, "pass_percentage"=>100, "test_units"=>[{"input"=>{"name"=>"Lionel Andres Messi", "country"=>"Argentina"}, "expected_output"=>[{"birthplace"=>"Rosario, Santa Fe, Argentina", "match_options"=>{"tolerance"=>"1", "ignore_case"=>"false"}, "position"=>"CF", "current-club"=>"Barcelona"}], "match_options"=>{"tolerance"=>0, "ignore_case"=>false}}]}}])
|
126
126
|
line.stations.first.worker.stat_badge.should eql({"approval_rating"=>80, "assignment_duration"=>3600, "abandonment_rate"=>30, "country"=>nil})
|
127
127
|
end
|
128
128
|
end
|
@@ -10,18 +10,17 @@ module CF
|
|
10
10
|
line = CF::Line.create("image_processing_robot","Digitization") do |l|
|
11
11
|
CF::InputFormat.new({:line => l, :name => "url", :valid_type => "url", :required => "true"})
|
12
12
|
CF::Station.create({:line => l, :type => "work"}) do |s|
|
13
|
-
CF::RobotWorker.create({:station => s, :type => "image_processing_robot", :settings => {:image => ["{url}"], :sharpen => {:radius => "10"}}})
|
13
|
+
CF::RobotWorker.create({:station => s, :type => "image_processing_robot", :settings => {:image => ["{{url}}"], :sharpen => {:radius => "10"}}})
|
14
14
|
end
|
15
15
|
end
|
16
16
|
run = CF::Run.create(line, "image_processing_robot_run", [{"url"=> "http://wwwdelivery.superstock.com/WI/223/1527/PreviewComp/SuperStock_1527R-020214.jpg"}])
|
17
17
|
output = run.final_output
|
18
18
|
converted_url = output.first.final_output.first.processed_image_of_url
|
19
19
|
File.exist?("/Users/manish/apps/cloudfactory/public#{converted_url}").should eql(true)
|
20
|
-
output.first.final_output.first.sharpen.radius.should eql("10")
|
21
20
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
22
|
-
line.stations.first.worker.reward.should eql(0)
|
21
|
+
line.stations.first.worker.reward.should eql(0.01)
|
23
22
|
line.stations.first.worker.number.should eql(1)
|
24
|
-
line.stations.first.worker.settings.should eql({:image => ["{url}"], :sharpen => {:radius => "10"}})
|
23
|
+
line.stations.first.worker.settings.should eql({:image => ["{{url}}"], :sharpen => {:radius => "10"}})
|
25
24
|
line.stations.first.worker.type.should eql("ImageProcessingRobot")
|
26
25
|
end
|
27
26
|
end
|
@@ -36,18 +35,17 @@ module CF
|
|
36
35
|
station = CF::Station.new({:type => "work"})
|
37
36
|
line.stations station
|
38
37
|
|
39
|
-
worker = CF::RobotWorker.create({:type => "image_processing_robot", :settings => {:image => ["{url}"], :sharpen => {:radius => "10"}}})
|
38
|
+
worker = CF::RobotWorker.create({:type => "image_processing_robot", :settings => {:image => ["{{url}}"], :sharpen => {:radius => "10"}}})
|
40
39
|
line.stations.first.worker = worker
|
41
40
|
|
42
41
|
run = CF::Run.create(line, "image_processing_robot_run_1", [{"url"=> "http://wwwdelivery.superstock.com/WI/223/1527/PreviewComp/SuperStock_1527R-020214.jpg"}])
|
43
42
|
output = run.final_output
|
44
43
|
converted_url = output.first.final_output.first.processed_image_of_url
|
45
44
|
File.exist?("/Users/manish/apps/cloudfactory/public#{converted_url}").should eql(true)
|
46
|
-
output.first.final_output.first.sharpen.radius.should eql("10")
|
47
45
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
48
|
-
line.stations.first.worker.reward.should eql(0)
|
46
|
+
line.stations.first.worker.reward.should eql(0.01)
|
49
47
|
line.stations.first.worker.number.should eql(1)
|
50
|
-
line.stations.first.worker.settings.should eql({:image => ["{url}"], :sharpen => {:radius => "10"}})
|
48
|
+
line.stations.first.worker.settings.should eql({:image => ["{{url}}"], :sharpen => {:radius => "10"}})
|
51
49
|
line.stations.first.worker.type.should eql("ImageProcessingRobot")
|
52
50
|
end
|
53
51
|
end
|
@@ -10,10 +10,10 @@ module CF
|
|
10
10
|
line = CF::Line.create("keyword_matching_robot","Digitization") do |l|
|
11
11
|
CF::InputFormat.new({:line => l, :name => "url", :valid_type => "url", :required => "true"})
|
12
12
|
CF::Station.create({:line => l, :type => "work"}) do |s|
|
13
|
-
CF::RobotWorker.create({:station => s, :type => "text_extraction_robot", :settings => {:url => ["{url}"]}})
|
13
|
+
CF::RobotWorker.create({:station => s, :type => "text_extraction_robot", :settings => {:url => ["{{url}}"]}})
|
14
14
|
end
|
15
15
|
CF::Station.create({:line => l, :type => "work"}) do |s1|
|
16
|
-
CF::RobotWorker.create({:station => s1, :type => "keyword_matching_robot", :settings => {:content => ["{contents_of_url}"], :keywords => ["SaaS","see","additional","deepak","saroj"]}})
|
16
|
+
CF::RobotWorker.create({:station => s1, :type => "keyword_matching_robot", :settings => {:content => ["{{contents_of_url}}"], :keywords => ["SaaS","see","additional","deepak","saroj"]}})
|
17
17
|
end
|
18
18
|
end
|
19
19
|
run = CF::Run.create(line, "keyword_matching_robot_run", [{"url"=> "http://techcrunch.com/2011/07/26/with-v2-0-assistly-brings-a-simple-pricing-model-rewards-and-a-bit-of-free-to-customer-service-software"}])
|
@@ -21,14 +21,14 @@ module CF
|
|
21
21
|
output.first.final_output.first.included_keywords_count_in_contents_of_url.should eql(["3", "2", "2"])
|
22
22
|
output.first.final_output.first.keyword_included_in_contents_of_url.should eql(["SaaS", "see", "additional"])
|
23
23
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
24
|
-
line.stations.first.worker.reward.should eql(
|
24
|
+
line.stations.first.worker.reward.should eql(0.5)
|
25
25
|
line.stations.first.worker.number.should eql(1)
|
26
|
-
line.stations.first.worker.settings.should eql({:url => ["{url}"]})
|
26
|
+
line.stations.first.worker.settings.should eql({:url => ["{{url}}"]})
|
27
27
|
line.stations.first.worker.type.should eql("TextExtractionRobot")
|
28
28
|
line.stations.last.worker.class.should eql(CF::RobotWorker)
|
29
|
-
line.stations.last.worker.reward.should eql(
|
29
|
+
line.stations.last.worker.reward.should eql(0.5)
|
30
30
|
line.stations.last.worker.number.should eql(1)
|
31
|
-
line.stations.last.worker.settings.should eql({:content => ["{contents_of_url}"], :keywords => ["SaaS","see","additional","deepak","saroj"]})
|
31
|
+
line.stations.last.worker.settings.should eql({:content => ["{{contents_of_url}}"], :keywords => ["SaaS","see","additional","deepak","saroj"]})
|
32
32
|
line.stations.last.worker.type.should eql("KeywordMatchingRobot")
|
33
33
|
end
|
34
34
|
end
|
@@ -43,13 +43,13 @@ module CF
|
|
43
43
|
station = CF::Station.new({:type => "work"})
|
44
44
|
line.stations station
|
45
45
|
|
46
|
-
worker = CF::RobotWorker.create({:type => "text_extraction_robot", :settings => {:url => ["{url}"]}})
|
46
|
+
worker = CF::RobotWorker.create({:type => "text_extraction_robot", :settings => {:url => ["{{url}}"]}})
|
47
47
|
line.stations.first.worker = worker
|
48
48
|
|
49
49
|
station_1 = CF::Station.new({:type => "work"})
|
50
50
|
line.stations station
|
51
51
|
|
52
|
-
worker = CF::RobotWorker.create({:type => "keyword_matching_robot", :settings => {:content => ["{contents_of_url}"], :keywords => ["SaaS","see","additional","deepak","saroj"]}})
|
52
|
+
worker = CF::RobotWorker.create({:type => "keyword_matching_robot", :settings => {:content => ["{{contents_of_url}}"], :keywords => ["SaaS","see","additional","deepak","saroj"]}})
|
53
53
|
line.stations.last.worker = worker
|
54
54
|
|
55
55
|
run = CF::Run.create(line, "keyword_matching_robot_run_1", [{"url"=> "http://techcrunch.com/2011/07/26/with-v2-0-assistly-brings-a-simple-pricing-model-rewards-and-a-bit-of-free-to-customer-service-software"}])
|
@@ -57,14 +57,14 @@ module CF
|
|
57
57
|
output.first.final_output.first.included_keywords_count_in_contents_of_url.should eql(["3", "2", "2"])
|
58
58
|
output.first.final_output.first.keyword_included_in_contents_of_url.should eql(["SaaS", "see", "additional"])
|
59
59
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
60
|
-
line.stations.first.worker.reward.should eql(
|
60
|
+
line.stations.first.worker.reward.should eql(0.5)
|
61
61
|
line.stations.first.worker.number.should eql(1)
|
62
|
-
line.stations.first.worker.settings.should eql({:url => ["{url}"]})
|
62
|
+
line.stations.first.worker.settings.should eql({:url => ["{{url}}"]})
|
63
63
|
line.stations.first.worker.type.should eql("TextExtractionRobot")
|
64
64
|
line.stations.last.worker.class.should eql(CF::RobotWorker)
|
65
|
-
line.stations.last.worker.reward.should eql(
|
65
|
+
line.stations.last.worker.reward.should eql(0.5)
|
66
66
|
line.stations.last.worker.number.should eql(1)
|
67
|
-
line.stations.last.worker.settings.should eql({:content => ["{contents_of_url}"], :keywords => ["SaaS","see","additional","deepak","saroj"]})
|
67
|
+
line.stations.last.worker.settings.should eql({:content => ["{{contents_of_url}}"], :keywords => ["SaaS","see","additional","deepak","saroj"]})
|
68
68
|
line.stations.last.worker.type.should eql("KeywordMatchingRobot")
|
69
69
|
end
|
70
70
|
end
|
data/spec/line_spec.rb
CHANGED
@@ -90,7 +90,7 @@ describe CF::Line do
|
|
90
90
|
line.stations.first.form.instruction.should eq("Describe")
|
91
91
|
line.stations.first.form.form_fields.first.label.should eq("First Name")
|
92
92
|
line.stations.first.form.form_fields.first.field_type.should eq("SA")
|
93
|
-
line.stations.first.form.form_fields.first.required.should eq(true)
|
93
|
+
line.stations.first.form.form_fields.first.required.should eq("true")
|
94
94
|
end
|
95
95
|
end
|
96
96
|
end
|
@@ -157,24 +157,6 @@ describe CF::Line do
|
|
157
157
|
|
158
158
|
end
|
159
159
|
|
160
|
-
context "Updating a line" do
|
161
|
-
it "updates an existing line" do
|
162
|
-
# WebMock.allow_net_connect!
|
163
|
-
VCR.use_cassette "lines/block/update-line", :record => :new_episodes do
|
164
|
-
line = CF::Line.new("Digitizd-14", "Digitization", {:public => true, :description => "this is description"})
|
165
|
-
line.update({:title => "Newtitle-1", :department_name => "Survey", :description => "this is new description"})
|
166
|
-
updated_line = CF::Line.info(line)
|
167
|
-
updated_line.title.should eql("newtitle-1")
|
168
|
-
updated_line.title.should_not eql("digitizd-14")
|
169
|
-
# department is not updated
|
170
|
-
# updated_line.department_name.should eql("Survey")
|
171
|
-
# updated_line.department_name.should_not eql("Digitization")
|
172
|
-
updated_line.description.should eql("this is new description")
|
173
|
-
updated_line.description.should_not eql("this is description")
|
174
|
-
end
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
160
|
context "deleting" do
|
179
161
|
it "should delete a line" do
|
180
162
|
# WebMock.allow_net_connect!
|
@@ -223,13 +205,13 @@ describe CF::Line do
|
|
223
205
|
line.stations.first.form.instruction.should eq("Describe")
|
224
206
|
line.stations.first.form.form_fields[0].label.should eq("First Name")
|
225
207
|
line.stations.first.form.form_fields[0].field_type.should eq("SA")
|
226
|
-
line.stations.first.form.form_fields[0].required.should eq(true)
|
208
|
+
line.stations.first.form.form_fields[0].required.should eq("true")
|
227
209
|
line.stations.first.form.form_fields[1].label.should eq("Middle Name")
|
228
210
|
line.stations.first.form.form_fields[1].field_type.should eq("SA")
|
229
211
|
line.stations.first.form.form_fields[1].required.should eq(nil)
|
230
212
|
line.stations.first.form.form_fields[2].label.should eq("Last Name")
|
231
213
|
line.stations.first.form.form_fields[2].field_type.should eq("SA")
|
232
|
-
line.stations.first.form.form_fields[2].required.should eq(true)
|
214
|
+
line.stations.first.form.form_fields[2].required.should eq("true")
|
233
215
|
end
|
234
216
|
end
|
235
217
|
end
|
@@ -265,6 +247,7 @@ describe CF::Line do
|
|
265
247
|
# WebMock.allow_net_connect!
|
266
248
|
VCR.use_cassette "lines/plain-ruby/create-form", :record => :new_episodes do
|
267
249
|
line = CF::Line.new("Diggard-1", "Digitization")
|
250
|
+
CF::InputFormat.new({:line => line, :name => "image_url", :required => true, :valid_type => "url"})
|
268
251
|
station = CF::Station.new({:type => "work"})
|
269
252
|
line.stations station
|
270
253
|
|
@@ -287,9 +270,9 @@ describe CF::Line do
|
|
287
270
|
line.input_formats input_format
|
288
271
|
station = CF::Station.new({:type => "work"})
|
289
272
|
line.stations station
|
290
|
-
line.
|
291
|
-
line.
|
292
|
-
line.
|
273
|
+
line.input_formats.first.name.should eq("image_url")
|
274
|
+
line.input_formats.first.required.should eq(true)
|
275
|
+
line.input_formats.first.valid_type.should eq("url")
|
293
276
|
end
|
294
277
|
end
|
295
278
|
|
@@ -297,6 +280,7 @@ describe CF::Line do
|
|
297
280
|
# WebMock.allow_net_connect!
|
298
281
|
VCR.use_cassette "lines/plain-ruby/create-form-fields", :record => :new_episodes do
|
299
282
|
line = CF::Line.new("Digitized-4", "Digitization")
|
283
|
+
CF::InputFormat.new({:line => line, :name => "image_url", :required => true, :valid_type => "url"})
|
300
284
|
station = CF::Station.new({:type => "work"})
|
301
285
|
line.stations station
|
302
286
|
|
@@ -306,20 +290,20 @@ describe CF::Line do
|
|
306
290
|
form = CF::TaskForm.new({:title => "Enter text from a business card image", :instruction => "Describe"})
|
307
291
|
line.stations.first.form = form
|
308
292
|
|
309
|
-
form_fields_1 = CF::FormField.new({:label => "First Name", :field_type => "
|
293
|
+
form_fields_1 = CF::FormField.new({:label => "First Name", :field_type => "short_answer", :required => "true"})
|
310
294
|
line.stations.first.form.form_fields form_fields_1
|
311
|
-
form_fields_2 = CF::FormField.new({:label => "Middle Name", :field_type => "
|
295
|
+
form_fields_2 = CF::FormField.new({:label => "Middle Name", :field_type => "short_answer"})
|
312
296
|
line.stations.first.form.form_fields form_fields_2
|
313
|
-
form_fields_3 = CF::FormField.new({:label => "Last Name", :field_type => "
|
297
|
+
form_fields_3 = CF::FormField.new({:label => "Last Name", :field_type => "short_answer", :required => "true"})
|
314
298
|
line.stations.first.form.form_fields form_fields_3
|
315
299
|
|
316
300
|
line.stations.first.form.form_fields[0].label.should eql("First Name")
|
317
|
-
line.stations.first.form.form_fields[0].field_type.should eq("
|
301
|
+
line.stations.first.form.form_fields[0].field_type.should eq("short_answer")
|
318
302
|
line.stations.first.form.form_fields[0].required.should eq(true)
|
319
303
|
line.stations.first.form.form_fields[1].label.should eql("Middle Name")
|
320
|
-
line.stations.first.form.form_fields[1].field_type.should eq("
|
304
|
+
line.stations.first.form.form_fields[1].field_type.should eq("short_answer")
|
321
305
|
line.stations.first.form.form_fields[2].label.should eql("Last Name")
|
322
|
-
line.stations.first.form.form_fields[2].field_type.should eq("
|
306
|
+
line.stations.first.form.form_fields[2].field_type.should eq("short_answer")
|
323
307
|
line.stations.first.form.form_fields[2].required.should eq(true)
|
324
308
|
end
|
325
309
|
end
|
@@ -331,7 +315,7 @@ describe CF::Line do
|
|
331
315
|
VCR.use_cassette "lines/plain-ruby/create-line-with-used-title", :record => :new_episodes do
|
332
316
|
line = CF::Line.new("new_line", "Digitization")
|
333
317
|
line_1 = CF::Line.new("new_line", "Digitization")
|
334
|
-
line_1.errors.should eql(
|
318
|
+
line_1.errors.should eql(["Title is already taken for this account"])
|
335
319
|
end
|
336
320
|
end
|
337
321
|
end
|
data/spec/mailer_robot_spec.rb
CHANGED
@@ -7,24 +7,21 @@ module CF
|
|
7
7
|
it "should create mailer robot worker for first station in Block DSL way" do
|
8
8
|
# WebMock.allow_net_connect!
|
9
9
|
VCR.use_cassette "robot_worker/mailer_robot/block/create-worker-single-station", :record => :new_episodes do
|
10
|
-
@template = "<html><body><h1>Hello {{
|
10
|
+
@template = "<html><body><h1>Hello {{to}} Welcome to CLoudfactory!!!!</h1><p>Thanks for using!!!!</p></body></html>"
|
11
11
|
line = CF::Line.create("mailer_robot","Digitization") do |l|
|
12
12
|
CF::InputFormat.new({:line => l, :name => "to", :valid_type => "general", :required => "true"})
|
13
13
|
CF::Station.create({:line => l, :type => "work"}) do |s|
|
14
|
-
CF::RobotWorker.create({:station => s, :type => "mailer_robot", :settings => {:to => ["manish.das@sprout-technology.com"], :template => @template
|
14
|
+
CF::RobotWorker.create({:station => s, :type => "mailer_robot", :settings => {:to => ["manish.das@sprout-technology.com"], :template => @template}})
|
15
15
|
end
|
16
16
|
end
|
17
17
|
run = CF::Run.create(line, "mailer_robot_run", [{"to"=> "manish.das@sprout-technology.com"}])
|
18
18
|
output = run.final_output
|
19
|
-
output.first.final_output.first.recipients_of_to.should eql(["manish.das@sprout-technology.com"])
|
20
|
-
output.first.final_output.first.sent_message_for_to.should eql(["<html><body><h1>Hello
|
21
|
-
output.first.final_output.first.template.should eql("<html><body><h1>Hello {{user}} Welcome to CLoudfactory!!!!</h1><p>Thanks for using!!!!</p></body></html>")
|
22
|
-
output.first.final_output.first.template_variables.user.should eql("Manish")
|
23
|
-
output.first.final_output.first.template_variables.email.should eql("{{email}}")
|
19
|
+
output.first.final_output.first.recipients_of_to.should eql([["manish.das@sprout-technology.com"]])
|
20
|
+
output.first.final_output.first.sent_message_for_to.should eql(["<html><body><h1>Hello manish.das@sprout-technology.com Welcome to CLoudfactory!!!!</h1><p>Thanks for using!!!!</p></body></html>"])
|
24
21
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
25
|
-
line.stations.first.worker.reward.should eql(
|
22
|
+
line.stations.first.worker.reward.should eql(0.01)
|
26
23
|
line.stations.first.worker.number.should eql(1)
|
27
|
-
line.stations.first.worker.settings.should eql({:to => ["manish.das@sprout-technology.com"], :template => @template
|
24
|
+
line.stations.first.worker.settings.should eql({:to => ["manish.das@sprout-technology.com"], :template => @template})
|
28
25
|
line.stations.first.worker.type.should eql("MailerRobot")
|
29
26
|
end
|
30
27
|
end
|
@@ -32,7 +29,7 @@ module CF
|
|
32
29
|
it "should create mailer robot worker for first station in a plain ruby way" do
|
33
30
|
# WebMock.allow_net_connect!
|
34
31
|
VCR.use_cassette "robot_worker/mailer_robot/plain-ruby/create-worker-in-first-station", :record => :new_episodes do
|
35
|
-
@template = "<html><body><h1>Hello {{
|
32
|
+
@template = "<html><body><h1>Hello {{to}} Welcome to CLoudfactory!!!!</h1><p>Thanks for using!!!!</p></body></html>"
|
36
33
|
line = CF::Line.new("mailer_robot_1","Digitization")
|
37
34
|
input_format = CF::InputFormat.new({:name => "to", :required => "true", :valid_type => "general"})
|
38
35
|
line.input_formats input_format
|
@@ -40,20 +37,17 @@ module CF
|
|
40
37
|
station = CF::Station.new({:type => "work"})
|
41
38
|
line.stations station
|
42
39
|
|
43
|
-
worker = CF::RobotWorker.create({:type => "mailer_robot", :settings => {:to => ["manish.das@sprout-technology.com"], :template => @template
|
40
|
+
worker = CF::RobotWorker.create({:type => "mailer_robot", :settings => {:to => ["manish.das@sprout-technology.com"], :template => @template}})
|
44
41
|
line.stations.first.worker = worker
|
45
42
|
|
46
43
|
run = CF::Run.create(line, "mailer_robot_run_1", [{"to"=> "manish.das@sprout-technology.com"}])
|
47
44
|
output = run.final_output
|
48
|
-
output.first.final_output.first.recipients_of_to.should eql(["manish.das@sprout-technology.com"])
|
49
|
-
output.first.final_output.first.sent_message_for_to.should eql(["<html><body><h1>Hello
|
50
|
-
output.first.final_output.first.template.should eql("<html><body><h1>Hello {{user}} Welcome to CLoudfactory!!!!</h1><p>Thanks for using!!!!</p></body></html>")
|
51
|
-
output.first.final_output.first.template_variables.user.should eql("Manish")
|
52
|
-
output.first.final_output.first.template_variables.email.should eql("{{email}}")
|
45
|
+
output.first.final_output.first.recipients_of_to.should eql([["manish.das@sprout-technology.com"]])
|
46
|
+
output.first.final_output.first.sent_message_for_to.should eql(["<html><body><h1>Hello manish.das@sprout-technology.com Welcome to CLoudfactory!!!!</h1><p>Thanks for using!!!!</p></body></html>"])
|
53
47
|
line.stations.first.worker.class.should eql(CF::RobotWorker)
|
54
|
-
line.stations.first.worker.reward.should eql(
|
48
|
+
line.stations.first.worker.reward.should eql(0.01)
|
55
49
|
line.stations.first.worker.number.should eql(1)
|
56
|
-
line.stations.first.worker.settings.should eql({:to => ["manish.das@sprout-technology.com"], :template => @template
|
50
|
+
line.stations.first.worker.settings.should eql({:to => ["manish.das@sprout-technology.com"], :template => @template})
|
57
51
|
line.stations.first.worker.type.should eql("MailerRobot")
|
58
52
|
end
|
59
53
|
end
|