cloudfactory 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 0.4.1 (2011-10-20)
2
+
3
+ * removed directory for custom forms from CLI
4
+ * find methods in Line and Run classes now returns nil if not found
5
+ * custom task form modified
6
+ * removed the requirement for css and js files while doing production run
7
+
1
8
  ## 0.4.0 (2011-10-1)
2
9
 
3
10
  * removed the hashie from the client response that was causing problem while debugging and the response was pretty messed up
@@ -9,8 +16,6 @@
9
16
 
10
17
  ## 0.3.0 (2011-09-21)
11
18
 
12
- * removed the clouds due to utf-8 chars issue on some system while installing the gem
13
-
14
19
  * removed the clouds due to utf-8 chars issue on some system while installing the gem
15
20
  * cf production list now has --live flag to list the live production runs
16
21
 
data/lib/cf/cli/line.rb CHANGED
@@ -14,10 +14,8 @@ module Cf # :nodoc: all
14
14
  arr.pop
15
15
  line_destination = arr.join("/")
16
16
  template("sample-line/line.yml.erb", yaml_destination)
17
- copy_file("sample-line/form.css", "#{line_destination}/station_2/form.css")
18
- copy_file("sample-line/form.html", "#{line_destination}/station_2/form.html")
19
- copy_file("sample-line/form.js", "#{line_destination}/station_2/form.js")
20
- copy_file("sample-line/sample-line.csv", "#{line_destination}/input/#{title.underscore.dasherize}.csv")
17
+ copy_file("sample-line/form.html", "#{line_destination}/station2.html")
18
+ copy_file("sample-line/sample-line.csv", "#{line_destination}/input/#{title.underscore.dasherize}.csv")
21
19
  FileUtils.mkdir("#{line_destination}/output")
22
20
  end
23
21
  end
@@ -31,7 +29,6 @@ module Cf # :nodoc: all
31
29
 
32
30
  desc "line generate LINE-TITLE", "generates a line template at <line-title>/line.yml"
33
31
  method_option :force, :type => :boolean, :default => false, :aliases => "-f", :desc => "force to overwrite the files if the line already exists, default is false"
34
- # method_option :with_custom_form, :type => :boolean, :default => false, :aliases => "-wcf", :desc => "generate the template with custom task form and the sample files, default is true"
35
32
 
36
33
  def generate(title=nil)
37
34
  if title.present?
@@ -72,8 +69,12 @@ module Cf # :nodoc: all
72
69
  end
73
70
 
74
71
  resp_line = CF::Line.find(line_title)
75
- line = Hashie::Mash.new(resp_line)
76
- if line.title == line_title
72
+ if resp_line.nil?
73
+ say("Line does not exist entitled #{line_title} !!!", :red) and exit(1)
74
+ else
75
+ line = Hashie::Mash.new(resp_line)
76
+ end
77
+ if line.title == line_title && !resp_line.nil?
77
78
  if options.force
78
79
  CF::Line.destroy(line_title, :forced => true)
79
80
  say("The line #{line_title} deleted forcefully!", :yellow)
@@ -289,12 +290,8 @@ module Cf # :nodoc: all
289
290
  instruction = station_file['station']['custom_task_form']['instruction']
290
291
 
291
292
  html_file = station_file['station']['custom_task_form']['html']
292
- html = File.read("#{line_source}/station_#{station_file['station']['station_index']}/#{html_file}")
293
- css_file = station_file['station']['custom_task_form']['css']
294
- css = File.read("#{line_source}/station_#{station_file['station']['station_index']}/#{css_file}") if File.exist?("#{line_source}/station_#{s_index+1}/#{css_file}")
295
- js_file = station_file['station']['custom_task_form']['js']
296
- js = File.read("#{line_source}/station_#{station_file['station']['station_index']}/#{js_file}") if File.exist?("#{line_source}/station_#{s_index+1}/#{js_file}")
297
- form = CF::CustomTaskForm.create({:station => s, :title => title, :instruction => instruction, :raw_html => html, :raw_css => css, :raw_javascript => js})
293
+ html = File.read("#{line_source}/station#{station_file['station']['station_index']}.html")
294
+ form = CF::CustomTaskForm.create({:station => s, :title => title, :instruction => instruction, :raw_html => html})
298
295
  say_status "form", "CustomTaskForm '#{form.title}'"
299
296
  display_error(line_title, "#{form.errors}") if form.errors.present?
300
297
  end
@@ -140,12 +140,12 @@ module Cf
140
140
  instruction = custom_task_form['instruction']
141
141
  errors << "Form Instruction is missing in Block station #{i+1}!" if instruction.nil?
142
142
 
