shelly 0.0.46.pre2 → 0.0.46.pre3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/shelly/app.rb CHANGED
@@ -147,12 +147,7 @@ module Shelly
147
147
  file_name_or_code
148
148
  end
149
149
 
150
- response = shelly.command(code_name, code, :ruby)
151
- response["result"]
152
- end
153
-
154
- def rake(task)
155
- response = shelly.command(code_name, task, :rake)
150
+ response = shelly.run(code_name, code)
156
151
  response["result"]
157
152
  end
158
153
 
@@ -13,12 +13,12 @@ module Shelly
13
13
  register(Backup, "backup", "backup <command>", "Manage database backups")
14
14
  register(Deploys, "deploys", "deploys <command>", "View deploy logs")
15
15
  register(Config, "config", "config <command>", "Manage application configuration files")
16
- check_unknown_options!(:except => :rake)
16
+ check_unknown_options!
17
17
 
18
18
  # FIXME: it should be possible to pass single symbol, instead of one element array
19
- before_hook :logged_in?, :only => [:add, :list, :start, :stop, :logs, :delete, :ip, :logout, :execute, :rake]
19
+ before_hook :logged_in?, :only => [:add, :list, :start, :stop, :logs, :delete, :ip, :logout, :execute]
20
20
  before_hook :inside_git_repository?, :only => [:add]
21
- before_hook :cloudfile_present?, :only => [:logs, :stop, :start, :ip, :execute, :rake]
21
+ before_hook :cloudfile_present?, :only => [:logs, :stop, :start, :ip]
22
22
 
23
23
  map %w(-v --version) => :version
24
24
  desc "version", "Display shelly version"
@@ -29,26 +29,21 @@ module Shelly
29
29
  desc "register [EMAIL]", "Register new account"
30
30
  def register(email = nil)
31
31
  user = Shelly::User.new
32
- user.ssh_key_registered?
33
32
  say "Registering with email: #{email}" if email
34
33
  user.email = (email || ask_for_email)
35
34
  user.password = ask_for_password
36
35
  user.register
37
36
  if user.ssh_key_exists?
38
37
  say "Uploading your public SSH key from #{user.ssh_key_path}"
38
+ else
39
+ say_error "No such file or directory - #{user.ssh_key_path}", :with_exit => false
40
+ say_error "Use ssh-keygen to generate ssh key pair, after that use: `shelly login`", :with_exit => false
39
41
  end
40
42
  say "Successfully registered!"
41
43
  say "Check you mailbox for email address confirmation"
42
44
  rescue Client::ValidationException => e
43
45
  e.each_error { |error| say_error "#{error}", :with_exit => false }
44
46
  exit 1
45
- rescue Client::ConflictException
46
- say_error "User with your ssh key already exists.", :with_exit => false
47
- say_error "You can login using: shelly login [EMAIL]", :with_exit => false
48
- exit 1
49
- rescue Errno::ENOENT => e
50
- say_error e, :with_exit => false
51
- say_error "Use ssh-keygen to generate ssh key pair"
52
47
  end
53
48
 
54
49
  desc "login [EMAIL]", "Log into Shelly Cloud"
@@ -236,8 +231,9 @@ module Shelly
236
231
  say "You have been successfully logged out" if user.delete_credentials
237
232
  end
238
233
 
239
- desc "execute CODE", "Run code on one of application servers"
240
- method_option :cloud, :type => :string, :aliases => "-c", :desc => "Specify cloud"
234
+ desc "execute [CODE]", "Run code on one of application servers"
235
+ method_option :cloud, :type => :string, :aliases => "-c",
236
+ :desc => "Specify which cloud to run code for"
241
237
  long_desc "Run code given in parameter on one of application servers. If a file name is given, run contents of that file."
242
238
  def execute(file_name_or_code)
243
239
  cloud = options[:cloud]
@@ -254,18 +250,6 @@ module Shelly
254
250
  end
255
251
  end
256
252
 
257
- desc "rake TASK", "Run rake task"
258
- method_option :cloud, :type => :string, :aliases => "-c", :desc => "Specify cloud"
259
- def rake(task = nil)
260
- task = rake_args.join(" ")
261
- multiple_clouds(options[:cloud], "rake #{task}")
262
- result = @app.rake(task)
263
- say result
264
- rescue Client::APIException => e
265
- raise unless e[:message] == "App not running"
266
- say_error "Cloud #{@app} is not running. Cannot run rake task."
267
- end
268
-
269
253
  desc "redeploy", "Redeploy application"
270
254
  method_option :cloud, :type => :string, :aliases => "-c",
