cloudfactory 0.1.13 → 0.1.14
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/cf/cli/line.rb +16 -2
- data/lib/cf/cli/line_yaml_validator.rb +2 -2
- data/lib/cf/cli/production.rb +14 -9
- data/lib/cf/cli/templates/sample-line/line.yml.erb +3 -2
- data/lib/cf/client.rb +5 -1
- data/lib/cf/line.rb +50 -5
- data/lib/cf/version.rb +1 -1
- data/spec/line_spec.rb +54 -0
- metadata +46 -46
data/lib/cf/cli/line.rb
CHANGED
@@ -51,6 +51,7 @@ module Cf # :nodoc: all
|
|
51
51
|
|
52
52
|
desc "line delete", "delete the current line at http://cloudfactory.com"
|
53
53
|
method_option :line, :type => :string, :aliases => "-l", :desc => "specify the line-title to delete"
|
54
|
+
method_option :force, :type => :boolean, :aliases => "-f", :default => false, :desc => "force delete the line"
|
54
55
|
def delete
|
55
56
|
if options['line'].blank?
|
56
57
|
line_source = Dir.pwd
|
@@ -70,8 +71,21 @@ module Cf # :nodoc: all
|
|
70
71
|
|
71
72
|
line = CF::Line.find(line_title)
|
72
73
|
if line.errors.blank?
|
73
|
-
|
74
|
-
|
74
|
+
if options.force
|
75
|
+
CF::Line.destroy(line_title, :forced => true)
|
76
|
+
say("The line #{line_title} deleted forcefully!", :yellow)
|
77
|
+
else
|
78
|
+
# say("!! Warning !!\nThe following are existing production runs based on this line.\n", :cyan)
|
79
|
+
# Cf::Production.new.list
|
80
|
+
say("!! Warning !!\nThere are existing production runs based on this line.\n", :yellow)
|
81
|
+
delete_forcefully = agree("Do you still want to delete this line? [y/n] ")
|
82
|
+
if delete_forcefully
|
83
|
+
CF::Line.destroy(line_title, :forced => true)
|
84
|
+
say("The line #{line_title} deleted successfully!", :yellow)
|
85
|
+
else
|
86
|
+
say("Line deletion aborted!", :cyan)
|
87
|
+
end
|
88
|
+
end
|
75
89
|
else
|
76
90
|
say("The line #{line_title} doesn't exist!", :yellow)
|
77
91
|
end
|
@@ -48,7 +48,7 @@ module Cf
|
|
48
48
|
errors << "Jury worker setting is missing in Block station #{i+1}!"
|
49
49
|
elsif !jury_worker.nil?
|
50
50
|
reward = jury_worker['reward']
|
51
|
-
errors << "Reward for worker is missing in
|
51
|
+
errors << "Reward for Jury worker is missing in block of Tournament Station #{i+1}!" if reward.nil?
|
52
52
|
errors << "Reward Must be greater than 0 in Block station #{i+1}!" if !reward.nil? && reward < 1
|
53
53
|
end
|
54
54
|
end
|
@@ -151,7 +151,7 @@ module Cf
|
|
151
151
|
required = form_field['required']
|
152
152
|
field_type = form_field['field_type']
|
153
153
|
if !field_type.nil?
|
154
|
-
unless %w(short_answer long_answer radio_button check_box select_box).include?(field_type)
|
154
|
+
unless %w(short_answer long_answer radio_button check_box select_box date email number).include?(field_type)
|
155
155
|
errors << "Field Type of Form Field is invalid in Block #{index+1} of station Block #{i+1}!"
|
156
156
|
end
|
157
157
|
if field_type == "radio_button" || field_type == "select_box"
|
data/lib/cf/cli/production.rb
CHANGED
@@ -26,9 +26,9 @@ module Cf # :nodoc: all
|
|
26
26
|
line_title = line_yaml_dump['title'].parameterize
|
27
27
|
|
28
28
|
if title.nil?
|
29
|
-
run_title = "#{line_title}-#{Time.new.strftime('%y%b%e-%H%M%S')}"
|
29
|
+
run_title = "#{line_title}-#{Time.new.strftime('%y%b%e-%H%M%S')}".downcase
|
30
30
|
else
|
31
|
-
run_title = "#{title.parameterize}-#{Time.new.strftime('%y%b%e-%H%M%S')}"
|
31
|
+
run_title = "#{title.parameterize}-#{Time.new.strftime('%y%b%e-%H%M%S')}".downcase
|
32
32
|
end
|
33
33
|
|
34
34
|
if !options[:input_data].nil?
|
@@ -47,7 +47,7 @@ module Cf # :nodoc: all
|
|
47
47
|
chosen_file = nil
|
48
48
|
choose do |menu|
|
49
49
|
menu.header = "Input data files"
|
50
|
-
menu.prompt = "Please choose which file to be used as input data"
|
50
|
+
menu.prompt = "Please choose which file to be used as input data: "
|
51
51
|
|
52
52
|
input_files.each do |item|
|
53
53
|
menu.choice(extract_name(item)) do
|
@@ -73,11 +73,10 @@ module Cf # :nodoc: all
|
|
73
73
|
line = CF::Line.info(line_title)
|
74
74
|
input_data_file = "#{Dir.pwd}/#{input_data}"
|
75
75
|
if line.error.blank?
|
76
|
-
say "Creating a production run with title #{run_title}
|
76
|
+
say "Creating a production run with title #{run_title}", :green
|
77
77
|
run = CF::Run.create(line, run_title, input_data_file)
|
78
78
|
if run.errors.blank?
|
79
|
-
|
80
|
-
say("View your run at http://#{CF.account_name}.#{CF.api_url.split("/")[-2]}/runs/#{CF.account_name}/#{run.title}\n", :yellow)
|
79
|
+
display_success_run(run)
|
81
80
|
else
|
82
81
|
say("Error: #{run.errors}", :red)
|
83
82
|
end
|
@@ -86,17 +85,23 @@ module Cf # :nodoc: all
|
|
86
85
|
say("Creating the line: #{line_title}", :green)
|
87
86
|
Cf::Line.new.create
|
88
87
|
# Now create a production run with the title run_title
|
89
|
-
say "Creating a production run with title #{run_title}
|
88
|
+
say "Creating a production run with title #{run_title}", :green
|
90
89
|
run = CF::Run.create(CF::Line.info(line_title), run_title, input_data_file)
|
91
90
|
if run.errors.blank?
|
92
|
-
|
93
|
-
say("View your run at http://#{CF.account_name}.#{CF.api_url.split("/")[-2]}/runs/#{CF.account_name}/#{run.title}\n", :yellow)
|
91
|
+
display_success_run(run)
|
94
92
|
else
|
95
93
|
say("Error: #{run.errors}", :red)
|
96
94
|
end
|
97
95
|
end
|
98
96
|
end
|
99
97
|
|
98
|
+
no_tasks do
|
99
|
+
def display_success_run(run)
|
100
|
+
say("Run created successfully.", :green)
|
101
|
+
say("View your production at:\n\thttp://#{CF.account_name}.#{CF.api_url.split("/")[-2]}/runs/#{CF.account_name}/#{run.title}/workerpool_preview\n", :green)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
100
105
|
desc "production list", "list the production runs"
|
101
106
|
method_option :line, :type => :string, :aliases => "-l", :desc => "the title of the line"
|
102
107
|
def list
|
@@ -10,6 +10,7 @@
|
|
10
10
|
# api_key: fill_in_your_api_key #(optional)
|
11
11
|
|
12
12
|
title: <%= title.underscore.dasherize %>
|
13
|
+
public: false
|
13
14
|
description: A shiny new assembly line ready for you to customize. Right now it is finding people dates (uncomment and try for fun) but you should just replace everything below accordingly for your line.
|
14
15
|
|
15
16
|
# Department to build line in (See http://cloudfactory.com/developers/resources/department.html)
|
@@ -43,14 +44,14 @@ stations:
|
|
43
44
|
# instruction: Click the photo link and then enter the person's gender and approximate age in the form below
|
44
45
|
# form_fields:
|
45
46
|
# - label: Gender
|
46
|
-
# field_type: radio_button # short_answer, long_answer, radio_button, check_box, select_box
|
47
|
+
# field_type: radio_button # short_answer, long_answer, radio_button, check_box, select_box, date, email, number
|
47
48
|
# required: true
|
48
49
|
# option_values:
|
49
50
|
# - male
|
50
51
|
# - female
|
51
52
|
# - not sure
|
52
53
|
# - label: Age
|
53
|
-
# field_type: select_box # short_answer, long_answer, radio_button, check_box, select_box
|
54
|
+
# field_type: select_box # short_answer, long_answer, radio_button, check_box, select_box, date, email, number
|
54
55
|
# required: true
|
55
56
|
# option_values:
|
56
57
|
# - 13 to 18
|
data/lib/cf/client.rb
CHANGED
@@ -25,7 +25,11 @@ module CF # :nodoc: all
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def delete(*args)
|
28
|
-
|
28
|
+
if args.last == {:forced=>true}
|
29
|
+
handle_response RestClient.delete("#{CF.api_url}#{CF.api_version}#{args.first}?api_key=#{CF.api_key}&&forced=true", :accept => 'json'){ |response, request, result| response }
|
30
|
+
else
|
31
|
+
handle_response RestClient.delete("#{CF.api_url}#{CF.api_version}#{args.first}?api_key=#{CF.api_key}", :accept => 'json'){ |response, request, result| response }
|
32
|
+
end
|
29
33
|
end
|
30
34
|
|
31
35
|
def handle_response(response)
|
data/lib/cf/line.rb
CHANGED
@@ -37,7 +37,7 @@ module CF
|
|
37
37
|
@stations =[]
|
38
38
|
@title = title
|
39
39
|
@department_name = department_name
|
40
|
-
@public = options[:public].present? ? options[:public] :
|
40
|
+
@public = options[:public].present? ? options[:public] : true
|
41
41
|
@description = options[:description]
|
42
42
|
resp = self.class.post("/lines/#{CF.account_name}.json", {:line => {:title => title, :department_name => department_name, :public => @public, :description => @description}})
|
43
43
|
if resp.code != 200
|
@@ -226,16 +226,61 @@ module CF
|
|
226
226
|
# ===Usage Example:
|
227
227
|
# line = CF::Line.new("Digitize Card", "Survey")
|
228
228
|
# line.destroy
|
229
|
-
def destroy
|
230
|
-
|
229
|
+
def destroy(options={})
|
230
|
+
force = options[:force]
|
231
|
+
if !force.nil?
|
232
|
+
resp = self.class.delete("/lines/#{CF.account_name}/#{self.title.downcase}.json", :forced => force)
|
233
|
+
else
|
234
|
+
resp = self.class.delete("/lines/#{CF.account_name}/#{self.title.downcase}.json")
|
235
|
+
end
|
236
|
+
if resp.code != 200
|
237
|
+
self.errors = resp.errors.message
|
238
|
+
end
|
239
|
+
return resp
|
231
240
|
end
|
232
241
|
|
233
242
|
# ==Deletes a line by passing it's title
|
234
243
|
# ===Usage Example:
|
235
244
|
# line = CF::Line.new("line_title", "Survey")
|
236
245
|
# CF::Line.destroy("line_title")
|
237
|
-
def self.destroy(title)
|
238
|
-
|
246
|
+
def self.destroy(title, options={})
|
247
|
+
forced = options[:forced]
|
248
|
+
if forced
|
249
|
+
resp = delete("/lines/#{CF.account_name}/#{title.downcase}.json", {:forced => forced})
|
250
|
+
else
|
251
|
+
resp = delete("/lines/#{CF.account_name}/#{title.downcase}.json")
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
def self.details(line_title)
|
256
|
+
resp = get("/lines/#{CF.account_name}/#{line_title.downcase}/inspect.json")
|
257
|
+
send_resp = resp.to_hash
|
258
|
+
@line_input_formats = []
|
259
|
+
resp.input_formats.each do |l_i|
|
260
|
+
@line_input_formats << l_i.to_hash
|
261
|
+
end
|
262
|
+
send_resp.delete("input_formats")
|
263
|
+
send_resp.merge!("input_formats" => @line_input_formats)
|
264
|
+
@stations = []
|
265
|
+
resp.stations.each do |s|
|
266
|
+
@station_input_formats = []
|
267
|
+
s.input_formats.each do |i|
|
268
|
+
@station_input_formats << i.to_hash
|
269
|
+
end
|
270
|
+
@station_form_fields = []
|
271
|
+
s.form_fields.each do |f|
|
272
|
+
@station_form_fields << f.to_hash
|
273
|
+
end
|
274
|
+
temp_station = s.to_hash
|
275
|
+
temp_station.delete("form_fields")
|
276
|
+
temp_station.merge!("form_fields" => @station_form_fields)
|
277
|
+
temp_station.delete("input_formats")
|
278
|
+
temp_station.merge!("input_formats" => @station_input_formats)
|
279
|
+
@stations << temp_station
|
280
|
+
end
|
281
|
+
send_resp.delete("stations")
|
282
|
+
send_resp.merge!("stations" => @stations)
|
283
|
+
return send_resp
|
239
284
|
end
|
240
285
|
end
|
241
286
|
end
|
data/lib/cf/version.rb
CHANGED
data/spec/line_spec.rb
CHANGED
@@ -319,4 +319,58 @@ describe CF::Line do
|
|
319
319
|
end
|
320
320
|
end
|
321
321
|
end
|
322
|
+
|
323
|
+
context "delete line whose production run is already created" do
|
324
|
+
it "it should throw error and must be deleted if forced true is passed" do
|
325
|
+
VCR.use_cassette "lines/block/delete-line-of-active-run", :record => :new_episodes do
|
326
|
+
# WebMock.allow_net_connect!
|
327
|
+
line = CF::Line.create("delete_line_of_run","Digitization") do |l|
|
328
|
+
CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
|
329
|
+
CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
|
330
|
+
CF::Station.create({:line => l, :type => "work"}) do |s|
|
331
|
+
CF::HumanWorker.new({:station => s, :number => 1, :reward => 20})
|
332
|
+
CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
|
333
|
+
CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
|
334
|
+
CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
|
335
|
+
CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
|
336
|
+
end
|
337
|
+
end
|
338
|
+
end
|
339
|
+
|
340
|
+
run = CF::Run.create(line, "delete_line_of_run_run", File.expand_path("../../fixtures/input_data/test.csv", __FILE__))
|
341
|
+
|
342
|
+
delete = CF::Line.destroy("delete_line_of_run")
|
343
|
+
delete.error.message.should eql("cannot delete the line, Active runs exists. use forced delete if you still want to delete the line.")
|
344
|
+
delete.code.should_not eql(200)
|
345
|
+
|
346
|
+
forced_delete = CF::Line.destroy("delete_line_of_run", :forced => true)
|
347
|
+
|
348
|
+
search_line = CF::Line.find("delete_line_of_run")
|
349
|
+
search_line.code.should eql(404)
|
350
|
+
search_line.error.message.should eql("Line document not found using selector: {:public=>true, :title=>\"delete_line_of_run\"}")
|
351
|
+
end
|
352
|
+
end
|
353
|
+
end
|
354
|
+
|
355
|
+
context "returns all the associated elements of line" do
|
356
|
+
it "it give details of line" do
|
357
|
+
VCR.use_cassette "lines/block/line-details", :record => :new_episodes do
|
358
|
+
# WebMock.allow_net_connect!
|
359
|
+
line = CF::Line.create("line_details","Digitization") do |l|
|
360
|
+
CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
|
361
|
+
CF::Station.create({:line => l, :type => "work"}) do |s|
|
362
|
+
CF::HumanWorker.new({:station => s, :number => 1, :reward => 20})
|
363
|
+
CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
|
364
|
+
CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
|
365
|
+
end
|
366
|
+
end
|
367
|
+
end
|
368
|
+
line_details = CF::Line.details("line_details")
|
369
|
+
line_input_format_id = line_details['input_formats'].first['id']
|
370
|
+
from_field_id = line_details['stations'].first['form_fields'].first['id']
|
371
|
+
station_input_format_id = line_details['stations'].first['input_formats'].first['id']
|
372
|
+
line_details.should eql({"title"=>"line_details", "description"=>"", "public"=>false, "department"=>{"name"=>"Digitization"}, "app"=>{"name"=>"default", "email"=>"manish.das@sprout-technology.com", "notification_url"=>"http://www.cloudfactory.com"}, "code"=>200, "input_formats"=>[{"id"=>"#{line_input_format_id}", "name"=>"Company", "required"=>true, "valid_type"=>"general", "source_station_index"=>0}], "stations"=>[{"index"=>1, "type"=>"WorkStation", "worker"=>{"number"=>1, "reward"=>20, "type"=>"HumanWorker", "stat_badge"=>{"approval_rating"=>80, "abandonment_rate"=>30, "country"=>nil}}, "form"=>{"title"=>"Enter text from a business card image", "instruction"=>"Describe"}, "form_fields"=>[{"id"=>"#{from_field_id}", "label"=>"First Name", "field_type"=>"short_answer", "hint"=>nil, "required"=>true, "unique"=>nil, "hide_label"=>nil, "value"=>nil}], "input_formats"=>[{"id"=>"#{station_input_format_id}", "name"=>"Company", "required"=>true, "valid_type"=>"general", "source_station_index"=>0}]}]})
|
373
|
+
end
|
374
|
+
end
|
375
|
+
end
|
322
376
|
end
|
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.1.
|
4
|
+
version: 0.1.14
|
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-08-
|
12
|
+
date: 2011-08-18 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|
16
|
-
requirement: &
|
16
|
+
requirement: &2162151040 !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: *
|
24
|
+
version_requirements: *2162151040
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activesupport
|
27
|
-
requirement: &
|
27
|
+
requirement: &2162150540 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 3.0.3
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2162150540
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: hashie
|
38
|
-
requirement: &
|
38
|
+
requirement: &2162150040 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2162150040
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rest-client
|
49
|
-
requirement: &
|
49
|
+
requirement: &2162149660 !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: *
|
57
|
+
version_requirements: *2162149660
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: json
|
60
|
-
requirement: &
|
60
|
+
requirement: &2162165580 !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: *
|
68
|
+
version_requirements: *2162165580
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: thor
|
71
|
-
requirement: &
|
71
|
+
requirement: &2162165080 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 0.14.6
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2162165080
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: highline
|
82
|
-
requirement: &
|
82
|
+
requirement: &2162164660 !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: *
|
90
|
+
version_requirements: *2162164660
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: httparty
|
93
|
-
requirement: &
|
93
|
+
requirement: &2162164120 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ~>
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: 0.7.8
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2162164120
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: terminal-table
|
104
|
-
requirement: &
|
104
|
+
requirement: &2162163620 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ~>
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: 1.4.2
|
110
110
|
type: :runtime
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *2162163620
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: millisami-csv-hash
|
115
|
-
requirement: &
|
115
|
+
requirement: &2162163240 !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: *
|
123
|
+
version_requirements: *2162163240
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: ruby-debug19
|
126
|
-
requirement: &
|
126
|
+
requirement: &2162162780 !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: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *2162162780
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: aruba
|
137
|
-
requirement: &
|
137
|
+
requirement: &2162162360 !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: *
|
145
|
+
version_requirements: *2162162360
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: rails
|
148
|
-
requirement: &
|
148
|
+
requirement: &2162161860 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ~>
|
@@ -153,10 +153,10 @@ dependencies:
|
|
153
153
|
version: 3.0.3
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *2162161860
|
157
157
|
- !ruby/object:Gem::Dependency
|
158
158
|
name: bundler
|
159
|
-
requirement: &
|
159
|
+
requirement: &2162161360 !ruby/object:Gem::Requirement
|
160
160
|
none: false
|
161
161
|
requirements:
|
162
162
|
- - ~>
|
@@ -164,10 +164,10 @@ dependencies:
|
|
164
164
|
version: 1.0.0
|
165
165
|
type: :development
|
166
166
|
prerelease: false
|
167
|
-
version_requirements: *
|
167
|
+
version_requirements: *2162161360
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: generator_spec
|
170
|
-
requirement: &
|
170
|
+
requirement: &2162160900 !ruby/object:Gem::Requirement
|
171
171
|
none: false
|
172
172
|
requirements:
|
173
173
|
- - ~>
|
@@ -175,10 +175,10 @@ dependencies:
|
|
175
175
|
version: 0.8.3
|
176
176
|
type: :development
|
177
177
|
prerelease: false
|
178
|
-
version_requirements: *
|
178
|
+
version_requirements: *2162160900
|
179
179
|
- !ruby/object:Gem::Dependency
|
180
180
|
name: rspec-rails
|
181
|
-
requirement: &
|
181
|
+
requirement: &2162160520 !ruby/object:Gem::Requirement
|
182
182
|
none: false
|
183
183
|
requirements:
|
184
184
|
- - ! '>='
|
@@ -186,10 +186,10 @@ dependencies:
|
|
186
186
|
version: '0'
|
187
187
|
type: :development
|
188
188
|
prerelease: false
|
189
|
-
version_requirements: *
|
189
|
+
version_requirements: *2162160520
|
190
190
|
- !ruby/object:Gem::Dependency
|
191
191
|
name: cucumber
|
192
|
-
requirement: &
|
192
|
+
requirement: &2162160060 !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: *
|
200
|
+
version_requirements: *2162160060
|
201
201
|
- !ruby/object:Gem::Dependency
|
202
202
|
name: rdoc
|
203
|
-
requirement: &
|
203
|
+
requirement: &2162159560 !ruby/object:Gem::Requirement
|
204
204
|
none: false
|
205
205
|
requirements:
|
206
206
|
- - ~>
|
@@ -208,10 +208,10 @@ dependencies:
|
|
208
208
|
version: 3.5.3
|
209
209
|
type: :development
|
210
210
|
prerelease: false
|
211
|
-
version_requirements: *
|
211
|
+
version_requirements: *2162159560
|
212
212
|
- !ruby/object:Gem::Dependency
|
213
213
|
name: vcr
|
214
|
-
requirement: &
|
214
|
+
requirement: &2162159140 !ruby/object:Gem::Requirement
|
215
215
|
none: false
|
216
216
|
requirements:
|
217
217
|
- - ! '>='
|
@@ -219,10 +219,10 @@ dependencies:
|
|
219
219
|
version: '0'
|
220
220
|
type: :development
|
221
221
|
prerelease: false
|
222
|
-
version_requirements: *
|
222
|
+
version_requirements: *2162159140
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: rake
|
225
|
-
requirement: &
|
225
|
+
requirement: &2162158680 !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: *
|
233
|
+
version_requirements: *2162158680
|
234
234
|
- !ruby/object:Gem::Dependency
|
235
235
|
name: webmock
|
236
|
-
requirement: &
|
236
|
+
requirement: &2162158260 !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: *
|
244
|
+
version_requirements: *2162158260
|
245
245
|
- !ruby/object:Gem::Dependency
|
246
246
|
name: timecop
|
247
|
-
requirement: &
|
247
|
+
requirement: &2162157840 !ruby/object:Gem::Requirement
|
248
248
|
none: false
|
249
249
|
requirements:
|
250
250
|
- - ! '>='
|
@@ -252,7 +252,7 @@ dependencies:
|
|
252
252
|
version: '0'
|
253
253
|
type: :development
|
254
254
|
prerelease: false
|
255
|
-
version_requirements: *
|
255
|
+
version_requirements: *2162157840
|
256
256
|
description: A Ruby wrapper and CLI for to interact with Cloudfactory.com REST API
|
257
257
|
email:
|
258
258
|
- info@cloudfactory.com
|