143
- errors << "station_#{i+1} folder is missing! Create station_#{i+1} folder in #{Dir.pwd}" if !File.exist?("#{Dir.pwd}/station_#{i+1}")
144
-
145
- if File.exist?("#{Dir.pwd}/station_#{i+1}")
146
- station_source = "#{Dir.pwd}/station_#{i+1}"
147
- errors << "form.html is missing in folder #{Dir.pwd}/station_#{i+1} !" if !File.exist?("#{station_source}/form.html")
148
- end
143
+ errors << "station#{i+1} is missing in folder #{Dir.pwd}/station_#{i+1} !" if !File.exist?("station#{i+1}.html")
144
+ #
145
+ # if File.exist?("#{Dir.pwd}")
146
+ # station_source = "#{Dir.pwd}/station_#{i+1}"
147
+ # errors << "station#{i+1} is missing in folder #{Dir.pwd}/station_#{i+1} !" if !File.exist?("station#{i+1}.html")
148
+ # end
149
149
  end
150
150
  elsif task_form.class == Hash
151
151
  form_title = task_form['form_title']
@@ -24,18 +24,21 @@ module Cf # :nodoc: all
24
24
 
25
25
  if options[:line].present?
26
26
  line = CF::Line.find(options[:line])
27
- line = Hashie::Mash.new(line)
28
- if line.error.blank?
29
- line_title = options[:line]
27
+ if line.nil?
28
+ say("Line named #{options[:line]} does not exist !!!", :red) and exit(1)
30
29
  else
31
- say("#{line.error.message}", :red) and return
30
+ line = Hashie::Mash.new(line)
31
+ line_title = options[:line]
32
32
  end
33
33
  elsif File.exist?("#{yaml_source}")
34
34
  line_yaml_dump = YAML::load(File.read(yaml_source).strip)
35
35
  line_title = line_yaml_dump['title'].parameterize
36
36
  line = CF::Line.find(line_title)
37
- line = Hashie::Mash.new(line)
38
- say("#{line.error.message}", :red) and return if line.error.present?
37
+ if line.nil?
38
+ say("Line named #{options[:line]} does not exist !!!", :red) and exit(1)
39
+ else
40
+ line = Hashie::Mash.new(line)
41
+ end
39
42
  else
40
43
  say("Looks like you're not in the Line directory or did not provide the line title to use the line", :red) and return
41
44
  end
@@ -81,8 +81,6 @@ stations:
81
81
  form_title: Clink a link and paste in url
82
82
  instruction: Look through search results and find the best date
83
83
  html: form.html
84
- css: form.css
85
- js: form.js
86
84
 
87
85
  # Sample Station #3: ROBOT to email the person seeking a date with their recommended match!
88
86
  - station:
@@ -11,12 +11,6 @@ module CF
11
11
  # raw_html is an attribute to store the custom html contents
12
12
  attr_accessor :raw_html
13
13
 
14
- # raw_css is an attribute to store the custom css contents
15
- attr_accessor :raw_css
16
-
17
- # raw_javascript is an attribute to store the custom javascript contents
18
- attr_accessor :raw_javascript
19
-
20
14
  # station attribute is required for association with custom_from object
21
15
  attr_accessor :station
22
16
 
@@ -27,19 +21,15 @@ module CF
27
21
  # ===Usage custom_instruction.new(hash):
28
22
  #
29
23
  # html = 'html_content'
30
- # css = 'css_content'
31
- # javascript = 'javascript_content'
32
24
  #
33
- # instruction = CF::CustomTaskForm.new({:title => "Enter text from a business card image", :instruction => "Describe", :raw_html => html, :raw_css => css, :raw_javascript => javascript})
25
+ # instruction = CF::CustomTaskForm.new({:title => "Enter text from a business card image", :instruction => "Describe", :raw_html => html})
34
26
  def initialize(options={})
35
27
  @station = options[:station]
36
28
  @title = options[:title]
37
29
  @instruction = options[:instruction]
38
30
  @raw_html = options[:raw_html]
39
- @raw_css = options[:raw_css]
40
- @raw_javascript = options[:raw_javascript]
41
31
  if @station
42
- resp = self.class.post("/lines/#{CF.account_name}/#{@station.line_title.downcase}/stations/#{@station.index}/form.json", :form => {:title => @title, :instruction => @instruction, :_type => "CustomTaskForm", :raw_html => @raw_html, :raw_css => @raw_css, :raw_javascript => @raw_javascript})
32
+ resp = self.class.post("/lines/#{CF.account_name}/#{@station.line_title.downcase}/stations/#{@station.index}/form.json", :form => {:title => @title, :instruction => @instruction, :_type => "CustomTaskForm", :raw_html => @raw_html})
43
33
  resp.to_hash.each_pair do |k,v|