271
255
  :desc => "Specify which cloud to redeploy application for"
@@ -290,23 +274,6 @@ module Shelly
290
274
 
291
275
  # FIXME: move to helpers
292
276
  no_tasks do
293
- # Returns valid arguments for rake, removes shelly gem arguments
294
- def rake_args(args = ARGV)
295
- skip_next = false
296
- [].tap do |out|
297
- args.each do |arg|
298
- case arg
299
- when "rake", "--debug"
300
- when "--cloud", "-c"
301
- skip_next = true
302
- else
303
- out << arg unless skip_next
304
- skip_next = false
305
- end
306
- end
307
- end
308
- end
309
-
310
277
  def check_options(options)
311
278
  unless options.empty?
312
279
  unless ["code-name", "databases", "domains"].all? do |option|
data/lib/shelly/client.rb CHANGED
@@ -115,8 +115,8 @@ module Shelly
115
115
  get("/apps/#{code_name}")
116
116
  end
117
117
 
118
- def command(cloud, body, type)
119
- post("/apps/#{cloud}/command", {:body => body, :type => type})
118
+ def run(cloud, code)
119
+ post("/apps/#{cloud}/run", :body => code)
120
120
  end
121
121
 
122
122
  def deploy_logs(cloud)
@@ -147,10 +147,6 @@ module Shelly
147
147
  post("/apps/#{code_name}/database_backups", :kind => kind)
148
148
  end
149
149
 
150
- def ssh_key_available?(ssh_key)
151
- get("/users/new", :ssh_key => ssh_key)
152
- end
153
-
154
150
  def app_users(cloud)
155
151
  get("/apps/#{cloud}/users")
156
152
  end
data/lib/shelly/user.rb CHANGED
@@ -60,11 +60,6 @@ module Shelly
60
60
  File.expand_path("~/.ssh/id_rsa.pub")
61
61
  end
62
62
 
63
- def ssh_key_registered?
64
- ssh_key = File.read(ssh_key_path).strip
65
- shelly.ssh_key_available?(ssh_key)
66
- end
67
-
68
63
  def self.guess_email
69
64
  @@guess_email ||= IO.popen("git config --get user.email").read.strip
70
65
  end
@@ -1,3 +1,3 @@
1
1
  module Shelly
2
- VERSION = "0.0.46.pre2"
2
+ VERSION = "0.0.46.pre3"
3
3
  end
@@ -293,28 +293,21 @@ config
293
293
  @response = {
294
294
  "result" => "4"
295
295
  }
296
- @client.stub(:command).and_return(@response)
296
+ @client.stub(:run).and_return(@response)
297
297
  File.open("to_run.rb", 'w') {|f| f.write("User.count\n") }
298
298
  end
299
299
 
300
300
  it "should return result of executed code" do
301
- @client.should_receive(:command).with("foo-staging", "2 + 2", :ruby)
301
+ @client.should_receive(:run).with("foo-staging", "2 + 2")
302
302
  @app.run("2 + 2").should == "4"
303
303
  end
304
304
 
305
305
  it "should send contents of file when file exists" do
306
- @client.should_receive(:command).with("foo-staging", "User.count\n", :ruby)
306
+ @client.should_receive(:run).with("foo-staging", "User.count\n")
307
307
  @app.run("to_run.rb")
308
308
  end
309
309
  end
310
310
 
311
- describe "#rake" do
312
- it "should return result of rake task" do
313
- @client.should_receive(:command).with("foo-staging", "db:create", :rake).and_return({"result" => "OK"})
314
- @app.rake("db:create").should == "OK"
315
- end
316
- end
317
-
318
311
  describe "#to_s" do
319
312
  it "should return code_name" do
320
313
  @app.to_s.should == "foo-staging"
@@ -29,14 +29,13 @@ Tasks:
29
29
  shelly config <command> # Manage application configuration files
30
30
  shelly delete # Delete the cloud
31
31
  shelly deploys <command> # View deploy logs
32
- shelly execute CODE # Run code on one of application servers
32
+ shelly execute [CODE] # Run code on one of application servers
33
33
  shelly help [TASK] # Describe available tasks or one specific task
34
34
  shelly ip # List cloud's IP addresses
35
35
  shelly list # List available clouds
36
36
  shelly login [EMAIL] # Log into Shelly Cloud
37
37
  shelly logout # Logout from Shelly Cloud
38
38
  shelly logs # Show latest application logs
39
- shelly rake TASK # Run rake task
40
39
  shelly redeploy # Redeploy application
41
40
  shelly register [EMAIL] # Register new account
