shelly 0.0.52 → 0.0.53
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/shelly/app.rb +21 -5
- data/lib/shelly/cli/main.rb +16 -14
- data/lib/shelly/templates/Cloudfile.erb +1 -1
- data/lib/shelly/version.rb +1 -1
- data/spec/shelly/app_spec.rb +50 -47
- data/spec/shelly/cli/main_spec.rb +40 -24
- metadata +28 -34
data/lib/shelly/app.rb
CHANGED
@@ -13,12 +13,16 @@ module Shelly
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def add_git_remote
|
16
|
-
system("git remote rm
|
17
|
-
system("git remote add
|
16
|
+
system("git remote rm #{code_name} > /dev/null 2>&1")
|
17
|
+
system("git remote add #{code_name} #{git_url}")
|
18
|
+
end
|
19
|
+
|
20
|
+
def git_remote_exist?
|
21
|
+
IO.popen("git remote").read.include?(code_name)
|
18
22
|
end
|
19
23
|
|
20
24
|
def remove_git_remote
|
21
|
-
system("git remote rm
|
25
|
+
system("git remote rm #{code_name} > /dev/null 2>&1")
|
22
26
|
end
|
23
27
|
|
24
28
|
def generate_cloudfile
|
@@ -33,7 +37,7 @@ module Shelly
|
|
33
37
|
end
|
34
38
|
|
35
39
|
def create
|
36
|
-
attributes = {:code_name => code_name
|
40
|
+
attributes = {:code_name => code_name}
|
37
41
|
response = shelly.create_app(attributes)
|
38
42
|
self.git_url = response["git_url"]
|
39
43
|
self.domains = response["domains"]
|
@@ -102,7 +106,19 @@ module Shelly
|
|
102
106
|
end
|
103
107
|
|
104
108
|
def self.guess_code_name
|
105
|
-
|
109
|
+
guessed = nil
|
110
|
+
if Cloudfile.present?
|
111
|
+
clouds = Cloudfile.new.clouds
|
112
|
+
if clouds.grep(/staging/).present?
|
113
|
+
guessed = "production"
|
114
|
+
production_clouds = clouds.grep(/production/)
|
115
|
+
production_clouds.sort.each do |cloud|
|
116
|
+
cloud =~ /production(\d*)/
|
117
|
+
guessed = "production#{$1.to_i+1}"
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
"#{File.basename(Dir.pwd)}-#{guessed || 'staging'}"
|
106
122
|
end
|
107
123
|
|
108
124
|
def collaborations
|
data/lib/shelly/cli/main.rb
CHANGED
@@ -73,20 +73,22 @@ module Shelly
|
|
73
73
|
method_option :databases, :type => :array, :aliases => "-d",
|
74
74
|
:banner => Shelly::App::DATABASE_KINDS.join(', '),
|
75
75
|
:desc => "List of databases of your choice"
|
76
|
-
method_option :domains, :type => :array,
|
77
|
-
:banner => "CODE-NAME.shellyapp.com, YOUR-DOMAIN.com",
|
78
|
-
:desc => "List of your domains"
|
79
76
|
desc "add", "Add a new cloud"
|
80
77
|
def add
|
81
78
|
check_options(options)
|
82
79
|
@app = Shelly::App.new
|
83
80
|
@app.code_name = options["code-name"] || ask_for_code_name
|
84
81
|
@app.databases = options["databases"] || ask_for_databases
|
85
|
-
@app.domains = options["domains"] || ["#{@app.code_name}.shellyapp.com"]
|
86
82
|
@app.create
|
87
83
|
|
88
|
-
|
89
|
-
@app
|
84
|
+
git_remote = @app.git_remote_exist?
|
85
|
+
if !git_remote or (git_remote and yes?("Git remote #{@app} exists, overwrite (yes/no): "))
|
86
|
+
say "Adding remote #{@app} #{@app.git_url}", :green
|
87
|
+
@app.add_git_remote
|
88
|
+
else
|
89
|
+
say "You have to manually add git remote:"
|
90
|
+
say "`git remote add NAME #{@app.git_url}`"
|
91
|
+
end
|
90
92
|
|
91
93
|
say "Creating Cloudfile", :green
|
92
94
|
@app.create_cloudfile
|
@@ -100,13 +102,13 @@ module Shelly
|
|
100
102
|
end
|
101
103
|
|
102
104
|
info_adding_cloudfile_to_repository
|
103
|
-
info_deploying_to_shellycloud
|
105
|
+
info_deploying_to_shellycloud(@app)
|
104
106
|
|
105
107
|
rescue Client::ValidationException => e
|
106
108
|
e.each_error { |error| say_error error, :with_exit => false }
|
107
109
|
say_new_line
|
108
110
|
say_error "Fix erros in the below command and type it again to create your cloud" , :with_exit => false
|
109
|
-
say_error "shelly add --code-name=#{@app.code_name} --databases=#{@app.databases.join(',')}
|
111
|
+
say_error "shelly add --code-name=#{@app.code_name} --databases=#{@app.databases.join(',')}"
|
110
112
|
end
|
111
113
|
|
112
114
|
desc "list", "List available clouds"
|
@@ -315,7 +317,7 @@ We have been notified about it. We will be adding new resources shortly}
|
|
315
317
|
|
316
318
|
def check_options(options)
|
317
319
|
unless options.empty?
|
318
|
-
unless ["code-name", "databases"
|
320
|
+
unless ["code-name", "databases"].all? do |option|
|
319
321
|
options.include?(option.to_s) && options[option.to_s] != option.to_s
|
320
322
|
end && valid_databases?(options["databases"])
|
321
323
|
# FIXME: ' to `
|
@@ -349,8 +351,8 @@ We have been notified about it. We will be adding new resources shortly}
|
|
349
351
|
end
|
350
352
|
|
351
353
|
def ask_for_code_name
|
352
|
-
default_code_name =
|
353
|
-
code_name = ask("Cloud code name (#{
|
354
|
+
default_code_name = Shelly::App.guess_code_name
|
355
|
+
code_name = ask("Cloud code name (#{Shelly::App.guess_code_name} - default):")
|
354
356
|
code_name.blank? ? default_code_name : code_name
|
355
357
|
end
|
356
358
|
|
@@ -374,15 +376,15 @@ We have been notified about it. We will be adding new resources shortly}
|
|
374
376
|
say " git status"
|
375
377
|
end
|
376
378
|
|
377
|
-
def info_deploying_to_shellycloud
|
379
|
+
def info_deploying_to_shellycloud(remote)
|
378
380
|
say_new_line
|
379
381
|
say "When you make sure all settings are correct please issue following commands:", :green
|
380
382
|
say " git add ."
|
381
383
|
say ' git commit -m "Application added to Shelly Cloud"'
|
382
384
|
say " git push"
|
383
385
|
say_new_line
|
384
|
-
say "Deploy to
|
385
|
-
say " git push
|
386
|
+
say "Deploy to your cloud using:", :green
|
387
|
+
say " git push #{remote} master"
|
386
388
|
say_new_line
|
387
389
|
end
|
388
390
|
end
|
data/lib/shelly/version.rb
CHANGED
data/spec/shelly/app_spec.rb
CHANGED
@@ -12,8 +12,27 @@ describe Shelly::App do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
describe ".guess_code_name" do
|
15
|
-
|
16
|
-
|
15
|
+
context "no Cloudfile" do
|
16
|
+
it "should return name of current working directory" do
|
17
|
+
Shelly::App.guess_code_name.should == "foo-staging"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "with Cloudfile" do
|
22
|
+
it "should return production" do
|
23
|
+
File.open("Cloudfile", 'w') {|f| f.write("foo-staging:\n") }
|
24
|
+
Shelly::App.guess_code_name.should == "foo-production"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should return production" do
|
28
|
+
File.open("Cloudfile", 'w') {|f| f.write("winnie-test:\n") }
|
29
|
+
Shelly::App.guess_code_name.should == "foo-staging"
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should return productionNUMBER" do
|
33
|
+
File.open("Cloudfile", 'w') {|f| f.write("foo-staging:\nfoo-production:\n") }
|
34
|
+
Shelly::App.guess_code_name.should == "foo-production1"
|
35
|
+
end
|
17
36
|
end
|
18
37
|
end
|
19
38
|
|
@@ -31,16 +50,24 @@ describe Shelly::App do
|
|
31
50
|
end
|
32
51
|
|
33
52
|
it "should try to remove existing git remote" do
|
34
|
-
@app.should_receive(:system).with("git remote rm
|
53
|
+
@app.should_receive(:system).with("git remote rm foo-staging > /dev/null 2>&1")
|
35
54
|
@app.add_git_remote
|
36
55
|
end
|
37
56
|
|
38
57
|
it "should add git remote with proper name and git repository" do
|
39
|
-
@app.should_receive(:system).with("git remote add
|
58
|
+
@app.should_receive(:system).with("git remote add foo-staging git@git.shellycloud.com:foo-staging.git")
|
40
59
|
@app.add_git_remote
|
41
60
|
end
|
42
61
|
end
|
43
62
|
|
63
|
+
describe "git_remote_exist" do
|
64
|
+
it "should return true if git remote exist" do
|
65
|
+
io = mock(:read => "origin\nfoo-staging")
|
66
|
+
IO.should_receive(:popen).with("git remote").and_return(io)
|
67
|
+
@app.git_remote_exist?.should be_true
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
44
71
|
describe "#configs" do
|
45
72
|
it "should get configs from client" do
|
46
73
|
@client.should_receive(:app_configs).with("foo-staging").and_return(config_response)
|
@@ -116,7 +143,7 @@ describe Shelly::App do
|
|
116
143
|
FakeFS.deactivate!
|
117
144
|
expected = <<-config
|
118
145
|
foo-staging:
|
119
|
-
ruby_version: 1.9.2 # 1.9.2 or ree
|
146
|
+
ruby_version: 1.9.2 # 1.9.2 or ree-1.8.7
|
120
147
|
environment: production # RAILS_ENV
|
121
148
|
monitoring_email: bob@example.com
|
122
149
|
domains:
|
@@ -224,48 +251,24 @@ config
|
|
224
251
|
end
|
225
252
|
|
226
253
|
describe "#create" do
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
@app.ruby_version.should == "1.9.2"
|
246
|
-
@app.environment.should == "production"
|
247
|
-
end
|
248
|
-
end
|
249
|
-
|
250
|
-
context "with providing domain" do
|
251
|
-
it "should create the app on shelly cloud via API client" do
|
252
|
-
@app.code_name = "boo"
|
253
|
-
@app.domains = ["boo.shellyapp.com", "boo.example.com"]
|
254
|
-
attributes = {
|
255
|
-
:code_name => "boo",
|
256
|
-
:domains => %w(boo.shellyapp.com boo.example.com)
|
257
|
-
}
|
258
|
-
@client.should_receive(:create_app).with(attributes).and_return("git_url" => "git@git.shellycloud.com:fooo.git",
|
259
|
-
"domains" => %w(boo.shellyapp.com boo.example.com))
|
260
|
-
@app.create
|
261
|
-
end
|
262
|
-
|
263
|
-
it "should assign returned git_url and domain" do
|
264
|
-
@client.stub(:create_app).and_return("git_url" => "git@git.example.com:fooo.git",
|
265
|
-
"domains" => %w(boo.shellyapp.com boo.example.com))
|
266
|
-
@app.create
|
267
|
-
@app.domains.should == %w(boo.shellyapp.com boo.example.com)
|
268
|
-
end
|
254
|
+
it "should create the app on shelly cloud via API client" do
|
255
|
+
@app.code_name = "fooo"
|
256
|
+
attributes = {
|
257
|
+
:code_name => "fooo"
|
258
|
+
}
|
259
|
+
@client.should_receive(:create_app).with(attributes).and_return("git_url" => "git@git.shellycloud.com:fooo.git",
|
260
|
+
"domains" => %w(fooo.shellyapp.com))
|
261
|
+
@app.create
|
262
|
+
end
|
263
|
+
|
264
|
+
it "should assign returned git_url, domains, ruby_version and environment" do
|
265
|
+
@client.stub(:create_app).and_return("git_url" => "git@git.example.com:fooo.git",
|
266
|
+
"domains" => ["fooo.shellyapp.com"], "ruby_version" => "1.9.2", "environment" => "production")
|
267
|
+
@app.create
|
268
|
+
@app.git_url.should == "git@git.example.com:fooo.git"
|
269
|
+
@app.domains.should == ["fooo.shellyapp.com"]
|
270
|
+
@app.ruby_version.should == "1.9.2"
|
271
|
+
@app.environment.should == "production"
|
269
272
|
end
|
270
273
|
end
|
271
274
|
|
@@ -274,6 +274,7 @@ OUT
|
|
274
274
|
Shelly::App.stub(:new).and_return(@app)
|
275
275
|
@client.stub(:token).and_return("abc")
|
276
276
|
@app.stub(:attributes).and_return({"trial" => false})
|
277
|
+
@app.stub(:git_remote_exist?).and_return(false)
|
277
278
|
end
|
278
279
|
|
279
280
|
# This spec tests inside_git_repository? hook
|
@@ -311,7 +312,7 @@ OUT
|
|
311
312
|
|
312
313
|
it "should exit if databases are not valid" do
|
313
314
|
$stdout.should_receive(:puts).with("\e[31mTry 'shelly help add' for more information\e[0m")
|
314
|
-
@main.options = {"code-name" => "foo", "databases" => ["not existing"]
|
315
|
+
@main.options = {"code-name" => "foo", "databases" => ["not existing"]}
|
315
316
|
lambda {
|
316
317
|
invoke(@main, :add)
|
317
318
|
}.should raise_error(SystemExit)
|
@@ -321,14 +322,14 @@ OUT
|
|
321
322
|
context "valid params" do
|
322
323
|
it "should create app on shelly cloud" do
|
323
324
|
@app.should_receive(:create)
|
324
|
-
@main.options = {"code-name" => "foo", "databases" => ["postgresql"]
|
325
|
+
@main.options = {"code-name" => "foo", "databases" => ["postgresql"]}
|
325
326
|
invoke(@main, :add)
|
326
327
|
end
|
327
328
|
end
|
328
329
|
end
|
329
330
|
|
330
331
|
it "should use code name provided by user" do
|
331
|
-
$stdout.should_receive(:print).with("Cloud code name (foo-
|
332
|
+
$stdout.should_receive(:print).with("Cloud code name (foo-staging - default): ")
|
332
333
|
@app.should_receive(:code_name=).with("mycodename")
|
333
334
|
fake_stdin(["mycodename", ""]) do
|
334
335
|
invoke(@main, :add)
|
@@ -337,8 +338,8 @@ OUT
|
|
337
338
|
|
338
339
|
context "when user provided empty code name" do
|
339
340
|
it "should use 'current_dirname-purpose' as default" do
|
340
|
-
$stdout.should_receive(:print).with("Cloud code name (foo-
|
341
|
-
@app.should_receive(:code_name=).with("foo-
|
341
|
+
$stdout.should_receive(:print).with("Cloud code name (foo-staging - default): ")
|
342
|
+
@app.should_receive(:code_name=).with("foo-staging")
|
342
343
|
fake_stdin(["", ""]) do
|
343
344
|
invoke(@main, :add)
|
344
345
|
end
|
@@ -393,7 +394,7 @@ OUT
|
|
393
394
|
$stdout.should_receive(:puts).with(green "Billing information")
|
394
395
|
$stdout.should_receive(:puts).with("Cloud created with 20 Euro credit.")
|
395
396
|
$stdout.should_receive(:puts).with("Remember to provide billing details before trial ends.")
|
396
|
-
$stdout.should_receive(:puts).with("http://example.com/apps/foo-
|
397
|
+
$stdout.should_receive(:puts).with("http://example.com/apps/foo-staging/billing/edit")
|
397
398
|
|
398
399
|
fake_stdin(["", ""]) do
|
399
400
|
invoke(@main, :add)
|
@@ -415,7 +416,7 @@ OUT
|
|
415
416
|
@app.should_receive(:create).and_raise(exception)
|
416
417
|
$stdout.should_receive(:puts).with("\e[31mCode name has been already taken\e[0m")
|
417
418
|
$stdout.should_receive(:puts).with("\e[31mFix erros in the below command and type it again to create your cloud\e[0m")
|
418
|
-
$stdout.should_receive(:puts).with("\e[31mshelly add --code-name=foo-
|
419
|
+
$stdout.should_receive(:puts).with("\e[31mshelly add --code-name=foo-staging --databases=postgresql\e[0m")
|
419
420
|
lambda {
|
420
421
|
fake_stdin(["", ""]) do
|
421
422
|
invoke(@main, :add)
|
@@ -423,24 +424,39 @@ OUT
|
|
423
424
|
}.should raise_error(SystemExit)
|
424
425
|
end
|
425
426
|
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
$stdout.should_receive(:puts).with("\e[31mshelly add --code-name=foo-staging --databases=postgresql --domains=test.example.com,test2.example.com\e[0m")
|
432
|
-
lambda {
|
433
|
-
fake_stdin(["", ""]) do
|
427
|
+
context "git remote" do
|
428
|
+
it "should add one if it doesn't exist" do
|
429
|
+
$stdout.should_receive(:puts).with("\e[32mAdding remote foooo git@git.shellycloud.com:foooo.git\e[0m")
|
430
|
+
@app.should_receive(:add_git_remote)
|
431
|
+
fake_stdin(["foooo", ""]) do
|
434
432
|
invoke(@main, :add)
|
435
433
|
end
|
436
|
-
|
437
|
-
|
434
|
+
end
|
435
|
+
|
436
|
+
context "does exist" do
|
437
|
+
before do
|
438
|
+
@app.stub(:git_remote_exist?).and_return(true)
|
439
|
+
end
|
440
|
+
|
441
|
+
it "should ask if one exist and overwrite" do
|
442
|
+
$stdout.should_receive(:print).with("Git remote foooo exists, overwrite (yes/no): ")
|
443
|
+
$stdout.should_receive(:puts).with(green "Adding remote foooo git@git.shellycloud.com:foooo.git")
|
444
|
+
@app.should_receive(:add_git_remote)
|
445
|
+
fake_stdin(["foooo", "", "yes"]) do
|
446
|
+
invoke(@main, :add)
|
447
|
+
end
|
448
|
+
end
|
449
|
+
|
450
|
+
it "should ask if one exist and not overwrite" do
|
451
|
+
$stdout.should_receive(:print).with("Git remote foooo exists, overwrite (yes/no): ")
|
452
|
+
$stdout.should_receive(:puts).with("You have to manually add git remote:")
|
453
|
+
$stdout.should_receive(:puts).with("`git remote add NAME git@git.shellycloud.com:foooo.git`")
|
454
|
+
@app.should_not_receive(:add_git_remote)
|
455
|
+
fake_stdin(["foooo", "", "no"]) do
|
456
|
+
invoke(@main, :add)
|
457
|
+
end
|
458
|
+
end
|
438
459
|
|
439
|
-
it "should add git remote" do
|
440
|
-
$stdout.should_receive(:puts).with("\e[32mAdding remote production git@git.shellycloud.com:foooo.git\e[0m")
|
441
|
-
@app.should_receive(:add_git_remote)
|
442
|
-
fake_stdin(["foooo", ""]) do
|
443
|
-
invoke(@main, :add)
|
444
460
|
end
|
445
461
|
end
|
446
462
|
|
@@ -466,8 +482,8 @@ OUT
|
|
466
482
|
$stdout.should_receive(:puts).with(" git add .")
|
467
483
|
$stdout.should_receive(:puts).with(' git commit -m "Application added to Shelly Cloud"')
|
468
484
|
$stdout.should_receive(:puts).with(" git push")
|
469
|
-
$stdout.should_receive(:puts).with("\e[32mDeploy to
|
470
|
-
$stdout.should_receive(:puts).with(" git push
|
485
|
+
$stdout.should_receive(:puts).with("\e[32mDeploy to your cloud using:\e[0m")
|
486
|
+
$stdout.should_receive(:puts).with(" git push foooo master")
|
471
487
|
fake_stdin(["foooo", "none"]) do
|
472
488
|
invoke(@main, :add)
|
473
489
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shelly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.53
|
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: 2012-03-
|
12
|
+
date: 2012-03-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70355552495420 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.8.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70355552495420
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &70355552495000 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70355552495000
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: guard
|
38
|
-
requirement: &
|
38
|
+
requirement: &70355552494540 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70355552494540
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: guard-rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &70355552494120 !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: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70355552494120
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
requirement: &
|
60
|
+
requirement: &70355552493700 !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: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70355552493700
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: ruby_gntp
|
71
|
-
requirement: &
|
71
|
+
requirement: &70355552509600 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70355552509600
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rb-fsevent
|
82
|
-
requirement: &
|
82
|
+
requirement: &70355552509180 !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: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70355552509180
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: fakefs
|
93
|
-
requirement: &
|
93
|
+
requirement: &70355552508760 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70355552508760
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: fakeweb
|
104
|
-
requirement: &
|
104
|
+
requirement: &70355552508340 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70355552508340
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: wijet-thor
|
115
|
-
requirement: &
|
115
|
+
requirement: &70355552507840 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ~>
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: 0.14.7
|
121
121
|
type: :runtime
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *70355552507840
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: rest-client
|
126
|
-
requirement: &
|
126
|
+
requirement: &70355552507420 !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: *70355552507420
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: json
|
137
|
-
requirement: &
|
137
|
+
requirement: &70355552506960 !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: :runtime
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *70355552506960
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: progressbar
|
148
|
-
requirement: &
|
148
|
+
requirement: &70355552506540 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ! '>='
|
@@ -153,7 +153,7 @@ dependencies:
|
|
153
153
|
version: '0'
|
154
154
|
type: :runtime
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *70355552506540
|
157
157
|
description: Tool for managing applications and clouds at shellycloud.com
|
158
158
|
email:
|
159
159
|
- support@shellycloud.com
|
@@ -223,18 +223,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
223
223
|
- - ! '>='
|
224
224
|
- !ruby/object:Gem::Version
|
225
225
|
version: '0'
|
226
|
-
segments:
|
227
|
-
- 0
|
228
|
-
hash: -4124757266592650249
|
229
226
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
230
227
|
none: false
|
231
228
|
requirements:
|
232
229
|
- - ! '>='
|
233
230
|
- !ruby/object:Gem::Version
|
234
231
|
version: '0'
|
235
|
-
segments:
|
236
|
-
- 0
|
237
|
-
hash: -4124757266592650249
|
238
232
|
requirements: []
|
239
233
|
rubyforge_project: shelly
|
240
234
|
rubygems_version: 1.8.17
|