44
34
  self.send("#{k}=",v) if self.respond_to?(k)
45
35
  end
@@ -53,16 +43,14 @@ module CF
53
43
  # ===Usage custom_instruction.create(hash):
54
44
  #
55
45
  # html = 'html_content'
56
- # css = 'css_content'
57
- # javascript = 'javascript_content'
58
46
  #
59
- # instruction = CF::CustomTaskForm.create({:title => "Enter text from a business card image", :instruction => "Describe", :raw_html => html, :raw_css => css, :raw_javascript => javascript})
47
+ # instruction = CF::CustomTaskForm.create({:title => "Enter text from a business card image", :instruction => "Describe", :raw_html => html})
60
48
  def self.create(form)
61
49
  instruction = CustomTaskForm.new(form)
62
50
  end
63
51
 
64
52
  def to_s # :nodoc:
65
- "{:title => #{self.title}, :instruction => #{self.instruction}, :raw_html => #{self.raw_html}, :raw_css => #{self.raw_css}, :raw_javascript => #{self.raw_javascript}, :errors => #{self.errors}}"
53
+ "{:title => #{self.title}, :instruction => #{self.instruction}, :raw_html => #{self.raw_html}, :errors => #{self.errors}}"
66
54
  end
67
55
  end
68
56
  end
data/lib/cf/line.rb CHANGED
@@ -258,8 +258,12 @@ module CF
258
258
  resp = get("/lines/#{CF.account_name}/#{line.downcase}.json")
259
259
  end
260
260
  end
261
- @errors = resp['error']['message'] if resp['code'] != 200
262
- return resp
261
+ if resp['code'] != 200
262
+ @errors = resp['error']['message']
263
+ return nil
264
+ else
265
+ return resp
266
+ end
263
267
  end
264
268
 
265
269
  # ==Returns all the lines of an account
data/lib/cf/run.rb CHANGED
@@ -163,8 +163,10 @@ module CF
163
163
  resp['error'] = resp['error']['message']
164
164
  resp.merge!('errors' => "#{resp['error']}")
165
165
  resp.delete('error')
166
+ return nil
167
+ else
168
+ return resp
166
169
  end
167
- return resp
168
170
  end
169
171
 
170
172
  # ==Returns progress of the production run
data/lib/cf/station.rb CHANGED
@@ -262,9 +262,7 @@ module CF
262
262
  form = @form.class.new({})
263
263
  if type == "CustomTaskForm"
264
264
  @html = @form.raw_html
265
- @css = @form.raw_css
266
- @javascript = @form.raw_javascript
267
- @resp = CF::CustomTaskForm.post("/lines/#{CF.account_name}/#{self.line_title.downcase}/stations/#{self.index}/form.json", :form => {:title => @title, :instruction => @instruction, :_type => "CustomTaskForm", :raw_html => @html, :raw_css => @css, :raw_javascript => @javascript})
265
+ @resp = CF::CustomTaskForm.post("/lines/#{CF.account_name}/#{self.line_title.downcase}/stations/#{self.index}/form.json", :form => {:title => @title, :instruction => @instruction, :_type => "CustomTaskForm", :raw_html => @html})
268
266
  else
269
267
  @resp = CF::TaskForm.post("/lines/#{CF.account_name}/#{self.line_title.downcase}/stations/#{self.index}/form.json", :form => {:title => @title, :instruction => @instruction, :_type => type})
270
268
  end
data/lib/cf/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module CF # :nodoc: all
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -4,8 +4,8 @@ describe CF::CustomTaskForm do
4
4
  context "create a Custom Task Form" do
5
5
  it "in block DSL way" do
6
6
  WebMock.allow_net_connect!
7
- html = '<div id="form-content">
8
- <div id="instructions">
7
+ html = '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"></head><div id="form-content">
8
+ <body><form><div id="instructions">
9
9
  <ul>
10
10
  <li>Look at the business card properly and fill in asked data.</li>
11
11
  <li>Make sure you enter everything found on business card.</li>
@@ -18,60 +18,18 @@ describe CF::CustomTaskForm do
18
18
  </div>
19
19
  <div id = "field-panel">
20
20
  Name<br />
21
- <input class="input-field first_name" type="text" name="final_output[first_name]" />
22
- <input class="input-field middle_name" type="text" name="final_output[middle_name]" />
23
- <input class="input-field last_name" type="text" name="final_output[last_name]" /><br />
21
+ <input class="input-field first_name" type="text" name="output[first_name]" />
22
+ <input class="input-field middle_name" type="text" name="output[middle_name]" />
23
+ <input class="input-field last_name" type="text" name="output[last_name]" /><br />
24
24
 
25
25
  <br />Contact<br />