42
41
  shelly start # Start the cloud
@@ -78,23 +77,14 @@ OUT
78
77
  Shelly::User.stub(:new).and_return(@user)
79
78
  end
80
79
 
81
- it "should return false if ssh key don't exist on local hard drive" do
80
+ it "should register user without local SSH Key and show message to create SSH Key" do
82
81
  FileUtils.rm_rf(@key_path)
83
82
  File.exists?(@key_path).should be_false
84
- $stdout.should_receive(:puts).with("\e[31mNo such file or directory - " + @key_path + "\e[0m")
85
- $stdout.should_receive(:puts).with("\e[31mUse ssh-keygen to generate ssh key pair\e[0m")
86
- lambda {
87
- invoke(@main, :register)
88
- }.should raise_error(SystemExit)
89
- end
90
-
91
- it "should check ssh key in database" do
92
- @user.stub(:ssh_key_registered?).and_raise(Shelly::Client::ConflictException.new)
93
- $stdout.should_receive(:puts).with("\e[31mUser with your ssh key already exists.\e[0m")
94
- $stdout.should_receive(:puts).with("\e[31mYou can login using: shelly login [EMAIL]\e[0m")
95
- lambda {
83
+ $stdout.should_receive(:puts).with(red "No such file or directory - #{@key_path}")
84
+ $stdout.should_receive(:puts).with(red "Use ssh-keygen to generate ssh key pair, after that use: `shelly login`")
85
+ fake_stdin(["better@example.com", "secret", "secret"]) do
96
86
  invoke(@main, :register)
97
- }.should raise_error(SystemExit)
87
+ end
98
88
  end
99
89
 
100
90
  it "should ask for email, password and password confirmation" do
@@ -943,13 +933,9 @@ OUT
943
933
  hooks(@main, :execute).should include(:logged_in?)
944
934
  end
945
935
 
946
- it "should ensure cloudfile present" do
947
- hooks(@main, :execute).should include(:cloudfile_present?)
948
- end
949
-
950
936
  context "single cloud in Cloudfile" do
951
937
  it "should execute code for the cloud" do
952
- @client.should_receive(:command).with("foo-production", "User.count", :ruby).
938
+ @client.should_receive(:run).with("foo-production", "User.count").
953
939
  and_return({"result" => "3"})
954
940
  $stdout.should_receive(:puts).with("3")
955
941
  invoke(@main, :execute, "to_execute.rb")
@@ -974,7 +960,7 @@ OUT
974
960
  end
975
961
 
976
962
  it "should fetch from command line which cloud to start" do
977
- @client.should_receive(:command).with("foo-staging", "User.count", :ruby).
963
+ @client.should_receive(:run).with("foo-staging", "User.count").
978
964
  and_return({"result" => "3"})
979
965
  $stdout.should_receive(:puts).with("3")
980
966
  @main.options = {:cloud => "foo-staging"}
@@ -982,7 +968,7 @@ OUT
982
968
  end
983
969
 
984
970
  it "should run code when no file from parameter is found" do
985
- @client.should_receive(:command).with("foo-staging", "2 + 2", :ruby).
971
+ @client.should_receive(:run).with("foo-staging", "2 + 2").
986
972
  and_return({"result" => "4"})
987
973
  $stdout.should_receive(:puts).with("4")
988
974
  @main.options = {:cloud => "foo-staging"}
@@ -990,9 +976,9 @@ OUT
990
976
  end
991
977
  end
992
978
 
993
- context "cloud is not in running state" do
979
+ context "cloud is not running" do
994
980
  it "should print error" do
995
- @client.should_receive(:command).with("foo-staging", "2 + 2", :ruby).
981
+ @client.should_receive(:run).with("foo-staging", "2 + 2").
996
982
  and_raise(Shelly::Client::APIException.new(
997
983
  {"message" => "App not running"}, 504))
998
984
  $stdout.should_receive(:puts).
@@ -1000,92 +986,12 @@ OUT
1000
986
  @main.options = {:cloud => "foo-staging"}
1001
987
  lambda { invoke(@main, :execute, "2 + 2") }.should raise_error(SystemExit)
1002
988
  end
1003
- end
1004
- end
1005
-
1006
- describe "#rake" do
1007
- before do
1008
- FileUtils.mkdir_p("/projects/foo")
1009
- Dir.chdir("/projects/foo")
1010
- File.open("Cloudfile", 'w') {|f| f.write("foo-production:\n") }
1011
- @user = Shelly::User.new
1012
- @user.stub(:token)
1013
- Shelly::User.stub(:new).and_return(@user)
1014
- @app = Shelly::App.new
1015
- Shelly::App.stub(:new).and_return(@app)
1016
- @main.stub(:rake_args).and_return(%w(db:migrate))
1017
- end
1018
989
 
