cloudfactory 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. data/.gitignore +11 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +10 -0
  4. data/README.md +44 -0
  5. data/Rakefile +40 -0
  6. data/bin/cf +8 -0
  7. data/cf.gemspec +76 -0
  8. data/example/google_translate_app/Gemfile +12 -0
  9. data/example/google_translate_app/config.ru +7 -0
  10. data/example/google_translate_app/google_translate_input.csv +4 -0
  11. data/example/google_translate_app/google_translator_app.rb +53 -0
  12. data/example/google_translate_app/views/index.haml +2 -0
  13. data/example/google_translate_app/views/layout.haml +7 -0
  14. data/example/google_translate_app/views/run.haml +4 -0
  15. data/example/google_translate_app/views/style.sass +2 -0
  16. data/example/human_worker_app/Gemfile +12 -0
  17. data/example/human_worker_app/config.ru +7 -0
  18. data/example/human_worker_app/human_worker_app.rb +55 -0
  19. data/example/human_worker_app/human_worker_input.csv +5 -0
  20. data/example/human_worker_app/public/app.js +12 -0
  21. data/example/human_worker_app/temp.csv +3 -0
  22. data/example/human_worker_app/views/index.haml +15 -0
  23. data/example/human_worker_app/views/layout.haml +10 -0
  24. data/example/human_worker_app/views/result.haml +18 -0
  25. data/example/human_worker_app/views/run.haml +12 -0
  26. data/example/human_worker_app/views/style.sass +25 -0
  27. data/example/sample_yaml_files/concept_tagging_robot.yaml +18 -0
  28. data/example/sample_yaml_files/content_scraping_robot.yaml +19 -0
  29. data/example/sample_yaml_files/entity_extraction_robot.yaml +18 -0
  30. data/example/sample_yaml_files/google_translate_robot.yaml +20 -0
  31. data/example/sample_yaml_files/image_processing_robot.yaml +20 -0
  32. data/example/sample_yaml_files/keyword_matching_and_text_extraction_robot.yaml +26 -0
  33. data/example/sample_yaml_files/mailer_robot.yaml +21 -0
  34. data/example/sample_yaml_files/media_converter_robot.yaml +21 -0
  35. data/example/sample_yaml_files/media_splitting_robot.yaml +20 -0
  36. data/example/sample_yaml_files/multiple_skill_badge.yaml +75 -0
  37. data/example/sample_yaml_files/sentiment_robot.yaml +19 -0
  38. data/example/sample_yaml_files/skill_badge.yaml +56 -0
  39. data/example/sample_yaml_files/stat_badge.yaml +40 -0
  40. data/example/sample_yaml_files/term_extraction_robot.yaml +20 -0
  41. data/example/sample_yaml_files/tournament_station_and_form_fields.yaml +40 -0
  42. data/features/form_generation.feature +46 -0
  43. data/features/form_preview.feature +98 -0
  44. data/features/line_creation.feature +99 -0
  45. data/features/line_deletion.feature +50 -0
  46. data/features/line_generation.feature +57 -0
  47. data/features/run.feature +141 -0
  48. data/features/support/cli_steps.rb +16 -0
  49. data/features/support/env.rb +23 -0
  50. data/features/target_url.feature +82 -0
  51. data/fixtures/api_credentials_example.yml +4 -0
  52. data/fixtures/input_data/media_converter_robot.csv +2 -0
  53. data/fixtures/input_data/test.csv +2 -0
  54. data/lib/cf.rb +94 -0
  55. data/lib/cf/account.rb +32 -0
  56. data/lib/cf/cli.rb +52 -0
  57. data/lib/cf/cli/config.rb +87 -0
  58. data/lib/cf/cli/form.rb +82 -0
  59. data/lib/cf/cli/line.rb +237 -0
  60. data/lib/cf/cli/production.rb +62 -0
  61. data/lib/cf/cli/templates/css_file.css.erb +22 -0
  62. data/lib/cf/cli/templates/form_preview.html.erb +17 -0
  63. data/lib/cf/cli/templates/html_file.html.erb +21 -0
  64. data/lib/cf/cli/templates/js_file.js.erb +18 -0
  65. data/lib/cf/cli/templates/line.tt +55 -0
  66. data/lib/cf/cli/templates/sample-line/form.css +27 -0
  67. data/lib/cf/cli/templates/sample-line/form.html +26 -0
  68. data/lib/cf/cli/templates/sample-line/form.js +7 -0
  69. data/lib/cf/cli/templates/sample-line/line.yml.erb +67 -0
  70. data/lib/cf/cli/templates/sample-line/sample-line.csv +3 -0
  71. data/lib/cf/client.rb +56 -0
  72. data/lib/cf/custom_task_form.rb +136 -0
  73. data/lib/cf/department.rb +24 -0
  74. data/lib/cf/final_output.rb +20 -0
  75. data/lib/cf/form_field.rb +62 -0
  76. data/lib/cf/human_worker.rb +67 -0
  77. data/lib/cf/input_format.rb +134 -0
  78. data/lib/cf/line.rb +231 -0
  79. data/lib/cf/robot_worker.rb +31 -0
  80. data/lib/cf/run.rb +158 -0
  81. data/lib/cf/station.rb +340 -0
  82. data/lib/cf/task_form.rb +147 -0
  83. data/lib/cf/version.rb +3 -0
  84. data/lib/generators/cf/form/form_generator.rb +55 -0
  85. data/lib/generators/cf/form/templates/cf_form.html.erb +11 -0
  86. data/lib/generators/cf/install/install_generator.rb +22 -0
  87. data/lib/generators/cf/install/templates/README +13 -0
  88. data/lib/generators/cf/install/templates/cloud_factory.rb +7 -0
  89. data/spec/account_spec.rb +11 -0
  90. data/spec/badge_spec.rb +88 -0
  91. data/spec/concept_tagging_robot_spec.rb +54 -0
  92. data/spec/config_spec.rb +20 -0
  93. data/spec/content_scraping_robot_spec.rb +58 -0
  94. data/spec/custom_task_form_spec.rb +190 -0
  95. data/spec/department_spec.rb +14 -0
  96. data/spec/entity_extraction_robot_spec.rb +56 -0
  97. data/spec/form_field_spec.rb +126 -0
  98. data/spec/generators/form_generator_spec.rb +60 -0
  99. data/spec/generators/install_generator_spec.rb +35 -0
  100. data/spec/google_translate_robot_spec.rb +64 -0
  101. data/spec/human_worker_spec.rb +118 -0
  102. data/spec/image_processing_robot_spec.rb +56 -0
  103. data/spec/input_format_spec.rb +113 -0
  104. data/spec/keyword_matching_and_text_extraction_robot_spec.rb +73 -0
  105. data/spec/line_spec.rb +338 -0
  106. data/spec/mailer_robot_spec.rb +62 -0
  107. data/spec/media_converter_robot_spec.rb +72 -0
  108. data/spec/media_splitting_robot_spec.rb +62 -0
  109. data/spec/run_spec.rb +298 -0
  110. data/spec/sentiment_robot_spec.rb +56 -0
  111. data/spec/spec_helper.rb +39 -0
  112. data/spec/station_spec.rb +256 -0
  113. data/spec/task_form_spec.rb +96 -0
  114. data/spec/term_extraction_robot_spec.rb +58 -0
  115. data/spec/text_appending_robot_spec.rb +86 -0
  116. metadata +472 -0
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ module CF
5
+ describe CF::RobotWorker do
6
+ context "create a Term Extraction robot worker" do
7
+ it "should create content_scraping_robot worker for first station in Block DSL way" do
8
+ # WebMock.allow_net_connect!
9
+ VCR.use_cassette "robot_worker/term_extraction_robot/block/create-worker-single-station", :record => :new_episodes do
10
+ line = CF::Line.create("term_extraction","Digitization") do |l|
11
+ CF::InputFormat.new({:line => l, :name => "url", :valid_type => "url", :required => "true"})
12
+ CF::Station.create({:line => l, :type => "work"}) do |s|
13
+ CF::RobotWorker.create({:station => s, :settings => {:url => ["{url}"], :max_retrieve => 5, :show_source_text => true}, :type => "term_extraction_robot"})
14
+ end
15
+ end
16
+ run = CF::Run.create(line, "term_extraction_run", [{"url"=> "http://www.sprout-technology.com"}])
17
+ output = run.final_output
18
+ output.first.final_output.first.keyword_relevance_of_url.should eql([99.7991, 95.6566, 83.2383, 79.39450000000001, 76.0281])
19
+ output.first.final_output.first.keywords_of_url.should eql(["Web App", "web application", "Web App Development", "Web App Management", "world-class web development"])
20
+ output.first.final_output.first.max_retrieve.should eql("5")
21
+ output.first.final_output.first.show_source_text.should eql("true")
22
+ line.stations.first.worker.class.should eql(CF::RobotWorker)
23
+ line.stations.first.worker.reward.should eql(8)
24
+ line.stations.first.worker.number.should eql(1)
25
+ line.stations.first.worker.settings.should eql({:url => ["{url}"], :max_retrieve => 5, :show_source_text => true})
26
+ line.stations.first.worker.type.should eql("TermExtractionRobot")
27
+ end
28
+ end
29
+
30
+ it "should create content_scraping_robot worker for first station in plain ruby way" do
31
+ # WebMock.allow_net_connect!
32
+ VCR.use_cassette "robot_worker/term_extraction_robot/plain-ruby/create-worker-single-station", :record => :new_episodes do
33
+ line = CF::Line.new("term_extraction_1","Digitization")
34
+ input_format = CF::InputFormat.new({:name => "url", :required => true, :valid_type => "url"})
35
+ line.input_formats input_format
36
+
37
+ station = CF::Station.new({:type => "work"})
38
+ line.stations station
39
+
40
+ worker = CF::RobotWorker.create({:settings => {:url => ["{url}"], :max_retrieve => 5, :show_source_text => true}, :type => "term_extraction_robot"})
41
+ line.stations.first.worker = worker
42
+
43
+ run = CF::Run.create(line, "term_extraction_run_1", [{"url"=> "http://www.sprout-technology.com"}])
44
+ output = run.final_output
45
+ output.first.final_output.first.keyword_relevance_of_url.should eql([99.7991, 95.6566, 83.2383, 79.39450000000001, 76.0281])
46
+ output.first.final_output.first.keywords_of_url.should eql(["Web App", "web application", "Web App Development", "Web App Management", "world-class web development"])
47
+ output.first.final_output.first.max_retrieve.should eql("5")
48
+ output.first.final_output.first.show_source_text.should eql("true")
49
+ line.stations.first.worker.class.should eql(CF::RobotWorker)
50
+ line.stations.first.worker.reward.should eql(8)
51
+ line.stations.first.worker.number.should eql(1)
52
+ line.stations.first.worker.settings.should eql({:url => ["{url}"], :max_retrieve => 5, :show_source_text => true})
53
+ line.stations.first.worker.type.should eql("TermExtractionRobot")
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,86 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ module CF
5
+ describe CF::RobotWorker do
6
+ context "create a text appending robot worker" do
7
+ it "should create text appending robot worker for first station in Block DSL way" do
8
+ # WebMock.allow_net_connect!
9
+ VCR.use_cassette "robot_worker/text_appending_robot/block/create-worker-single-station", :record => :new_episodes do
10
+ html = '<form><textarea name = "output[description][]"></textarea>
11
+ <textarea name = "output[description][]"></textarea>
12
+ <textarea name = "output[description][]"></textarea>
13
+ <textarea name = "output[description][]"></textarea>
14
+ <input type="submit" /></form>'
15
+
16
+ line = CF::Line.create("text_appending_robot", "Digitization") do
17
+ CF::InputFormat.new({:line => self,:name => "Company", :required => true, :valid_type => "general"})
18
+ CF::InputFormat.new({:line => self,:name => "Website", :required => true, :valid_type => "url"})
19
+ CF::Station.create({:line => self, :type => "work"}) do |s|
20
+ CF::HumanWorker.new({:station => s, :number => 1, :reward => 20})
21
+ CF::CustomTaskForm.create({:station => s, :title => "Descibe about Company", :instruction => "Describe", :raw_html => html})
22
+ end
23
+ CF::Station.create({:line => self, :type => "work"}) do |s1|
24
+ CF::RobotWorker.create({:station => s1, :type => "text_appending_robot", :settings => {:append => ["{description}"], :separator => "||"}})
25
+ end
26
+ end
27
+ run = CF::Run.create(line, "text_appending_robot_run", File.expand_path("../../fixtures/input_data/test.csv", __FILE__))
28
+ # debugger
29
+ output = run.final_output
30
+ station_1_output = run.output(:station => 1)
31
+ station_1_output['description'].should eql(["this is description", "about company", "the company works on", "Ruby on Rails"])
32
+ output.first.final_output.first.append_description.should eql("this is description||about company||the company works on||Ruby on Rails")
33
+ line.stations.last.worker.class.should eql(CF::RobotWorker)
34
+ line.stations.first.worker.reward.should eql(20)
35
+ line.stations.first.worker.number.should eql(1)
36
+ line.stations.last.worker.settings.should eql({:append => ["{description}"], :separator => "||"})
37
+ line.stations.last.worker.type.should eql("TextAppendingRobot")
38
+ end
39
+ end
40
+
41
+ it "should create content_scraping_robot worker for first station in a plain ruby way" do
42
+ # WebMock.allow_net_connect!
43
+ VCR.use_cassette "robot_worker/text_appending_robot/plain-ruby/create-worker-in-first-station", :record => :new_episodes do
44
+ html = '<form><textarea name = "output[description][]"></textarea>
45
+ <textarea name = "output[description][]"></textarea>
46
+ <textarea name = "output[description][]"></textarea>
47
+ <textarea name = "output[description][]"></textarea>
48
+ <input type="submit" /></form>'
49
+
50
+ line = CF::Line.new("text_appending_robot_1","Digitization")
51
+ input_format = CF::InputFormat.new({:name => "Company", :required => true, :valid_type => "general"})
52
+ input_format_1 = CF::InputFormat.new({:name => "Website", :required => true, :valid_type => "url"})
53
+ line.input_formats input_format
54
+ line.input_formats input_format_1
55
+
56
+ station = CF::Station.new({:type => "work"})
57
+ line.stations station
58
+
59
+ worker = CF::HumanWorker.new({:number => 1, :reward => 20})
60
+ line.stations.first.worker = worker
61
+
62
+ form = CF::CustomTaskForm.create({:title => "Descibe about Company", :instruction => "Describe", :raw_html => html})
63
+ line.stations.first.form = form
64
+
65
+ station = CF::Station.new({:type => "work"})
66
+ line.stations station
67
+
68
+ worker_1 = CF::RobotWorker.create({:type => "text_appending_robot", :settings => {:append => ["{description}"], :separator => "||"}})
69
+ line.stations.last.worker = worker_1
70
+
71
+ run = CF::Run.create(line, "text_appending_robot_run_1", File.expand_path("../../fixtures/input_data/test.csv", __FILE__))
72
+ # debugger
73
+ output = run.final_output
74
+ station_1_output = run.output(:station => 1)
75
+ station_1_output['description'].should eql(["this is description", "about company", "the company works on", "Ruby on Rails"])
76
+ output.first.final_output.first.append_description.should eql("this is description||about company||the company works on||Ruby on Rails")
77
+ line.stations.last.worker.class.should eql(CF::RobotWorker)
78
+ line.stations.first.worker.reward.should eql(20)
79
+ line.stations.first.worker.number.should eql(1)
80
+ line.stations.last.worker.settings.should eql({:append => ["{description}"], :separator => "||"})
81
+ line.stations.last.worker.type.should eql("TextAppendingRobot")
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
metadata ADDED
@@ -0,0 +1,472 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cloudfactory
3
+ version: !ruby/object:Gem::Version
4
+ hash: 5
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 13
10
+ version: 0.0.13
11
+ platform: ruby
12
+ authors:
13
+ - CloudFactory.com
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-08-04 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: i18n
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: activesupport
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ hash: 1
43
+ segments:
44
+ - 3
45
+ - 0
46
+ - 3
47
+ version: 3.0.3
48
+ type: :runtime
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: hashie
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ hash: 23
59
+ segments:
60
+ - 1
61
+ - 0
62
+ - 0
63
+ version: 1.0.0
64
+ type: :runtime
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ name: rest-client
68
+ prerelease: false
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ type: :runtime
79
+ version_requirements: *id004
80
+ - !ruby/object:Gem::Dependency
81
+ name: json
82
+ prerelease: false
83
+ requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 0
91
+ version: "0"
92
+ type: :runtime
93
+ version_requirements: *id005
94
+ - !ruby/object:Gem::Dependency
95
+ name: thor
96
+ prerelease: false
97
+ requirement: &id006 !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ hash: 43
103
+ segments:
104
+ - 0
105
+ - 14
106
+ - 6
107
+ version: 0.14.6
108
+ type: :runtime
109
+ version_requirements: *id006
110
+ - !ruby/object:Gem::Dependency
111
+ name: httparty
112
+ prerelease: false
113
+ requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ hash: 19
119
+ segments:
120
+ - 0
121
+ - 7
122
+ - 8
123
+ version: 0.7.8
124
+ type: :runtime
125
+ version_requirements: *id007
126
+ - !ruby/object:Gem::Dependency
127
+ name: terminal-table
128
+ prerelease: false
129
+ requirement: &id008 !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ~>
133
+ - !ruby/object:Gem::Version
134
+ hash: 3
135
+ segments:
136
+ - 1
137
+ - 4
138
+ - 2
139
+ version: 1.4.2
140
+ type: :runtime
141
+ version_requirements: *id008
142
+ - !ruby/object:Gem::Dependency
143
+ name: rails
144
+ prerelease: false
145
+ requirement: &id009 !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ~>
149
+ - !ruby/object:Gem::Version
150
+ hash: 1
151
+ segments:
152
+ - 3
153
+ - 0
154
+ - 3
155
+ version: 3.0.3
156
+ type: :development
157
+ version_requirements: *id009
158
+ - !ruby/object:Gem::Dependency
159
+ name: bundler
160
+ prerelease: false
161
+ requirement: &id010 !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ~>
165
+ - !ruby/object:Gem::Version
166
+ hash: 23
167
+ segments:
168
+ - 1
169
+ - 0
170
+ - 0
171
+ version: 1.0.0
172
+ type: :development
173
+ version_requirements: *id010
174
+ - !ruby/object:Gem::Dependency
175
+ name: generator_spec
176
+ prerelease: false
177
+ requirement: &id011 !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ~>
181
+ - !ruby/object:Gem::Version
182
+ hash: 57
183
+ segments:
184
+ - 0
185
+ - 8
186
+ - 3
187
+ version: 0.8.3
188
+ type: :development
189
+ version_requirements: *id011
190
+ - !ruby/object:Gem::Dependency
191
+ name: rspec-rails
192
+ prerelease: false
193
+ requirement: &id012 !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ hash: 3
199
+ segments:
200
+ - 0
201
+ version: "0"
202
+ type: :development
203
+ version_requirements: *id012
204
+ - !ruby/object:Gem::Dependency
205
+ name: cucumber
206
+ prerelease: false
207
+ requirement: &id013 !ruby/object:Gem::Requirement
208
+ none: false
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ hash: 3
213
+ segments:
214
+ - 0
215
+ version: "0"
216
+ type: :development
217
+ version_requirements: *id013
218
+ - !ruby/object:Gem::Dependency
219
+ name: rdoc
220
+ prerelease: false
221
+ requirement: &id014 !ruby/object:Gem::Requirement
222
+ none: false
223
+ requirements:
224
+ - - ~>
225
+ - !ruby/object:Gem::Version
226
+ hash: 21
227
+ segments:
228
+ - 3
229
+ - 5
230
+ - 3
231
+ version: 3.5.3
232
+ type: :development
233
+ version_requirements: *id014
234
+ - !ruby/object:Gem::Dependency
235
+ name: vcr
236
+ prerelease: false
237
+ requirement: &id015 !ruby/object:Gem::Requirement
238
+ none: false
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ hash: 3
243
+ segments:
244
+ - 0
245
+ version: "0"
246
+ type: :development
247
+ version_requirements: *id015
248
+ - !ruby/object:Gem::Dependency
249
+ name: rake
250
+ prerelease: false
251
+ requirement: &id016 !ruby/object:Gem::Requirement
252
+ none: false
253
+ requirements:
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ hash: 3
257
+ segments:
258
+ - 0
259
+ version: "0"
260
+ type: :development
261
+ version_requirements: *id016
262
+ - !ruby/object:Gem::Dependency
263
+ name: webmock
264
+ prerelease: false
265
+ requirement: &id017 !ruby/object:Gem::Requirement
266
+ none: false
267
+ requirements:
268
+ - - ">="
269
+ - !ruby/object:Gem::Version
270
+ hash: 3
271
+ segments:
272
+ - 0
273
+ version: "0"
274
+ type: :development
275
+ version_requirements: *id017
276
+ description: A Ruby wrapper and CLI for to interact with Cloudfactory.com REST API
277
+ email:
278
+ - info@cloudfactory.com
279
+ executables:
280
+ - cf
281
+ extensions: []
282
+
283
+ extra_rdoc_files: []
284
+
285
+ files:
286
+ - .gitignore
287
+ - .rspec
288
+ - Gemfile
289
+ - README.md
290
+ - Rakefile
291
+ - bin/cf
292
+ - cf.gemspec
293
+ - example/google_translate_app/Gemfile
294
+ - example/google_translate_app/config.ru
295
+ - example/google_translate_app/google_translate_input.csv
296
+ - example/google_translate_app/google_translator_app.rb
297
+ - example/google_translate_app/views/index.haml
298
+ - example/google_translate_app/views/layout.haml
299
+ - example/google_translate_app/views/run.haml
300
+ - example/google_translate_app/views/style.sass
301
+ - example/human_worker_app/Gemfile
302
+ - example/human_worker_app/Gemfile.lock
303
+ - example/human_worker_app/config.ru
304
+ - example/human_worker_app/human_worker_app.rb
305
+ - example/human_worker_app/human_worker_input.csv
306
+ - example/human_worker_app/public/app.js
307
+ - example/human_worker_app/temp.csv
308
+ - example/human_worker_app/views/index.haml
309
+ - example/human_worker_app/views/layout.haml
310
+ - example/human_worker_app/views/result.haml
311
+ - example/human_worker_app/views/run.haml
312
+ - example/human_worker_app/views/style.sass
313
+ - example/sample_yaml_files/concept_tagging_robot.yaml
314
+ - example/sample_yaml_files/content_scraping_robot.yaml
315
+ - example/sample_yaml_files/entity_extraction_robot.yaml
316
+ - example/sample_yaml_files/google_translate_robot.yaml
317
+ - example/sample_yaml_files/image_processing_robot.yaml
318
+ - example/sample_yaml_files/keyword_matching_and_text_extraction_robot.yaml
319
+ - example/sample_yaml_files/mailer_robot.yaml
320
+ - example/sample_yaml_files/media_converter_robot.yaml
321
+ - example/sample_yaml_files/media_splitting_robot.yaml
322
+ - example/sample_yaml_files/multiple_skill_badge.yaml
323
+ - example/sample_yaml_files/sentiment_robot.yaml
324
+ - example/sample_yaml_files/skill_badge.yaml
325
+ - example/sample_yaml_files/stat_badge.yaml
326
+ - example/sample_yaml_files/term_extraction_robot.yaml
327
+ - example/sample_yaml_files/tournament_station_and_form_fields.yaml
328
+ - features/form_generation.feature
329
+ - features/form_preview.feature
330
+ - features/line_creation.feature
331
+ - features/line_deletion.feature
332
+ - features/line_generation.feature
333
+ - features/run.feature
334
+ - features/support/cli_steps.rb
335
+ - features/support/env.rb
336
+ - features/target_url.feature
337
+ - fixtures/api_credentials_example.yml
338
+ - fixtures/cassette_library/.gitkeep
339
+ - fixtures/input_data/media_converter_robot.csv
340
+ - fixtures/input_data/test.csv
341
+ - lib/cf.rb
342
+ - lib/cf/account.rb
343
+ - lib/cf/cli.rb
344
+ - lib/cf/cli/config.rb
345
+ - lib/cf/cli/form.rb
346
+ - lib/cf/cli/line.rb
347
+ - lib/cf/cli/production.rb
348
+ - lib/cf/cli/templates/css_file.css.erb
349
+ - lib/cf/cli/templates/form_preview.html.erb
350
+ - lib/cf/cli/templates/html_file.html.erb
351
+ - lib/cf/cli/templates/js_file.js.erb
352
+ - lib/cf/cli/templates/line.tt
353
+ - lib/cf/cli/templates/sample-line/form.css
354
+ - lib/cf/cli/templates/sample-line/form.html
355
+ - lib/cf/cli/templates/sample-line/form.js
356
+ - lib/cf/cli/templates/sample-line/line.yml.erb
357
+ - lib/cf/cli/templates/sample-line/sample-line.csv
358
+ - lib/cf/client.rb
359
+ - lib/cf/custom_task_form.rb
360
+ - lib/cf/department.rb
361
+ - lib/cf/final_output.rb
362
+ - lib/cf/form_field.rb
363
+ - lib/cf/human_worker.rb
364
+ - lib/cf/input_format.rb
365
+ - lib/cf/line.rb
366
+ - lib/cf/robot_worker.rb
367
+ - lib/cf/run.rb
368
+ - lib/cf/station.rb
369
+ - lib/cf/task_form.rb
370
+ - lib/cf/version.rb
371
+ - lib/generators/cf/form/form_generator.rb
372
+ - lib/generators/cf/form/templates/cf_form.html.erb
373
+ - lib/generators/cf/install/install_generator.rb
374
+ - lib/generators/cf/install/templates/README
375
+ - lib/generators/cf/install/templates/cloud_factory.rb
376
+ - spec/account_spec.rb
377
+ - spec/badge_spec.rb
378
+ - spec/concept_tagging_robot_spec.rb
379
+ - spec/config_spec.rb
380
+ - spec/content_scraping_robot_spec.rb
381
+ - spec/custom_task_form_spec.rb
382
+ - spec/department_spec.rb
383
+ - spec/entity_extraction_robot_spec.rb
384
+ - spec/form_field_spec.rb
385
+ - spec/generators/form_generator_spec.rb
386
+ - spec/generators/install_generator_spec.rb
387
+ - spec/google_translate_robot_spec.rb
388
+ - spec/human_worker_spec.rb
389
+ - spec/image_processing_robot_spec.rb
390
+ - spec/input_format_spec.rb
391
+ - spec/keyword_matching_and_text_extraction_robot_spec.rb
392
+ - spec/line_spec.rb
393
+ - spec/mailer_robot_spec.rb
394
+ - spec/media_converter_robot_spec.rb
395
+ - spec/media_splitting_robot_spec.rb
396
+ - spec/run_spec.rb
397
+ - spec/sentiment_robot_spec.rb
398
+ - spec/spec_helper.rb
399
+ - spec/station_spec.rb
400
+ - spec/task_form_spec.rb
401
+ - spec/term_extraction_robot_spec.rb
402
+ - spec/text_appending_robot_spec.rb
403
+ homepage: http://cloudfactory.com
404
+ licenses: []
405
+
406
+ post_install_message: " \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81\n \n Sweet. You now have the 'cf' command installed. Test drive it with:\n > cf help\n\n 1. Sign up for your CloudFactory account and get your API key\n http://cloudfactory.com/users/sign_up\n Get API key from welcome email or http://cloudfactory.com/account#settings\n\n 2. Generate your first assembly line...\n > cf line generate <line-title>\n\n 3. Edit the generated line.yml to design your perfect assembly line\n See http://developers.cloudfactory.com/lines/yaml.html\n\n 4. Create your line in CloudFactory\n > cf line create\n\n 5. Do a test production run in the sandbox first...\n > cf production start TITLE -i=INPUT_DATA.CSV\n\n 6. Go live! Send your production run to real workers...\n > cf production start TITLE -i=INPUT_DATA.CSV --live\n \n ------------------------------------------------------------------------------\n \n Follow @thecloudfactory on Twitter for announcements, updates, and news.\n https://twitter.com/thecloudfactory\n\n Add your project or organization to the apps wiki!\n https://github.com/sprout/cloudfactory_ruby/wiki/Apps\n \n \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81 \xE2\x98\x81\n"
407
+ rdoc_options: []
408
+
409
+ require_paths:
410
+ - lib
411
+ required_ruby_version: !ruby/object:Gem::Requirement
412
+ none: false
413
+ requirements:
414
+ - - ">="
415
+ - !ruby/object:Gem::Version
416
+ hash: 3
417
+ segments:
418
+ - 0
419
+ version: "0"
420
+ required_rubygems_version: !ruby/object:Gem::Requirement
421
+ none: false
422
+ requirements:
423
+ - - ">="
424
+ - !ruby/object:Gem::Version
425
+ hash: 3
426
+ segments:
427
+ - 0
428
+ version: "0"
429
+ requirements: []
430
+
431
+ rubyforge_project: cloudfactory
432
+ rubygems_version: 1.8.6
433
+ signing_key:
434
+ specification_version: 3
435
+ summary: A Ruby wrapper and CLI for Cloudfactory.com
436
+ test_files:
437
+ - features/form_generation.feature
438
+ - features/form_preview.feature
439
+ - features/line_creation.feature
440
+ - features/line_deletion.feature
441
+ - features/line_generation.feature
442
+ - features/run.feature
443
+ - features/support/cli_steps.rb
444
+ - features/support/env.rb
445
+ - features/target_url.feature
446
+ - spec/account_spec.rb
447
+ - spec/badge_spec.rb
448
+ - spec/concept_tagging_robot_spec.rb
449
+ - spec/config_spec.rb
450
+ - spec/content_scraping_robot_spec.rb
451
+ - spec/custom_task_form_spec.rb
452
+ - spec/department_spec.rb
453
+ - spec/entity_extraction_robot_spec.rb
454
+ - spec/form_field_spec.rb
455
+ - spec/generators/form_generator_spec.rb
456
+ - spec/generators/install_generator_spec.rb
457
+ - spec/google_translate_robot_spec.rb
458
+ - spec/human_worker_spec.rb
459
+ - spec/image_processing_robot_spec.rb
460
+ - spec/input_format_spec.rb
461
+ - spec/keyword_matching_and_text_extraction_robot_spec.rb
462
+ - spec/line_spec.rb
463
+ - spec/mailer_robot_spec.rb
464
+ - spec/media_converter_robot_spec.rb
465
+ - spec/media_splitting_robot_spec.rb
466
+ - spec/run_spec.rb
467
+ - spec/sentiment_robot_spec.rb
468
+ - spec/spec_helper.rb
469
+ - spec/station_spec.rb
470
+ - spec/task_form_spec.rb
471
+ - spec/term_extraction_robot_spec.rb
472
+ - spec/text_appending_robot_spec.rb