26
- <input class="input-field email" type="text" name="final_output[email]" placeholder="Email"/>
27
- <input class="input-field phone" type="text" name="final_output[phone]" placeholder="Phone"/>
28
- <input class="input-field mobile" type="text" name="final_output[mobile]" placeholder="Mobile"/><br />
26
+ <input class="input-field email" type="text" name="output[email]" placeholder="Email"/>
27
+ <input class="input-field phone" type="text" name="output[phone]" placeholder="Phone"/>
28
+ <input class="input-field mobile" type="text" name="output[mobile]" placeholder="Mobile"/><br />
29
29
 
30
30
  </div>
31
31
  </div>
32
- </div>'
33
-
34
- css = '<style>body {background:#fbfbfb;}
35
- #instructions{
36
- text-align:center;
37
- }
38
-
39
- #image-field-wrapper{
40
- float-left;
41
- min-width:1050px;
42
- overflow:hidden;
43
- }
44
-
45
- #field-panel{
46
- float:left;
47
- padding: 10px 10px 0 10px;
48
- min-width:512px;
49
- overflow:hidden;
50
- }
51
-
52
- .input-field{
53
- width:150px;
54
- margin:4px;
55
- }</style>'
56
-
57
- javascript = '<script src="http://code.jquery.com/jquery-latest.js"></script>
58
- <script type="text/javascript" src="http://www.bizcardarmy.com/javascripts/jquery.autocomplete-min.js"></script>
59
- <script type="text/javascript">
60
- $(document).ready(function(){
61
- autocomplete_fields = ["first_name", "middle_name", "last_name", "company", "job_title", "city", "state", "zip"];
62
-
63
- $.each(autocomplete_fields, function(index, value){
64
- var inputField = "input." + value;
65
- $(inputField).autocomplete({
66
- serviceUrl: "http://www.bizcardarmy.com/cards/return_data_for_autocompletion.json",
67
- maxHeight: 400,
68
- width: 300,
69
- zIndex: 9999,
70
- params: { field: value }
71
- });
72
- });
73
- });
74
- </script>'
32
+ </div></form></body></html>'
75
33
 
76
34
  title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
77
35
  sleep 1
@@ -80,21 +38,23 @@ describe CF::CustomTaskForm do
80
38
  CF::InputFormat.new({:line => self, :name => "Contact", :required => true, :valid_type => "url"})
81
39
  CF::Station.create({:line => self, :type => "work"}) do |s|
82
40
  CF::HumanWorker.new({:station => s, :number => 1, :reward => 20})
83
- CF::CustomTaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe", :raw_html => html, :raw_css => css, :raw_javascript => javascript})
41
+ CF::CustomTaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe", :raw_html => html})
84
42
  end
85
43
  end
86
44
  line.title.should eql(title)
87
45
  line.department_name.should eql("Digitization")
88
46
  line.stations.first.type.should eql("WorkStation")
89
- CGI.unescape_html(line.stations.first.form.raw_html).should eql(html)
90
- CGI.unescape_html(line.stations.first.form.raw_css).should eql(css)
91
- CGI.unescape_html(line.stations.first.form.raw_javascript).should eql(javascript)
47
+ CGI.unescape_html(line.stations.first.form.raw_html).should eql("<!DOCTYPE html>\n<html>\n<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"></head>\n<body>\n<p>\"-//W3C//DTD HTML 4.0 Transitional//EN\\\" \\\"http://www.w3.org/TR/REC-html40/loose.dtd\\\"&gt;\\n\\n</p>\n<meta http-equiv='\\\"Content-Type\\\"' content='\\\"text/html;' charset='UTF-8\\\"'>\n<div id=\"form-content\">\n <form>\n<div id=\"instructions\">\n <ul>\n<li>Look at the business card properly and fill in asked data.</li>\n <li>Make sure you enter everything found on business card.</li>\n <li>Work may be rejected if it is incomplete or mistakes are found.</li>\n </ul>\n</div>\n <div id=\"image-field-wrapper\">\n <div id=\"image-panel\">\n <img class=\"card-image\" src=\"%7B%7Bimage_url%7D%7D\">\n</div>\n <div id=\"field-panel\">\n Name<br><input class=\"input-field first_name\" type=\"text\" name=\"output[first_name]\"><input class=\"input-field middle_name\" type=\"text\" name=\"output[middle_name]\"><input class=\"input-field last_name\" type=\"text\" name=\"output[last_name]\"><br><br>Contact<br><input class=\"input-field email\" type=\"text\" name=\"output[email]\" placeholder=\"Email\"><input class=\"input-field phone\" type=\"text\" name=\"output[phone]\" placeholder=\"Phone\"><input class=\"input-field mobile\" type=\"text\" name=\"output[mobile]\" placeholder=\"Mobile\"><br>\n</div>\n </div>\n </form>\n</div>\n</body>\n</html>\n")
92
48
  end