1019
- it "should ensure user has logged in" do
1020
- hooks(@main, :rake).should include(:logged_in?)
1021
- end
1022
-
1023
- it "should ensure cloudfile present" do
1024
- hooks(@main, :execute).should include(:cloudfile_present?)
1025
- end
1026
-
1027
- it "should invoke :command on app with rake task" do
1028
- @client.should_receive(:command).with("foo-production", "db:migrate", :rake).and_return("result" => "OK")
1029
- $stdout.should_receive(:puts).with("OK")
1030
- invoke(@main, :rake, "db:migrate")
1031
- end
1032
-
1033
- it "should pass rake arguments to the client" do
1034
- @main.stub(:rake_args).and_return(%w(-T db:schema))
1035
- @client.should_receive(:command).with("foo-production", "-T db:schema", :rake).and_return("result" => "OK")
1036
- $stdout.should_receive(:puts).with("OK")
1037
- invoke(@main, :rake, nil)
1038
- end
1039
-
1040
- describe "#rake_args" do
1041
- before { @main.unstub!(:rake_args) }
1042
-
1043
- it "should return Array of rake arguments (skipping shelly gem arguments)" do
1044
- argv = %w(rake -T db --cloud foo-production --debug)
1045
- @main.rake_args(argv).should == %w(-T db)
1046
- end
1047
-
1048
- it "should take ARGV as default default argument" do
1049
- # Rather poor, I test if method without args returns the same as method with ARGV
1050
- @main.rake_args.should == @main.rake_args(ARGV)
1051
- end
1052
- end
1053
-
1054
- context "cloud is not in running state" do
1055
- it "should print error" do
1056
- @client.should_receive(:command).with("foo-staging", "db:migrate", :rake).
1057
- and_raise(Shelly::Client::APIException.new(
1058
- {"message" => "App not running"}, 504))
1059
- $stdout.should_receive(:puts).
1060
- with(red "Cloud foo-staging is not running. Cannot run rake task.")
1061
- @main.options = {:cloud => "foo-staging"}
1062
- lambda { invoke(@main, :rake, "db:migrate") }.should raise_error(SystemExit)
1063
- end
1064
- end
1065
-
1066
- context "multiple clouds in Cloudfile" do
1067
- before do
1068
- File.open("Cloudfile", 'w') {|f|
1069
- f.write("foo-staging:\nfoo-production:\n") }
1070
- end
1071
-
1072
- it "should show information to run rake task for specific cloud and exit" do
1073
- $stdout.should_receive(:puts).
1074
- with(red "You have multiple clouds in Cloudfile.")
1075
- $stdout.should_receive(:puts).
1076
- with("Select cloud using `shelly rake db:migrate --cloud foo-production`")
1077
- $stdout.should_receive(:puts).with("Available clouds:")
1078
- $stdout.should_receive(:puts).with(" * foo-production")
1079
- $stdout.should_receive(:puts).with(" * foo-staging")
1080
- lambda { invoke(@main, :rake, "db:migrate") }.should raise_error(SystemExit)
1081
- end
1082
-
1083
- it "should fetch from command line for which cloud run rake task" do
1084
- @client.should_receive(:command).with("foo-staging", "db:migrate", :rake).
1085
- and_return({"result" => "3"})
1086
- $stdout.should_receive(:puts).with("3")
990
+ it "should re-raise other exceptions" do
991
+ @client.should_receive(:run).with("foo-staging", "2 + 2").
992
+ and_raise(Exception)
1087
993
  @main.options = {:cloud => "foo-staging"}
1088
- invoke(@main, :rake, "db:migrate")
994
+ lambda { invoke(@main, :execute, "2 + 2") }.should raise_error(Exception)
1089
995
  end
1090
996
  end
1091
997
  end
@@ -188,11 +188,11 @@ describe Shelly::Client do
188
188
  end
189
189
  end
190
190
 
191
- describe "#command" do
192
- it "should send post request with app code_name, body and type" do
193
- @client.should_receive(:post).with("/apps/staging-foo/command",
194
- {:body => "2 + 2", :type => :ruby}).and_return({"result" => "4"})
195
- response = @client.command("staging-foo", "2 + 2", :ruby)
191
+ describe "#run" do
192
+ it "should send post request with app code_name and code" do
193
+ FakeWeb.register_uri(:post, api_url("apps/staging-foo/run"),
194
+ :body => {:result => "4"}.to_json)
195
+ response = @client.run("staging-foo", "2 + 2")
196
196
  response.should == {"result" => "4"}
