cloudfactory 0.4.4 → 0.4.5

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.
@@ -0,0 +1,135 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <meta charset="UTF-8">
4
+ <head>
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>
57
+ </head>
58
+ <body>
59
+ <div id="wrapper">
60
+ <div id="header">
61
+ Be a Match Maker
62
+ </div>
63
+ <div id="instructions">
64
+ <h2>Instructions:</h2>
65
+ <ul>
66
+ <li><img src="{{image_url}}" /></li>
67
+ <li>Then enter the url of hottest date found</li>
68
+ </ul>
69
+ </div>
70
+
71
+ <div id="station_2_form">
72
+ <div id = "field-panel">
73
+ <p>
74
+ <form>
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
+
107
+ <input type="submit" value="submit" />
108
+
109
+ </form>
110
+ </p>
111
+ </div>
112
+ </div>
113
+ <div id="footer">
114
+ Copyright(c)
115
+ </div>
116
+ </div>
117
+ </body>
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>
@@ -0,0 +1,288 @@
1
+ require 'spec_helper'
2
+
3
+ describe CF::Badge do
4
+ context "add a badge" do
5
+ it "should add a badge to the station in DSL way" do
6
+ WebMock.allow_net_connect!
7
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
8
+ sleep 1
9
+ line = CF::Line.create(title,"Digitization") do |l|
10
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
11
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
12
+ end
13
+ station = CF::Station.create({:line => line, :type => "work"}) do |s|
14
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 10})
15
+ CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
16
+ CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
17
+ CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
18
+ CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
19
+ end
20
+ @gold_standard = CF::GoldStandard.new({ :line => line,
21
+ :station => s,
22
+ :name => "easy_#{Time.now}",
23
+ :input => {'image_url' => "http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"},
24
+ :expected_output => {"first_name" => {"value" => "John"}, "last_name" => {"value" => "Lennon"}, "company" => {"value" => "Sprout"}}
25
+ })
26
+
27
+ @badge = CF::Badge.create({
28
+ :line => line,
29
+ :station => s,
30
+ :name => "Tomb Digitizer",
31
+ :description => "This badge qualifies you to work on tomb digitization tasks.",
32
+ :max_badges => 100,
33
+ :gold_standards => ["#{@gold_standard.settings[:name]}"],
34
+ :test_attributes =>
35
+ {
36
+ :type => "default",
37
+ :retries => 10,
38
+ :pass_percentage => 100,
39
+ :check_manually => true
40
+ }
41
+ })
42
+ end
43
+ end
44
+
45
+ it "should add a badge to the station in plain ruby way" do
46
+ WebMock.allow_net_connect!
47
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
48
+ sleep 1
49
+ @line = CF::Line.create(title,"Digitization") do |l|
50
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
51
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
52
+ end
53
+ station = CF::Station.create({:line => @line, :type => "work"}) do |s|
54
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 10})
55
+ CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
56
+ CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
57
+ CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
58
+ CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
59
+ end
60
+ @gold_standard = CF::GoldStandard.new({ :line => @line,
61
+ :station => s,
62
+ :name => "easy",
63
+ :input => {'image_url' => "http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"},
64
+ :expected_output => {"first_name" => {"value" => "John"}, "last_name" => {"value" => "Lennon"}, "company" => {"value" => "Sprout"}}
65
+ })
66
+ end
67
+ badge = CF::Badge.new({
68
+ :name => "Tomb Digitizer",
69
+ :description => "This badge qualifies you to work on tomb digitization tasks.",
70
+ :max_badges => 100,
71
+ :gold_standards => ["#{@gold_standard.settings[:name]}"],
72
+ :test_attributes =>
73
+ {
74
+ :type => "default",
75
+ :retries => 10,
76
+ :pass_percentage => 100,
77
+ :check_manually => false
78
+ }
79
+ })
80
+ @line.stations.first.badges badge
81
+ @line.stations.first.badges.first.settings["name"].should eq(badge.settings[:name])
82
+ @line.stations.first.badges.first.settings['test']["form"].should eql({"_type"=>"TaskForm", "form_fields"=>[{"label"=>"First Name", "field_type"=>"short_answer", "required"=>true, "position"=>1}, {"label"=>"Middle Name", "field_type"=>"short_answer", "position"=>2}, {"label"=>"Last Name", "field_type"=>"short_answer", "required"=>true, "position"=>3}], "instruction"=>"Describe", "title"=>"Enter text from a business card image"})
83
+
84
+ end
85
+
86
+
87
+ it "should add a badge to the station with test form defined in DSL way" do
88
+ WebMock.allow_net_connect!
89
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
90
+ sleep 1
91
+ line = CF::Line.create(title,"Digitization") do |l|
92
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
93
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
94
+ end
95
+ station = CF::Station.create({:line => line, :type => "work"}) do |s|
96
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 10})
97
+ CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
98
+ CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
99
+ CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
100
+ CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
101
+ end
102
+ @gold_standard = CF::GoldStandard.new({ :line => line,
103
+ :station => s,
104
+ :name => "easy_#{Time.now}",
105
+ :input => {'image_url' => "http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"},
106
+ :expected_output => {"first_name" => {"value" => "John"}, "last_name" => {"value" => "Lennon"}, "company" => {"value" => "Sprout"}}
107
+ })
108
+
109
+ @badge = CF::Badge.new({
110
+ :line => line,
111
+ :station => s,
112
+ :name => "Tomb Digitizer",
113
+ :description => "This badge qualifies you to work on tomb digitization tasks.",
114
+ :max_badges => 100,
115
+ :gold_standards => ["#{@gold_standard.settings[:name]}"],
116
+ :test_attributes =>
117
+ {
118
+ :type => "default",
119
+ :retries => 10,
120
+ :pass_percentage => 100,
121
+ :check_manually => true,
122
+ :form_attributes => {
123
+ :title => "Tombfinder Test",
124
+ :instruction => "Look at the image of the tomb in the url given and answer the asked questions.",
125
+ :type => "TaskForm",
126
+ :form_fields_attributes =>
127
+ [
128
+ { "label" => "Last Name", "field_type" => "radio_button", 'option_values' => ["LEIGH", "IRVING", "GERTRUDE"] },
129
+ { "label" => "Lizzie Year of Birth", "field_type" => "radio_button", 'option_values' => ["1873", "1933", "1896"] }
130
+ ]
131
+ }
132
+ }
133
+ })
134
+ end
135
+ line.stations.first.badges.first.settings[:test_attributes][:form_attributes][:type].should eql("TaskForm")
136
+ line.stations.first.badges.first.settings[:test_attributes][:form_attributes][:form_fields_attributes].should eql([{"label"=>"Last Name", "field_type"=>"radio_button", "option_values"=>["LEIGH", "IRVING", "GERTRUDE"]}, {"label"=>"Lizzie Year of Birth", "field_type"=>"radio_button", "option_values"=>["1873", "1933", "1896"]}])
137
+ end
138
+
139
+
140
+
141
+ it "should add a badge to the station with customtaskform as a badge testform form defined in DSL way" do
142
+ WebMock.allow_net_connect!
143
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
144
+ sleep 1
145
+ line = CF::Line.create(title,"Digitization") do |l|
146
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
147
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
148
+ end
149
+ station = CF::Station.create({:line => line, :type => "work"}) do |s|
150
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 10})
151
+ CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
152
+ CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
153
+ CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
154
+ CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
155
+ end
156
+ @gold_standard = CF::GoldStandard.new({ :line => line,
157
+ :station => s,
158
+ :name => "easy_#{Time.now}",
159
+ :input => {'image_url' => "http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"},
160
+ :expected_output => {"first_name" => {"value" => "John"}, "last_name" => {"value" => "Lennon"}, "company" => {"value" => "Sprout"}}
161
+ })
162
+
163
+ @badge = CF::Badge.new({
164
+ :line => line,
165
+ :station => s,
166
+ :name => "Tomb Digitizer",
167
+ :description => "This badge qualifies you to work on tomb digitization tasks.",
168
+ :max_badges => 100,
169
+ :gold_standards => ["#{@gold_standard.settings[:name]}"],
170
+ :test_attributes =>
171
+ {
172
+ :type => "default",
173
+ :retries => 10,
174
+ :pass_percentage => 100,
175
+ :check_manually => true,
176
+ :form_attributes => {
177
+ :title => "Custom TestForm",
178
+ :instruction => "Look at the image of the tomb in the url given and answer the asked questions.",
179
+ :type => "CustomTaskForm",
180
+ :file =>"./spec/badges/station_1.html"
181
+ }
182
+ }
183
+ })
184
+ end
185
+ line.stations.first.badges.first.settings[:test_attributes][:form_attributes][:type].should eql("CustomTaskForm")
186
+ end
187
+
188
+
189
+ it "should add a badge with defined custom_task_form as a badge test form in plain ruby way " do
190
+ WebMock.allow_net_connect!
191
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
192
+ sleep 1
193
+ @line = CF::Line.create(title,"Digitization") do |l|
194
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
195
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
196
+ end
197
+ station = CF::Station.create({:line => @line, :type => "work"}) do |s|
198
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 10})
199
+ CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
200
+ CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
201
+ CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
202
+ CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
203
+ end
204
+ @gold_standard = CF::GoldStandard.new({ :line => @line,
205
+ :station => s,
206
+ :name => "easy",
207
+ :input => {'image_url' => "http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"},
208
+ :expected_output => {"first_name" => {"value" => "John"}, "last_name" => {"value" => "Lennon"}, "company" => {"value" => "Sprout"}}
209
+ })
210
+ end
211
+ badge = CF::Badge.new({
212
+ :name => "Tomb Digitizer",
213
+ :description => "This badge qualifies you to work on tomb digitization tasks.",
214
+ :max_badges => 100,
215
+ :gold_standards => ["#{@gold_standard.settings[:name]}"],
216
+ :test_attributes =>
217
+ {
218
+ :type => "default",
219
+ :retries => 10,
220
+ :pass_percentage => 100,
221
+ :check_manually => false,
222
+ :form_attributes => {
223
+ :title => "Custom TestForm in plain ruby way",
224
+ :instruction => "Look at the image of the tomb in the url given and answer the asked questions.",
225
+ :type => "CustomTaskForm",
226
+ :file =>"./spec/badges/station_1.html"
227
+ }
228
+ }
229
+ })
230
+ @line.stations.first.badges badge
231
+ @line.stations.first.badges.first.settings["test"]["form"]["_type"].should eql("CustomTaskForm")
232
+ @line.stations.first.badges.first.settings["test"]["form"]["raw_html"].present?.should eql(true)
233
+ end
234
+
235
+
236
+ it "should add a badge with defined task_form as a badge test form in plain ruby way " do
237
+ WebMock.allow_net_connect!
238
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
239
+ sleep 1
240
+ @line = CF::Line.create(title,"Digitization") do |l|
241
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
242
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
243
+ end
244
+ station = CF::Station.create({:line => @line, :type => "work"}) do |s|
245
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 10})
246
+ CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
247
+ CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
248
+ CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
249
+ CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
250
+ end
251
+ @gold_standard = CF::GoldStandard.new({ :line => @line,
252
+ :station => s,
253
+ :name => "easy",
254
+ :input => {'image_url' => "http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"},
255
+ :expected_output => {"first_name" => {"value" => "John"}, "last_name" => {"value" => "Lennon"}, "company" => {"value" => "Sprout"}}
256
+ })
257
+ end
258
+ badge = CF::Badge.new({
259
+ :name => "Tomb Digitizer",
260
+ :description => "This badge qualifies you to work on tomb digitization tasks.",
261
+ :max_badges => 100,
262
+ :gold_standards => ["#{@gold_standard.settings[:name]}"],
263
+ :test_attributes =>
264
+ {
265
+ :type => "default",
266
+ :retries => 10,
267
+ :pass_percentage => 100,
268
+ :check_manually => false,
269
+ :form_attributes => {
270
+ :title => "Tombfinder Test plain ruby way",
271
+ :instruction => "Look at the image of the tomb in the url given and answer the asked questions.",
272
+ :type => "TaskForm",
273
+ :form_fields_attributes =>
274
+ [
275
+ { "label" => "Last Name", "field_type" => "radio_button", 'option_values' => ["LEIGH", "IRVING", "GERTRUDE"] },
276
+ { "label" => "Lizzie Year of Birth", "field_type" => "radio_button", 'option_values' => ["1873", "1933", "1896"] }
277
+ ]
278
+ }
279
+ }
280
+ })
281
+ @line.stations.first.badges badge
282
+ @line.stations.first.badges.first.settings["test"]["form"]["_type"].should eql("TaskForm")
283
+ @line.stations.first.badges.first.settings["test"]["form"]["form_fields"].should eql([{"label"=>"Last Name", "field_type"=>"radio_button", "option_values"=>["LEIGH", "IRVING", "GERTRUDE"]}, {"label"=>"Lizzie Year of Birth", "field_type"=>"radio_button", "option_values"=>["1873", "1933", "1896"]}])
284
+
285
+ end
286
+
287
+ end
288
+ end
@@ -0,0 +1,179 @@
1
+ require 'spec_helper'
2
+
3
+ describe CF::GoldStandard do
4
+ context "add a glodstandard to a line" do
5
+ it "should add gold standard to a line in plain ruby way way" do
6
+ WebMock.allow_net_connect!
7
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
8
+ sleep 1
9
+ line = CF::Line.create(title,"Digitization") do |l|
10
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
11
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
12
+ CF::Station.create({:line => l, :type => "work"}) do |s|
13
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 10})
14
+ CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
15
+ CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
16
+ CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
17
+ CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
18
+ end
19
+ end
20
+ end
21
+ gold_standard = CF::GoldStandard.new({:name => "easy", :input => {'image_url' => "http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"},:expected_output => {"first_name" => {"value" => "John"}, "last_name" => {"value" => "Lennon"}, "company" => {"value" => "Sprout"}}})
22
+ line.gold_standards gold_standard
23
+ line.gold_standards.first.settings[:name].should eql("easy")
24
+ line.gold_standards.first.settings[:input].should eql({"image_url"=>"http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"})
25
+ line.gold_standards.first.settings[:expected_output].should eql({"first_name"=>{"value"=>"John"}, "last_name"=>{"value"=>"Lennon"}, "company"=>{"value"=>"Sprout"}})
26
+ end
27
+
28
+ it "should add gold standard to a line in Block DSL way" do
29
+ WebMock.allow_net_connect!
30
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
31
+ sleep 1
32
+ line = CF::Line.create(title,"Digitization") do |l|
33
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
34
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
35
+ CF::Station.create({:line => l, :type => "work"}) do |s|
36
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 10})
37
+ CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
38
+ CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
39
+ CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
40
+ CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
41
+ end
42
+ end
43
+ end
44
+ gold_standard = CF::GoldStandard.new({ :line => line,
45
+ :name => "gold_standard_#{Time.new.strftime('%Y%b%d-%H%M%S')}",
46
+ :input => {'image_url' => "http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"},
47
+ :expected_output => {"first_name" => {"value" => "John"}, "last_name" => {"value" => "Lennon"}, "company" => {"value" => "Sprout"}}
48
+ })
49
+ line.gold_standards.should include(gold_standard)
50
+ end
51
+
52
+ it "should add gold standard to a line from a file in Block DSL way" do
53
+ WebMock.allow_net_connect!
54
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
55
+ sleep 1
56
+ line = CF::Line.create(title,"Digitization") do |l|
57
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
58
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
59
+ CF::Station.create({:line => l, :type => "work"}) do |s|
60
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 10})
61
+ CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
62
+ CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
63
+ CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
64
+ CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
65
+ end
66
+ end
67
+ end
68
+ gold_standard = CF::GoldStandard.new({:line => line,:file =>"./spec/gold_standards.csv" })
69
+ line.gold_standards.should include(gold_standard)
70
+ end
71
+
72
+ it "should add gold standard to a line from a file in plain ruby way" do
73
+ WebMock.allow_net_connect!
74
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
75
+ sleep 1
76
+ line = CF::Line.create(title,"Digitization") do |l|
77
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
78
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
79
+ end
80
+ station = CF::Station.new({:type => "work"})
81
+ line.stations station
82
+ gold_standard = CF::GoldStandard.new({:file =>"./spec/gold_standards.csv" })
83
+ line.gold_standards gold_standard
84
+ line.gold_standards.first.settings["name"].should eql("gold_standard_1")
85
+ line.gold_standards.first.settings["input"].should eql({"Website"=>"aaple.com"})
86
+ line.gold_standards.first.settings["expected_output"].present?.should eql(true)
87
+ end
88
+ end
89
+
90
+ context "should add goldstandard to a station" do
91
+
92
+ it "should add gold standard to the station in block DSL way" do
93
+ WebMock.allow_net_connect!
94
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
95
+ sleep 1
96
+ line = CF::Line.create(title,"Digitization") do |l|
97
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
98
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
99
+ end
100
+ station = CF::Station.create({:line => line, :type => "work"}) do |s|
101
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 10})
102
+ CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
103
+ CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
104
+ CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
105
+ CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
106
+ end
107
+ @gold_standard = CF::GoldStandard.new({ :line => line,
108
+ :station => s,
109
+ :name => "easy",
110
+ :input => {'image_url' => "http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"},
111
+ :expected_output => {"first_name" => {"value" => "John"}, "last_name" => {"value" => "Lennon"}, "company" => {"value" => "Sprout"}}
112
+ })
113
+ end
114
+ line.stations.first.gold_standards.should include(@gold_standard)
115
+ end
116
+
117
+
118
+ it "should add gold standard to the station in plain ruby way" do
119
+ WebMock.allow_net_connect!
120
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
121
+ sleep 1
122
+ line = CF::Line.create(title,"Digitization") do |l|
123
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
124
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
125
+ end
126
+ station = CF::Station.new({:type => "work"})
127
+ line.stations station
128
+ gold_standard = CF::GoldStandard.new({
129
+ :name => "easy",
130
+ :input => {'image_url' => "http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"},
131
+ :expected_output => {"first_name" => {"value" => "John"}, "last_name" => {"value" => "Lennon"}, "company" => {"value" => "Sprout"}}
132
+ })
133
+ line.stations.first.gold_standards gold_standard
134
+ line.stations.first.gold_standards.first.settings[:name].should eql("easy")
135
+ line.stations.first.gold_standards.first.settings[:input].should eql({"image_url"=>"http://onwired.com/images/portfolio/linda-stanley-business-card.jpg"})
136
+ line.stations.first.gold_standards.first.settings[:expected_output].should eql({"first_name"=>{"value"=>"John"}, "last_name"=>{"value"=>"Lennon"}, "company"=>{"value"=>"Sprout"}})
137
+ end
138
+
139
+ it "should add gold standard to the station from a file in block DSL way" do
140
+ WebMock.allow_net_connect!
141
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
142
+ sleep 1
143
+ line = CF::Line.create(title,"Digitization") do |l|
144
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
145
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
146
+ end
147
+ station = CF::Station.create({:line => line, :type => "work"}) do |s|
148
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 10})
149
+ CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
150
+ CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
151
+ CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
152
+ CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
153
+ end
154
+ @gold_standard = CF::GoldStandard.create({ :line => line,
155
+ :station => s,
156
+ :file =>"./spec/gold_standards.csv"
157
+ })
158
+ end
159
+ line.stations.first.gold_standards.should include(@gold_standard)
160
+ end
161
+
162
+ it "should add gold standard to a station from a file in plain ruby way" do
163
+ WebMock.allow_net_connect!
164
+ title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
165
+ sleep 1
166
+ line = CF::Line.create(title,"Digitization") do |l|
167
+ CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
168
+ CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
169
+ end
170
+ station = CF::Station.new({:type => "work"})
171
+ line.stations station
172
+ gold_standard = CF::GoldStandard.new({:file =>"./spec/gold_standards.csv" })
173
+ line.stations.first.gold_standards gold_standard
174
+ line.stations.first.gold_standards.first.settings["name"].should eql("gold_standard_1")
175
+ line.stations.first.gold_standards.first.settings["input"].should eql({"Website"=>"aaple.com"})
176
+ line.stations.first.gold_standards.first.settings["expected_output"].present?.should eql(true)
177
+ end
178
+ end
179
+ end