93
49
 
94
50
  it "in plain ruby way" do
95
51
  WebMock.allow_net_connect!
96
- html = '<form><div id="form-content">
97
- <div id="instructions">
52
+ html = '<!DOCTYPE html>
53
+ <html>
54
+ <head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"></head>
55
+ <body>
56
+ <div id="form-content">
57
+ <form><div id="instructions">
98
58
  <ul>
99
59
  <li>Look at the business card properly and fill in asked data.</li>
100
60
  <li>Make sure you enter everything found on business card.</li>
@@ -118,49 +78,8 @@ describe CF::CustomTaskForm do
118
78
 
119
79
  </div>
120
80
  </div>
121
- </div></form>'
81
+ </div></form></body></html>'
122
82
 
123
- css = '<style>body {background:#fbfbfb;}
124
- #instructions{
125
- text-align:center;
126
- }
127
-
128
- #image-field-wrapper{
129
- float-left;
130
- min-width:1050px;
131
- overflow:hidden;
132
- }
133
-
134
- #field-panel{
135
- float:left;
136
- padding: 10px 10px 0 10px;
137
- min-width:512px;
138
- overflow:hidden;
139
- }
140
-
141
- .input-field{
142
- width:150px;
143
- margin:4px;
144
- }</style>'
145
-
146
- javascript = '<script src="http://code.jquery.com/jquery-latest.js"></script>
147
- <script type="text/javascript" src="http://www.bizcardarmy.com/javascripts/jquery.autocomplete-min.js"></script>
148
- <script type="text/javascript">
149
- $(document).ready(function(){
150
- autocomplete_fields = ["first_name", "middle_name", "last_name", "company", "job_title", "city", "state", "zip"];
151
-
152
- $.each(autocomplete_fields, function(index, value){
153
- var inputField = "input." + value;
154
- $(inputField).autocomplete({
155
- serviceUrl: "http://www.bizcardarmy.com/cards/return_data_for_autocompletion.json",
156
- maxHeight: 400,
157
- width: 300,
158
- zIndex: 9999,
159
- params: { field: value }
160
- });
161
- });
162
- });
163
- </script>'
164
83
  title = "line_title#{Time.new.strftime('%Y%b%d-%H%M%S')}".downcase
165
84
  sleep 1
166
85
  line = CF::Line.new(title, "Digitization")
@@ -176,14 +95,12 @@ describe CF::CustomTaskForm do
176
95
  worker = CF::HumanWorker.new({:number => 1, :reward => 20})
177
96
  line.stations.first.worker = worker
178
97
 
179
- form = CF::CustomTaskForm.new({:title => "Enter text from a business card image", :instruction => "Describe", :raw_html => html, :raw_css => css, :raw_javascript => javascript})
98
+ form = CF::CustomTaskForm.new({:title => "Enter text from a business card image", :instruction => "Describe", :raw_html => html})
180
99
  line.stations.first.form = form
181
100
  line.title.should eql(title)
182
101
  line.department_name.should eql("Digitization")
183
102
  line.stations.first.type.should eql("WorkStation")
184
- CGI.unescape_html(line.stations.first.form.raw_html).should eql(html)
185
- CGI.unescape_html(line.stations.first.form.raw_css).should eql(css)
186
- CGI.unescape_html(line.stations.first.form.raw_javascript).should eql(javascript)
103
+ CGI.unescape_html(line.stations.first.form.raw_html).should eql("<!DOCTYPE html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<meta http-equiv='\\\"Content-Type\\\"' content='\\\"text/html;' charset='UTF-8\\\"'>\n</head>\n<body>\n<div id=\"form-content\">\n <form>\n<div id=\"instructions\">\n <ul>\n<li>Look at the business card properly and fill in asked data.</li>\n <li>Make sure you enter everything found on business card.</li>\n <li>Work may be rejected if it is incomplete or mistakes are found.</li>\n </ul>\n</div>\n <div id=\"image-field-wrapper\">\n <div id=\"image-panel\">\n <img class=\"card-image\" src=\"%7B%7Bimage_url%7D%7D\">\n</div>\n <div id=\"field-panel\">\n Name<br><input class=\"input-field first_name\" type=\"text\" name=\"output[first_name]\"><input class=\"input-field middle_name\" type=\"text\" name=\"output[middle_name]\"><input class=\"input-field last_name\" type=\"text\" name=\"output[last_name]\"><br><br>Contact<br><input class=\"input-field email\" type=\"text\" name=\"output[email]\" placeholder=\"Email\"><input class=\"input-field phone\" type=\"text\" name=\"output[phone]\" placeholder=\"Phone\"><input class=\"input-field mobile\" type=\"text\" name=\"output[mobile]\" placeholder=\"Mobile\"><br>\n</div>\n </div>\n </form>\n</div>\n</body>\n</html>\n")
187
104
  end