197
197
  end
198
198
  end
@@ -244,13 +244,6 @@ describe Shelly::Client do
244
244
  end
245
245
  end
246
246
 
247
- describe "#ssh_key_available?" do
248
- it "should send get request with ssh key" do
249
- @client.should_receive(:get).with("/users/new", {:ssh_key => "ssh-key Abb"})
250
- @client.ssh_key_available?("ssh-key Abb")
251
- end
252
- end
253
-
254
247
  describe "#database_backup" do
255
248
  it "should fetch backup description from API" do
256
249
  expected = {
@@ -123,13 +123,6 @@ describe Shelly::User do
123
123
  end
124
124
  end
125
125
 
126
- describe "#ssh_key_registered?" do
127
- it "should read and check if ssh key exists in database" do
128
- @client.should_receive(:ssh_key_available?).with('ssh-key AAbbcc')
129
- @user.ssh_key_registered?
130
- end
131
- end
132
-
133
126
  describe "#delete_ssh_key" do
134
127
  it "should invoke logout when ssh key exists" do
135
128
  @client.should_receive(:logout).with('ssh-key AAbbcc')
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.46.pre2
4
+ version: 0.0.46.pre3
5
5
  prerelease: 7
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-01-16 00:00:00.000000000Z
12
+ date: 2012-01-19 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70195901742100 !ruby/object:Gem::Requirement
16
+ requirement: &70197902930340 !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: :development
23
23
  prerelease: false
24
- version_requirements: *70195901742100
24
+ version_requirements: *70197902930340
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70195901741680 !ruby/object:Gem::Requirement
27
+ requirement: &70197902929860 !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: *70195901741680
35
+ version_requirements: *70197902929860
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: guard
38
- requirement: &70195901741260 !ruby/object:Gem::Requirement
38
+ requirement: &70197902929420 !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: *70195901741260
46
+ version_requirements: *70197902929420
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: guard-rspec
49
- requirement: &70195901740840 !ruby/object:Gem::Requirement
49
+ requirement: &70197902929000 !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: *70195901740840
57
+ version_requirements: *70197902929000
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &70195901740420 !ruby/object:Gem::Requirement
60
+ requirement: &70197902928580 !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: *70195901740420
68
+ version_requirements: *70197902928580
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: ruby_gntp
71
- requirement: &70195901739940 !ruby/object:Gem::Requirement
71
+ requirement: &70197902928120 !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: *70195901739940
79
+ version_requirements: *70197902928120
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rb-fsevent
82
- requirement: &70195901739480 !ruby/object:Gem::Requirement
82
+ requirement: &70197902927700 !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: *70195901739480
90
+ version_requirements: *70197902927700
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: fakefs
93
- requirement: &70195901738980 !ruby/object:Gem::Requirement
93
+ requirement: &70197902927280 !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: *70195901738980
101
+ version_requirements: *70197902927280
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: fakeweb
104
- requirement: &70195901738520 !ruby/object:Gem::Requirement
104
+ requirement: &70197902926860 !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: *70195901738520
112
+ version_requirements: *70197902926860
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: wijet-thor
115
- requirement: &70195901737780 !ruby/object:Gem::Requirement
115
+ requirement: &70197902912840 !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: *70195901737780
123
+ version_requirements: *70197902912840
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rest-client
126
- requirement: &70195901735720 !ruby/object:Gem::Requirement
126
+ requirement: &70197902912420 !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: *70195901735720
134
+ version_requirements: *70197902912420
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: json
137
- requirement: &70195901735160 !ruby/object:Gem::Requirement
137
+ requirement: &70197902911960 !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: *70195901735160
145
+ version_requirements: *70197902911960
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: wijet-launchy
148
- requirement: &70195901711180 !ruby/object:Gem::Requirement
148
+ requirement: &70197902911500 !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: :runtime
155
155
  prerelease: false
156
- version_requirements: *70195901711180
156
+ version_requirements: *70197902911500
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: progressbar
159
- requirement: &70195901710760 !ruby/object:Gem::Requirement
159
+ requirement: &70197902911060 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ! '>='
@@ -164,7 +164,7 @@ dependencies:
164
164
  version: '0'
165
165
  type: :runtime
166
166
  prerelease: false
167
- version_requirements: *70195901710760
167
+ version_requirements: *70197902911060
168
168
  description: Tool for managing applications and clouds at shellycloud.com
169
169
  email:
170
170
  - support@shellycloud.com