cloudfactory 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +6 -0
- data/lib/cf/cli/line.rb +15 -8
- data/lib/cf/cli/production.rb +29 -18
- data/lib/cf/form_field.rb +2 -1
- data/lib/cf/input_format.rb +9 -5
- data/lib/cf/line.rb +9 -5
- data/lib/cf/run.rb +9 -0
- data/lib/cf/version.rb +1 -1
- data/spec/form_field_spec.rb +31 -0
- data/spec/input_format_spec.rb +12 -0
- data/spec/run_spec.rb +33 -0
- metadata +48 -48
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 0.2.3 (2011-08-30)
|
2
|
+
|
3
|
+
* Add a new command in CLI, cf production delete --run-title=your-run-title to delete the production run
|
4
|
+
* The same is added in Gem
|
5
|
+
* If no valid_type is sent in input_formats, it will be created. Before, it was the mandatory.
|
6
|
+
|
1
7
|
## 0.2.2 (2011-08-29)
|
2
8
|
|
3
9
|
* Add a new command in CLI, cf whoami to show the current logged in credentials
|
data/lib/cf/cli/line.rb
CHANGED
@@ -174,15 +174,22 @@ module Cf # :nodoc: all
|
|
174
174
|
# Creation of InputFormat from yaml file
|
175
175
|
input_formats = line_dump['input_formats']
|
176
176
|
input_formats.each_with_index do |input_format, index|
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
177
|
+
if input_format['valid_type']
|
178
|
+
@attrs = {
|
179
|
+
:name => input_format['name'],
|
180
|
+
:required => input_format['required'],
|
181
|
+
:valid_type => input_format['valid_type']
|
182
|
+
}
|
183
|
+
elsif input_format['valid_type'].nil?
|
184
|
+
@attrs = {
|
185
|
+
:name => input_format['name'],
|
186
|
+
:required => input_format['required'],
|
187
|
+
:valid_type => input_format['valid_type']
|
188
|
+
}
|
189
|
+
end
|
190
|
+
input_format_for_line = CF::InputFormat.new(@attrs)
|
184
191
|
input_format = line.input_formats input_format_for_line
|
185
|
-
say_status "input", "#{attrs[:name]}"
|
192
|
+
say_status "input", "#{@attrs[:name]}"
|
186
193
|
display_error(line_title, "#{line.input_formats[index].errors}") if line.input_formats[index].errors.present?
|
187
194
|
end
|
188
195
|
|
data/lib/cf/cli/production.rb
CHANGED
@@ -3,13 +3,13 @@ require 'thor/group'
|
|
3
3
|
module Cf # :nodoc: all
|
4
4
|
class Production < Thor # :nodoc: all
|
5
5
|
include Cf::Config
|
6
|
-
|
6
|
+
|
7
7
|
no_tasks do
|
8
8
|
def extract_name(file_path)
|
9
9
|
Pathname.new(file_path).basename.to_s
|
10
10
|
end
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
desc "production start <run-title>", "creates a production run with input data file at input/<run-title>.csv"
|
14
14
|
method_option :input_data, :type => :string, :aliases => "-i", :desc => "the name of the input data file"
|
15
15
|
method_option :live, :type => :boolean, :default => false, :desc => "specifies sandbox or live mode"
|
@@ -21,7 +21,7 @@ module Cf # :nodoc: all
|
|
21
21
|
set_target_uri(options[:live])
|
22
22
|
set_api_key
|
23
23
|
CF.account_name = CF::Account.info.name
|
24
|
-
|
24
|
+
|
25
25
|
if options[:line].present?
|
26
26
|
line = CF::Line.find(options[:line])
|
27
27
|
line = Hashie::Mash.new(line)
|
@@ -51,7 +51,7 @@ module Cf # :nodoc: all
|
|
51
51
|
end
|
52
52
|
|
53
53
|
input_data = options[:input_data].presence
|
54
|
-
|
54
|
+
|
55
55
|
if input_data =~ /^\// #checking absolute input data path
|
56
56
|
input_data_file = input_data
|
57
57
|
else
|
@@ -87,11 +87,11 @@ module Cf # :nodoc: all
|
|
87
87
|
input_data_file = "#{Dir.pwd}/#{input_data}"
|
88
88
|
end
|
89
89
|
end
|
90
|
-
|
90
|
+
|
91
91
|
unless File.exist?(input_data_file)
|
92
92
|
say("The input data file named #{input_data} is missing", :red) and return
|
93
93
|
end
|
94
|
-
|
94
|
+
|
95
95
|
say "Creating a production run with title #{run_title}", :green
|
96
96
|
run = CF::Run.create(line_title, run_title, input_data_file)
|
97
97
|
if run.errors.blank?
|
@@ -107,7 +107,7 @@ module Cf # :nodoc: all
|
|
107
107
|
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)
|
108
108
|
end
|
109
109
|
end
|
110
|
-
|
110
|
+
|
111
111
|
desc "production list", "list the production runs"
|
112
112
|
method_option :line, :type => :string, :aliases => "-l", :desc => "the title of the line, if the line title is not given, it will show all the production runs under your account"
|
113
113
|
method_option :page, :type => :numeric, :aliases => "-p", :desc => "page number"
|
@@ -127,7 +127,7 @@ module Cf # :nodoc: all
|
|
127
127
|
param.merge!({:page => "all"})
|
128
128
|
current_page = 1
|
129
129
|
end
|
130
|
-
|
130
|
+
|
131
131
|
if page = options['page'].presence
|
132
132
|
param.merge!({:page => page})
|
133
133
|
current_page = page
|
@@ -146,15 +146,15 @@ module Cf # :nodoc: all
|
|
146
146
|
end
|
147
147
|
|
148
148
|
resp_runs = CF::Run.all(param)
|
149
|
-
|
149
|
+
|
150
150
|
if resp_runs.has_key?('error')
|
151
151
|
say("#{resp_runs['error']}", :red) and exit(1)
|
152
152
|
end
|
153
|
-
|
153
|
+
|
154
154
|
if resp_runs.has_key?("runs") && resp_runs['runs'].blank?
|
155
155
|
say("\nRun list is empty.\n", :yellow) and return
|
156
156
|
end
|
157
|
-
|
157
|
+
|
158
158
|
if resp_runs['total_pages']
|
159
159
|
say("\nShowing page #{current_page} of #{resp_runs['total_pages']} (Total runs: #{resp_runs['total_runs']})")
|
160
160
|
end
|
@@ -174,7 +174,7 @@ module Cf # :nodoc: all
|
|
174
174
|
say("No production run for line #{line_title}", :yellow)
|
175
175
|
end
|
176
176
|
end
|
177
|
-
|
177
|
+
|
178
178
|
desc "production resume", "resume a paused production run"
|
179
179
|
method_option :run_title, :type => :string, :required => true, :aliases => "-r", :desc => "the title of the run to resume"
|
180
180
|
def resume
|
@@ -191,18 +191,17 @@ module Cf # :nodoc: all
|
|
191
191
|
say("Run with title \"#{result.title}\" is resumed!", :green)
|
192
192
|
# end
|
193
193
|
end
|
194
|
-
|
194
|
+
|
195
195
|
desc "production add_units", "add units to already existing production run"
|
196
196
|
method_option :run_title, :type => :string, :required => true, :aliases => "-t", :desc => "the title of the run to resume"
|
197
197
|
method_option :input_data, :type => :string, :required => true, :aliases => "-i", :desc => "the path of the input data file"
|
198
|
-
|
199
198
|
def add_units
|
200
199
|
set_target_uri(false)
|
201
200
|
set_api_key
|
202
201
|
CF.account_name = CF::Account.info.name
|
203
202
|
run_title = options[:run_title].parameterize
|
204
203
|
input_data = options[:input_data].presence
|
205
|
-
|
204
|
+
|
206
205
|
if input_data =~ /^\// #checking absolute input data path
|
207
206
|
input_data_file = input_data
|
208
207
|
else
|
@@ -215,10 +214,22 @@ module Cf # :nodoc: all
|
|
215
214
|
if units['error'].present?
|
216
215
|
say("Error: #{units['error']['message']}", :red) and exit(1)
|
217
216
|
end
|
218
|
-
|
219
|
-
# if result.status == "resumed"
|
220
217
|
say("\"#{units['successfull']}\"!", :green)
|
221
|
-
|
218
|
+
end
|
219
|
+
|
220
|
+
desc "production delete", "Deletes created Production Run"
|
221
|
+
method_option :run_title, :type => :string, :required => true, :aliases => "-t", :desc => "the title of the run to resume"
|
222
|
+
def delete
|
223
|
+
set_target_uri(false)
|
224
|
+
set_api_key
|
225
|
+
CF.account_name = CF::Account.info.name
|
226
|
+
run_title = options[:run_title].parameterize
|
227
|
+
|
228
|
+
deleted_run = CF::Run.destroy(run_title)
|
229
|
+
if deleted_run.error.present?
|
230
|
+
say("Error: #{deleted_run.error.message}", :red) and exit(1)
|
231
|
+
end
|
232
|
+
say("Run Deleted Successfully entitled: \"#{deleted_run.title}\"!", :green)
|
222
233
|
end
|
223
234
|
end
|
224
235
|
end
|
data/lib/cf/form_field.rb
CHANGED
@@ -7,7 +7,7 @@ module CF
|
|
7
7
|
attr_accessor :label
|
8
8
|
|
9
9
|
# field_type for "form" object, e.g. :field_type => "SA"
|
10
|
-
attr_accessor :field_type
|
10
|
+
attr_accessor :field_type, :valid_type
|
11
11
|
|
12
12
|
# required boolean either true or false, e.g. :required => "true" & if false then you don't need to mention
|
13
13
|
attr_accessor :required
|
@@ -37,6 +37,7 @@ module CF
|
|
37
37
|
@form = options[:form]
|
38
38
|
@label = options[:label]
|
39
39
|
@field_type = options[:field_type]
|
40
|
+
@valid_type = options[:valid_type]
|
40
41
|
@required = options[:required]
|
41
42
|
|
42
43
|
if !@form.nil?
|
data/lib/cf/input_format.rb
CHANGED
@@ -38,15 +38,19 @@ module CF
|
|
38
38
|
@line = options[:line]
|
39
39
|
@name = options[:name]
|
40
40
|
@required = options[:required]
|
41
|
-
@valid_type = options[:valid_type]
|
41
|
+
@valid_type = options[:valid_type].nil? ? nil : options[:valid_type]
|
42
42
|
if !@station.nil? or !@line.nil?
|
43
43
|
line_title = @station.nil? ? @line.title : @station.line_title
|
44
|
-
|
45
|
-
|
44
|
+
if @valid_type
|
45
|
+
@resp = self.class.post("/lines/#{CF.account_name}/#{@line.title.downcase}/input_formats.json", :input_format => {:name => @name, :required => @required, :valid_type => @valid_type})
|
46
|
+
else
|
47
|
+
@resp = self.class.post("/lines/#{CF.account_name}/#{@line.title.downcase}/input_formats.json", :input_format => {:name => @name, :required => @required})
|
48
|
+
end
|
49
|
+
@resp.to_hash.each_pair do |k,v|
|
46
50
|
self.send("#{k}=",v) if self.respond_to?(k)
|
47
51
|
end
|
48
|
-
if resp.code != 200
|
49
|
-
self.errors = resp.error.message
|
52
|
+
if @resp.code != 200
|
53
|
+
self.errors = @resp.error.message
|
50
54
|
end
|
51
55
|
@line_title = line_title
|
52
56
|
if !@station.nil? && @station.except.nil? && @station.extra.nil?
|
data/lib/cf/line.rb
CHANGED
@@ -169,14 +169,18 @@ module CF
|
|
169
169
|
if input_formats_value
|
170
170
|
name = input_formats_value.name
|
171
171
|
required = input_formats_value.required
|
172
|
-
valid_type = input_formats_value.valid_type
|
173
|
-
|
172
|
+
valid_type = input_formats_value.valid_type.nil? ? nil : input_formats_value.valid_type
|
173
|
+
if valid_type
|
174
|
+
@resp = CF::InputFormat.post("/lines/#{CF.account_name}/#{self.title.downcase}/input_formats.json", :input_format => {:name => name, :required => required, :valid_type => valid_type})
|
175
|
+
elsif valid_type.nil?
|
176
|
+
@resp = CF::InputFormat.post("/lines/#{CF.account_name}/#{self.title.downcase}/input_formats.json", :input_format => {:name => name, :required => required})
|
177
|
+
end
|
174
178
|
input_format = CF::InputFormat.new()
|
175
|
-
resp.each_pair do |k,v|
|
179
|
+
@resp.each_pair do |k,v|
|
176
180
|
input_format.send("#{k}=",v) if input_format.respond_to?(k)
|
177
181
|
end
|
178
|
-
if resp.code != 200
|
179
|
-
input_format.errors = resp.error.message
|
182
|
+
if @resp.code != 200
|
183
|
+
input_format.errors = @resp.error.message
|
180
184
|
end
|
181
185
|
@input_formats << input_format
|
182
186
|
else
|
data/lib/cf/run.rb
CHANGED
@@ -265,5 +265,14 @@ module CF
|
|
265
265
|
@errors = resp.error.message if resp.code != 200
|
266
266
|
return resp
|
267
267
|
end
|
268
|
+
|
269
|
+
# ==Deletes the production run
|
270
|
+
# ===Usage Example:
|
271
|
+
# delete_run = CF::Run.destroy("run_title")
|
272
|
+
def self.destroy(run_title)
|
273
|
+
resp = delete("/runs/#{CF.account_name}/#{run_title}.json")
|
274
|
+
@errors = resp.error.message if resp.code != 200
|
275
|
+
return resp
|
276
|
+
end
|
268
277
|
end
|
269
278
|
end
|
data/lib/cf/version.rb
CHANGED
data/spec/form_field_spec.rb
CHANGED
@@ -85,6 +85,37 @@ describe CF::FormField do
|
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
|
+
it "in block DSL way without valid_type and some with valid_type" do
|
89
|
+
# WebMock.allow_net_connect!
|
90
|
+
VCR.use_cassette "form-fields/block/create-valid_type", :record => :new_episodes do
|
91
|
+
line = CF::Line.create("form_fields_valid_type", "Digitization") do
|
92
|
+
CF::InputFormat.new({:line => self, :name => "image_url", :required => true, :valid_type => "url"})
|
93
|
+
CF::Station.create({:line => self, :type => "work"}) do |station|
|
94
|
+
CF::HumanWorker.new({:station => station, :number => 1, :reward => 20})
|
95
|
+
CF::TaskForm.create({:station => station, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
|
96
|
+
CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
|
97
|
+
CF::FormField.new({:form => i, :label => "email", :field_type => "short_answer", :valid_type => "email", :required => "true"})
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
line.title.should eq("form_fields_valid_type")
|
102
|
+
line.department_name.should eq("Digitization")
|
103
|
+
line.input_formats.first.name.should eql("image_url")
|
104
|
+
line.stations.first.type.should eq("WorkStation")
|
105
|
+
line.stations.first.worker.number.should eq(1)
|
106
|
+
line.stations.first.form.instruction.should eq("Describe")
|
107
|
+
line.stations.first.form.form_fields[0].label.should eq("First Name")
|
108
|
+
line.stations.first.form.form_fields[0].field_type.should eq("short_answer")
|
109
|
+
line.stations.first.form.form_fields[0].required.should eq(true)
|
110
|
+
line.stations.first.form.form_fields[0].form_field_params.should eql({:label => "First Name", :field_type => "short_answer", :required => "true"})
|
111
|
+
line.stations.first.form.form_fields[1].label.should eq("email")
|
112
|
+
line.stations.first.form.form_fields[1].field_type.should eq("short_answer")
|
113
|
+
line.stations.first.form.form_fields[1].required.should eq(true)
|
114
|
+
line.stations.first.form.form_fields[1].valid_type.should eq("email")
|
115
|
+
line.stations.first.form.form_fields[1].form_field_params.should eql({:label => "email", :field_type => "short_answer", :valid_type => "email", :required => "true"})
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
88
119
|
it "in block DSL way with invalid form_field data" do
|
89
120
|
# WebMock.allow_net_connect!
|
90
121
|
VCR.use_cassette "form-fields/block/create-without-label", :record => :new_episodes do
|
data/spec/input_format_spec.rb
CHANGED
@@ -50,6 +50,18 @@ describe CF::InputFormat do
|
|
50
50
|
line.input_formats[1].name.should eq("image")
|
51
51
|
end
|
52
52
|
end
|
53
|
+
|
54
|
+
it "in block DSL way within line without valid_type" do
|
55
|
+
# WebMock.allow_net_connect!
|
56
|
+
VCR.use_cassette "input_formats/block/create-input-headers-of-line-1", :record => :new_episodes do
|
57
|
+
line = CF::Line.create("input_format_without_valid_type","Digitization") do |l|
|
58
|
+
CF::InputFormat.new({:line => l, :name => "image_url", :required => true, :valid_type => "url"})
|
59
|
+
CF::InputFormat.new({:line => l, :name => "image", :required => true})
|
60
|
+
end
|
61
|
+
line.input_formats[0].name.should eq("image_url")
|
62
|
+
line.input_formats[1].name.should eq("image")
|
63
|
+
end
|
64
|
+
end
|
53
65
|
|
54
66
|
it "in block DSL way within station" do
|
55
67
|
# WebMock.allow_net_connect!
|
data/spec/run_spec.rb
CHANGED
@@ -549,5 +549,38 @@ module CF
|
|
549
549
|
end
|
550
550
|
end
|
551
551
|
end
|
552
|
+
|
553
|
+
context "Delete Run" do
|
554
|
+
it "should call destroy method of run to delete a created run" do
|
555
|
+
VCR.use_cassette "run/block/delete_run", :record => :new_episodes do
|
556
|
+
# WebMock.allow_net_connect!
|
557
|
+
line = CF::Line.create("delete_run","Digitization") do |l|
|
558
|
+
CF::InputFormat.new({:line => l, :name => "Company", :required => true, :valid_type => "general"})
|
559
|
+
CF::InputFormat.new({:line => l, :name => "Website", :required => true, :valid_type => "url"})
|
560
|
+
CF::Station.create({:line => l, :type => "work"}) do |s|
|
561
|
+
CF::HumanWorker.new({:station => s, :number => 1, :reward => 20})
|
562
|
+
CF::TaskForm.create({:station => s, :title => "Enter text from a business card image", :instruction => "Describe"}) do |i|
|
563
|
+
CF::FormField.new({:form => i, :label => "First Name", :field_type => "short_answer", :required => "true"})
|
564
|
+
CF::FormField.new({:form => i, :label => "Middle Name", :field_type => "short_answer"})
|
565
|
+
CF::FormField.new({:form => i, :label => "Last Name", :field_type => "short_answer", :required => "true"})
|
566
|
+
end
|
567
|
+
end
|
568
|
+
end
|
569
|
+
run = CF::Run.create(line, "delete_run_run", [{"Company"=>"Apple,Inc","Website"=>"Apple.com"}])
|
570
|
+
deleted_resp = CF::Run.destroy("delete_run_run")
|
571
|
+
deleted_resp.code.should eql(200)
|
572
|
+
deleted_resp.line['title'].should eql("delete_run")
|
573
|
+
deleted_resp.title.should eql("delete_run_run")
|
574
|
+
end
|
575
|
+
end
|
576
|
+
|
577
|
+
it "should throw error message while deleting uncreated Run" do
|
578
|
+
VCR.use_cassette "run/block/delete_run_error", :record => :new_episodes do
|
579
|
+
delete = CF::Run.destroy("norun")
|
580
|
+
delete.code.should_not eql(200)
|
581
|
+
delete.error.message.should eql("Run document not found using selector: {:tenant_id=>BSON::ObjectId('4def16fa5511274d98000014'), :title=>\"norun\"}")
|
582
|
+
end
|
583
|
+
end
|
584
|
+
end
|
552
585
|
end
|
553
586
|
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.2.
|
4
|
+
version: 0.2.3
|
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-30 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|
16
|
-
requirement: &
|
16
|
+
requirement: &2155292240 !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: *2155292240
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activesupport
|
27
|
-
requirement: &
|
27
|
+
requirement: &2155291620 !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: *
|
35
|
+
version_requirements: *2155291620
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: hashie
|
38
|
-
requirement: &
|
38
|
+
requirement: &2155290940 !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: *
|
46
|
+
version_requirements: *2155290940
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rest-client
|
49
|
-
requirement: &
|
49
|
+
requirement: &2155272760 !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: *2155272760
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: json
|
60
|
-
requirement: &
|
60
|
+
requirement: &2155272180 !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: *2155272180
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: thor
|
71
|
-
requirement: &
|
71
|
+
requirement: &2155271560 !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: *
|
79
|
+
version_requirements: *2155271560
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: highline
|
82
|
-
requirement: &
|
82
|
+
requirement: &2155271020 !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: *2155271020
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: httparty
|
93
|
-
requirement: &
|
93
|
+
requirement: &2155270360 !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: *
|
101
|
+
version_requirements: *2155270360
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: terminal-table
|
104
|
-
requirement: &
|
104
|
+
requirement: &2155269680 !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: *
|
112
|
+
version_requirements: *2155269680
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: millisami-csv-hash
|
115
|
-
requirement: &
|
115
|
+
requirement: &2155269240 !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: *2155269240
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: awesome_print
|
126
|
-
requirement: &
|
126
|
+
requirement: &2155268600 !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: *
|
134
|
+
version_requirements: *2155268600
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: ruby-debug19
|
137
|
-
requirement: &
|
137
|
+
requirement: &2155268060 !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: *2155268060
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: aruba
|
148
|
-
requirement: &
|
148
|
+
requirement: &2155267580 !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: *
|
156
|
+
version_requirements: *2155267580
|
157
157
|
- !ruby/object:Gem::Dependency
|
158
158
|
name: rails
|
159
|
-
requirement: &
|
159
|
+
requirement: &2155266880 !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: *
|
167
|
+
version_requirements: *2155266880
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: bundler
|
170
|
-
requirement: &
|
170
|
+
requirement: &2155266220 !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: *
|
178
|
+
version_requirements: *2155266220
|
179
179
|
- !ruby/object:Gem::Dependency
|
180
180
|
name: generator_spec
|
181
|
-
requirement: &
|
181
|
+
requirement: &2155265640 !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: *
|
189
|
+
version_requirements: *2155265640
|
190
190
|
- !ruby/object:Gem::Dependency
|
191
191
|
name: rspec-rails
|
192
|
-
requirement: &
|
192
|
+
requirement: &2155265140 !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: *2155265140
|
201
201
|
- !ruby/object:Gem::Dependency
|
202
202
|
name: cucumber
|
203
|
-
requirement: &
|
203
|
+
requirement: &2155255180 !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: *
|
211
|
+
version_requirements: *2155255180
|
212
212
|
- !ruby/object:Gem::Dependency
|
213
213
|
name: rdoc
|
214
|
-
requirement: &
|
214
|
+
requirement: &2155254560 !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: *
|
222
|
+
version_requirements: *2155254560
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: vcr
|
225
|
-
requirement: &
|
225
|
+
requirement: &2155254020 !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: *2155254020
|
234
234
|
- !ruby/object:Gem::Dependency
|
235
235
|
name: rake
|
236
|
-
requirement: &
|
236
|
+
requirement: &2155253440 !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: *2155253440
|
245
245
|
- !ruby/object:Gem::Dependency
|
246
246
|
name: webmock
|
247
|
-
requirement: &
|
247
|
+
requirement: &2155252900 !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: *
|
255
|
+
version_requirements: *2155252900
|
256
256
|
- !ruby/object:Gem::Dependency
|
257
257
|
name: timecop
|
258
|
-
requirement: &
|
258
|
+
requirement: &2155252360 !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: *
|
266
|
+
version_requirements: *2155252360
|
267
267
|
description: A Ruby wrapper and CLI for to interact with Cloudfactory.com REST API
|
268
268
|
email:
|
269
269
|
- info@cloudfactory.com
|