188
105
  end
189
106
 
@@ -14,8 +14,8 @@ module CF
14
14
  CF::RobotWorker.create({:station => s, :type => "image_processing_robot", :settings => {:image => ["{{url}}"], :sharpen => {:radius => "10"}}})
15
15
  end
16
16
  end
17
- run = CF::Run.create(line, "image_processing_robot_run", [{"url"=> "http://wwwdelivery.superstock.com/WI/223/1527/PreviewComp/SuperStock_1527R-020214.jpg"}])
18
- sleep 10
17
+ run = CF::Run.create(line, "run-#{title}", [{"url"=> "http://wwwdelivery.superstock.com/WI/223/1527/PreviewComp/SuperStock_1527R-020214.jpg"}])
18
+ sleep 20
19
19
  output = run.final_output
20
20
  converted_url = output.first['processed_image_of_url']
21
21
  File.exist?("/Users/manish/apps/cloudfactory/public#{converted_url}").should eql(true)
@@ -40,8 +40,8 @@ module CF
40
40
  worker = CF::RobotWorker.create({:type => "image_processing_robot", :settings => {:image => ["{{url}}"], :sharpen => {:radius => "10"}}})
41
41
  line.stations.first.worker = worker
42
42
 
43
- run = CF::Run.create(line, "image_processing_robot_run_1", [{"url"=> "http://wwwdelivery.superstock.com/WI/223/1527/PreviewComp/SuperStock_1527R-020214.jpg"}])
44
- sleep 10
43
+ run = CF::Run.create(line, "run-#{title}", [{"url"=> "http://wwwdelivery.superstock.com/WI/223/1527/PreviewComp/SuperStock_1527R-020214.jpg"}])
44
+ sleep 20
45
45
  output = run.final_output
46
46
  converted_url = output.first['processed_image_of_url']
47
47
  File.exist?("/Users/manish/apps/cloudfactory/public#{converted_url}").should eql(true)
data/spec/line_spec.rb CHANGED
@@ -344,8 +344,7 @@ describe CF::Line do
344
344
  forced_delete = CF::Line.destroy(title, :forced => true)
345
345
 
346
346
  search_line = CF::Line.find(title)
347
- search_line['code'].should eql(404)
348
- search_line['error']['message'].should eql("Line not found for title: #{title} under your account")
347
+ search_line.should eql(nil)
349
348
  end
350
349
  end
351
350
 
@@ -490,8 +489,7 @@ describe CF::Line do
490
489
  config.api_key = API_CONFIG['api_key']
491
490
  end
492
491
  got_line = CF::Line.find("hero/#{title}")
493
- got_line['code'].should eql(404)
494
- got_line['error']['message'].should eql("Line with title: #{title} under account hero is not public")
492
+ got_line.should eql(nil)
495
493
  end
496
494
  end
497
495
 
data/spec/run_spec.rb CHANGED
@@ -167,7 +167,7 @@ module CF
167
167
  end
168
168
  end
169
169
  run = CF::Run.create(line, "run-#{title}", [{"url"=> "http://www.sprout-technology.com"}])
170
- sleep 10
170
+ sleep 20
171
171
  output = run.final_output
172
172
  output.first['keyword_relevance_of_url'].should eql([96.7417, 57.3763, 56.8721, 54.6844, 17.7066])
173
173
  output.first['keywords_of_url'].should eql(["tech startup thing", "nights", "Nepal", "Canada", "U.S."])
@@ -284,8 +284,7 @@ module CF
284
284
  end
285
285
  run = CF::Run.create(line, "run-#{title}", [{"url"=> "http://media-robot.s3.amazonaws.com/media_robot/media/upload/8/ten.mov"}])
286
286
  found_run = CF::Run.find("unused_title")
287
- found_run['code'].should eql(404)
288
- found_run['errors'].should eql("Run document not found using selector: {:title=>\"unused_title\"}")
287
+ found_run.should eql(nil)
289
288
  end
290
289
  end
291
290
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudfactory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-11 00:00:00.000000000Z
12
+ date: 2011-10-20 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: i18n
16
- requirement: &2155542960 !ruby/object:Gem::Requirement
16
+ requirement: &2154693260 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2155542960
24
+ version_requirements: *2154693260
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &2155542040 !ruby/object:Gem::Requirement
27
+ requirement: &2154691240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '3.0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2155542040
35
+ version_requirements: *2154691240
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: hashie
38
- requirement: &2155541520 !ruby/object:Gem::Requirement
38
+ requirement: &2154690520 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '1.0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2155541520
46
+ version_requirements: *2154690520
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rest-client
49
- requirement: &2155540940 !ruby/object:Gem::Requirement
49
+ requirement: &2154689840 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2155540940
57
+ version_requirements: *2154689840
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: json
60
- requirement: &2155540260 !ruby/object:Gem::Requirement
60
+ requirement: &2154688400 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *2155540260
68
+ version_requirements: *2154688400
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: thor
71
- requirement: &2155526460 !ruby/object:Gem::Requirement
71
+ requirement: &2154683820 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0.14'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *2155526460
79
+ version_requirements: *2154683820
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: highline
82
- requirement: &2155525840 !ruby/object:Gem::Requirement
82
+ requirement: &2154682740 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *2155525840
90
+ version_requirements: *2154682740
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: httparty
93
- requirement: &2155525000 !ruby/object:Gem::Requirement
93
+ requirement: &2154680840 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0.7'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *2155525000
101
+ version_requirements: *2154680840
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: terminal-table
104
- requirement: &2155524260 !ruby/object:Gem::Requirement
104
+ requirement: &2154677800 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '1.4'
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *2155524260
112
+ version_requirements: *2154677800
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: millisami-csv-hash
115
- requirement: &2155523840 !ruby/object:Gem::Requirement
115
+ requirement: &2154672600 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *2155523840
123
+ version_requirements: *2154672600
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: awesome_print
126
- requirement: &2155523360 !ruby/object:Gem::Requirement
126
+ requirement: &2154670200 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :runtime
133
133
  prerelease: false
134
- version_requirements: *2155523360
134
+ version_requirements: *2154670200
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: ruby-debug19
137
- requirement: &2155522920 !ruby/object:Gem::Requirement
137
+ requirement: &2154667660 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *2155522920
145
+ version_requirements: *2154667660
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: aruba
148
- requirement: &2155522340 !ruby/object:Gem::Requirement
148
+ requirement: &2154666820 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: '0'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *2155522340
156
+ version_requirements: *2154666820
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: rails
159
- requirement: &2155521780 !ruby/object:Gem::Requirement
159
+ requirement: &2154662400 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ~>
@@ -164,10 +164,10 @@ dependencies:
164
164
  version: 3.0.3
165
165
  type: :development
166
166
  prerelease: false
167
- version_requirements: *2155521780
167
+ version_requirements: *2154662400
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: bundler
170
- requirement: &2155521220 !ruby/object:Gem::Requirement
170
+ requirement: &2154640560 !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
173
  - - ~>
@@ -175,10 +175,10 @@ dependencies:
175
175
  version: 1.0.0
176
176
  type: :development
177
177
  prerelease: false
178
- version_requirements: *2155521220
178
+ version_requirements: *2154640560
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: generator_spec
181
- requirement: &2155520580 !ruby/object:Gem::Requirement
181
+ requirement: &2154639100 !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements:
184
184
  - - ~>
@@ -186,10 +186,10 @@ dependencies:
186
186
  version: 0.8.3
187
187
  type: :development
188
188
  prerelease: false
189
- version_requirements: *2155520580
189
+ version_requirements: *2154639100
190
190
  - !ruby/object:Gem::Dependency
191
191
  name: rspec-rails
192
- requirement: &2155520060 !ruby/object:Gem::Requirement
192
+ requirement: &2154637140 !ruby/object:Gem::Requirement
193
193
  none: false
194
194
  requirements:
195
195
  - - ! '>='
@@ -197,10 +197,10 @@ dependencies:
197
197
  version: '0'
198
198
  type: :development
199
199
  prerelease: false
200
- version_requirements: *2155520060
200
+ version_requirements: *2154637140
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: cucumber
203
- requirement: &2155519320 !ruby/object:Gem::Requirement
203
+ requirement: &2154635380 !ruby/object:Gem::Requirement
204
204
  none: false
205
205
  requirements:
206
206
  - - ! '>='
@@ -208,10 +208,10 @@ dependencies:
208
208
  version: '0'
209
209
  type: :development
210
210
  prerelease: false
211
- version_requirements: *2155519320
211
+ version_requirements: *2154635380
212
212
  - !ruby/object:Gem::Dependency
213
213
  name: rdoc
214
- requirement: &2155518780 !ruby/object:Gem::Requirement
214
+ requirement: &2154633760 !ruby/object:Gem::Requirement
215
215
  none: false
216
216
  requirements:
217
217
  - - ~>
@@ -219,10 +219,10 @@ dependencies:
219
219
  version: 3.5.3
220
220
  type: :development
221
221
  prerelease: false
222
- version_requirements: *2155518780
222
+ version_requirements: *2154633760
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: vcr
225
- requirement: &2155518340 !ruby/object:Gem::Requirement
225
+ requirement: &2154632980 !ruby/object:Gem::Requirement
226
226
  none: false
227
227
  requirements:
228
228
  - - ! '>='
@@ -230,10 +230,10 @@ dependencies:
230
230
  version: '0'
231
231
  type: :development
232
232
  prerelease: false
233
- version_requirements: *2155518340
233
+ version_requirements: *2154632980
234
234
  - !ruby/object:Gem::Dependency
235
235
  name: rake
236
- requirement: &2155517640 !ruby/object:Gem::Requirement
236
+ requirement: &2154632160 !ruby/object:Gem::Requirement
237
237
  none: false
238
238
  requirements:
239
239
  - - ! '>='
@@ -241,10 +241,10 @@ dependencies:
241
241
  version: '0'
242
242
  type: :development
243
243
  prerelease: false
244
- version_requirements: *2155517640
244
+ version_requirements: *2154632160
245
245
  - !ruby/object:Gem::Dependency
246
246
  name: webmock
247
- requirement: &2155516900 !ruby/object:Gem::Requirement
247
+ requirement: &2154631420 !ruby/object:Gem::Requirement
248
248
  none: false
249
249
  requirements:
250
250
  - - ! '>='
@@ -252,10 +252,10 @@ dependencies:
252
252
  version: '0'
253
253
  type: :development
254
254
  prerelease: false
255
- version_requirements: *2155516900
255
+ version_requirements: *2154631420
256
256
  - !ruby/object:Gem::Dependency
257
257
  name: timecop
258
- requirement: &2155515980 !ruby/object:Gem::Requirement
258
+ requirement: &2154630500 !ruby/object:Gem::Requirement
259
259
  none: false
260
260
  requirements:
261
261
  - - ! '>='
@@ -263,7 +263,7 @@ dependencies:
263
263
  version: '0'
264
264
  type: :development
265
265
  prerelease: false
266
- version_requirements: *2155515980
266
+ version_requirements: *2154630500
267
267
  description: A Ruby wrapper and CLI for to interact with Cloudfactory.com REST API
268
268
  email:
269
269
  - info@cloudfactory.com
@@ -313,9 +313,7 @@ files:
313
313
  - lib/cf/cli/templates/form_preview.html.erb
314
314
  - lib/cf/cli/templates/html_file.html.erb
315
315
  - lib/cf/cli/templates/js_file.js.erb
316
- - lib/cf/cli/templates/sample-line/form.css
317
316
  - lib/cf/cli/templates/sample-line/form.html
318
- - lib/cf/cli/templates/sample-line/form.js
319
317
  - lib/cf/cli/templates/sample-line/line.yml.erb
320
318
  - lib/cf/cli/templates/sample-line/sample-line.csv
321
319
  - lib/cf/client.rb
@@ -1,50 +0,0 @@
1
- body {
2
- margin: 0 auto;
3
- padding: 0;
4
- color: #000;
5
- width: 960px;
6
- background: #302D2F;
7
- font-family: georgia;
8
- }
9
- #wrapper {
10
- background: #FFF;
11
- position: relative;
12
- padding:0 10px;
13
- }
14
- #header {
15
- border-bottom: solid 1px grey;
16
- padding: 10px;
17
- height: 50px;
18
- text-align: center;
19
- font-size: 36px;
20
- font-weight: bold;
21
- color: #666666;
22
- }
23
-
24
- ul{
25
- list-style: decimal;
26
- }
27
- input[type=text] {
28
- width:660px;
29
- margin:4px;
30
- font-size: 12px;
31
- height:40px;
32
- }
33
- input[type=submit]{
34
- width: 160px;
35
- height: 40px;
36
- border: solid 1px black;
37
- }
38
-
39
- #gender, #age, #location {
40
- font-weight: bold;
41
- color: #A9BED4;
42
- }
43
- a{
44
- color: #007EB9;
45
- }
46
- #footer{
47
- border-top: solid 1px grey;
48
- padding: 10px;
49
- text-align: center;
50
- }
@@ -1,12 +0,0 @@
1
- $(document).ready(function() {
2
- var url = $("#instructions a").attr('href');
3
- var splitted_url = url.split("/");
4
- var gender = splitted_url[splitted_url.length - 3];
5
- var new_gender = gender.toLowerCase() == "male" ? "female" : "male";
6
- splitted_url[splitted_url.length - 3] = new_gender;
7
- var age = splitted_url[splitted_url.length - 1];
8
- age = decodeURI(age).split(" ")[0];
9
- splitted_url[splitted_url.length - 1] = age;
10
- var new_url = splitted_url.join("/");
11
- $("#instructions a").attr('href',new_url);
12
- });