shelly 0.0.48.pre2 → 0.0.48.pre3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/shelly/app.rb +0 -6
- data/lib/shelly/cli/main.rb +10 -5
- data/lib/shelly/version.rb +1 -1
- data/shelly.gemspec +0 -1
- data/spec/shelly/app_spec.rb +1 -11
- data/spec/shelly/cli/main_spec.rb +37 -10
- metadata +165 -158
data/lib/shelly/app.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'erb'
|
2
|
-
require 'launchy'
|
3
2
|
require "shelly/backup"
|
4
3
|
|
5
4
|
module Shelly
|
@@ -168,11 +167,6 @@ module Shelly
|
|
168
167
|
attributes["mail_server_ip"]
|
169
168
|
end
|
170
169
|
|
171
|
-
def open_billing_page
|
172
|
-
url = "#{shelly.shellyapp_url}/login?api_key=#{current_user.token}&return_to=/apps/#{code_name}/edit_billing"
|
173
|
-
Launchy.open(url)
|
174
|
-
end
|
175
|
-
|
176
170
|
def self.inside_git_repository?
|
177
171
|
system("git status > /dev/null 2>&1")
|
178
172
|
end
|
data/lib/shelly/cli/main.rb
CHANGED
@@ -82,7 +82,7 @@ module Shelly
|
|
82
82
|
@app = Shelly::App.new
|
83
83
|
@app.code_name = options["code-name"] || ask_for_code_name
|
84
84
|
@app.databases = options["databases"] || ask_for_databases
|
85
|
-
@app.domains = options["domains"]
|
85
|
+
@app.domains = options["domains"] || ["#{@app.code_name}.shellyapp.com"]
|
86
86
|
@app.create
|
87
87
|
|
88
88
|
say "Adding remote production #{@app.git_url}", :green
|
@@ -90,9 +90,14 @@ module Shelly
|
|
90
90
|
|
91
91
|
say "Creating Cloudfile", :green
|
92
92
|
@app.create_cloudfile
|
93
|
-
|
94
|
-
|
95
|
-
|
93
|
+
if @app.attributes["trial"]
|
94
|
+
say_new_line
|
95
|
+
say "Billing information", :green
|
96
|
+
say "Cloud created with 20 Euro credit."
|
97
|
+
say "Remember to provide billing details before trial ends."
|
98
|
+
url = "#{@app.shelly.shellyapp_url}/apps/#{@app.code_name}/edit_billing"
|
99
|
+
say url
|
100
|
+
end
|
96
101
|
|
97
102
|
info_adding_cloudfile_to_repository
|
98
103
|
info_deploying_to_shellycloud
|
@@ -101,7 +106,7 @@ module Shelly
|
|
101
106
|
e.each_error { |error| say_error error, :with_exit => false }
|
102
107
|
say_new_line
|
103
108
|
say_error "Fix erros in the below command and type it again to create your cloud" , :with_exit => false
|
104
|
-
say_error "shelly add --code-name=#{@app.code_name} --databases=#{@app.databases.join} --domains=#{@app.
|
109
|
+
say_error "shelly add --code-name=#{@app.code_name} --databases=#{@app.databases.join(',')} --domains=#{@app.domains.join(',')}"
|
105
110
|
end
|
106
111
|
|
107
112
|
desc "list", "List available clouds"
|
data/lib/shelly/version.rb
CHANGED
data/shelly.gemspec
CHANGED
@@ -26,7 +26,6 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.add_runtime_dependency "wijet-thor", "~> 0.14.7"
|
27
27
|
s.add_runtime_dependency "rest-client"
|
28
28
|
s.add_runtime_dependency "json"
|
29
|
-
s.add_runtime_dependency "wijet-launchy"
|
30
29
|
s.add_runtime_dependency "progressbar"
|
31
30
|
|
32
31
|
s.files = `git ls-files`.split("\n")
|
data/spec/shelly/app_spec.rb
CHANGED
@@ -165,16 +165,6 @@ config
|
|
165
165
|
end
|
166
166
|
end
|
167
167
|
|
168
|
-
describe "#open_billing_page" do
|
169
|
-
it "should open browser window" do
|
170
|
-
user = mock(:token => "abc", :email => nil, :password => nil, :config_dir => "~/.shelly")
|
171
|
-
@app.stub(:current_user).and_return(user)
|
172
|
-
url = "#{@app.shelly.shellyapp_url}/login?api_key=abc&return_to=/apps/foo-staging/edit_billing"
|
173
|
-
Launchy.should_receive(:open).with(url)
|
174
|
-
@app.open_billing_page
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
168
|
describe "#start & #stop" do
|
179
169
|
it "should start cloud" do
|
180
170
|
@client.should_receive(:start_cloud).with("foo-staging")
|
@@ -280,7 +270,7 @@ config
|
|
280
270
|
end
|
281
271
|
end
|
282
272
|
end
|
283
|
-
|
273
|
+
|
284
274
|
describe "#redeploy" do
|
285
275
|
it "should redeploy app via API" do
|
286
276
|
@client.should_receive(:redeploy).with("foo-staging")
|
@@ -269,11 +269,11 @@ OUT
|
|
269
269
|
@app.stub(:add_git_remote)
|
270
270
|
@app.stub(:create)
|
271
271
|
@app.stub(:generate_cloudfile).and_return("Example Cloudfile")
|
272
|
-
@app.stub(:open_billing_page)
|
273
272
|
@app.stub(:git_url).and_return("git@git.shellycloud.com:foooo.git")
|
274
273
|
Shelly::App.stub(:inside_git_repository?).and_return(true)
|
275
274
|
Shelly::App.stub(:new).and_return(@app)
|
276
275
|
@client.stub(:token).and_return("abc")
|
276
|
+
@app.stub(:attributes).and_return({"trial" => false})
|
277
277
|
end
|
278
278
|
|
279
279
|
# This spec tests inside_git_repository? hook
|
@@ -311,7 +311,7 @@ OUT
|
|
311
311
|
|
312
312
|
it "should exit if databases are not valid" do
|
313
313
|
$stdout.should_receive(:puts).with("\e[31mTry 'shelly help add' for more information\e[0m")
|
314
|
-
@main.options = {"code-name" => "foo",
|
314
|
+
@main.options = {"code-name" => "foo", "databases" => ["not existing"], "domains" => ["foo.example.com"]}
|
315
315
|
lambda {
|
316
316
|
invoke(@main, :add)
|
317
317
|
}.should raise_error(SystemExit)
|
@@ -386,6 +386,28 @@ OUT
|
|
386
386
|
end
|
387
387
|
end
|
388
388
|
|
389
|
+
it "should create the app on shelly cloud and show trial information" do
|
390
|
+
@app.stub(:attributes).and_return({"trial" => true})
|
391
|
+
@client.stub(:shellyapp_url).and_return("http://example.com")
|
392
|
+
@app.should_receive(:create)
|
393
|
+
$stdout.should_receive(:puts).with(green "Billing information")
|
394
|
+
$stdout.should_receive(:puts).with("Cloud created with 20 Euro credit.")
|
395
|
+
$stdout.should_receive(:puts).with("Remember to provide billing details before trial ends.")
|
396
|
+
|
397
|
+
fake_stdin(["", ""]) do
|
398
|
+
invoke(@main, :add)
|
399
|
+
end
|
400
|
+
end
|
401
|
+
|
402
|
+
it "should create the app on shelly cloud and shouldn't show trial information" do
|
403
|
+
@app.should_receive(:create)
|
404
|
+
$stdout.should_not_receive(:puts).with(green "Billing information")
|
405
|
+
|
406
|
+
fake_stdin(["", ""]) do
|
407
|
+
invoke(@main, :add)
|
408
|
+
end
|
409
|
+
end
|
410
|
+
|
389
411
|
it "should display validation errors if they are any" do
|
390
412
|
body = {"message" => "Validation Failed", "errors" => [["code_name", "has been already taken"]]}
|
391
413
|
exception = Shelly::Client::ValidationException.new(body)
|
@@ -400,6 +422,19 @@ OUT
|
|
400
422
|
}.should raise_error(SystemExit)
|
401
423
|
end
|
402
424
|
|
425
|
+
it "should display correct domains in error message" do
|
426
|
+
body = {"message" => "Validation Failed", "errors" => [["code_name", "has been already taken"]]}
|
427
|
+
exception = Shelly::Client::ValidationException.new(body)
|
428
|
+
@app.should_receive(:create).and_raise(exception)
|
429
|
+
@main.options = {"code-name" => "foo-staging", "databases" => ["postgresql"], "domains" => ["test.example.com","test2.example.com"]}
|
430
|
+
$stdout.should_receive(:puts).with("\e[31mshelly add --code-name=foo-staging --databases=postgresql --domains=test.example.com,test2.example.com\e[0m")
|
431
|
+
lambda {
|
432
|
+
fake_stdin(["", ""]) do
|
433
|
+
invoke(@main, :add)
|
434
|
+
end
|
435
|
+
}.should raise_error(SystemExit)
|
436
|
+
end
|
437
|
+
|
403
438
|
it "should add git remote" do
|
404
439
|
$stdout.should_receive(:puts).with("\e[32mAdding remote production git@git.shellycloud.com:foooo.git\e[0m")
|
405
440
|
@app.should_receive(:add_git_remote)
|
@@ -416,14 +451,6 @@ OUT
|
|
416
451
|
File.read("/projects/foo/Cloudfile").should == "Example Cloudfile"
|
417
452
|
end
|
418
453
|
|
419
|
-
it "should browser window with link to edit billing information" do
|
420
|
-
$stdout.should_receive(:puts).with("\e[32mProvide billing details. Opening browser...\e[0m")
|
421
|
-
@app.should_receive(:open_billing_page)
|
422
|
-
fake_stdin(["foooo", ""]) do
|
423
|
-
invoke(@main, :add)
|
424
|
-
end
|
425
|
-
end
|
426
|
-
|
427
454
|
it "should display info about adding Cloudfile to repository" do
|
428
455
|
$stdout.should_receive(:puts).with("\e[32mProject is now configured for use with Shell Cloud:\e[0m")
|
429
456
|
$stdout.should_receive(:puts).with("\e[32mYou can review changes using\e[0m")
|
metadata
CHANGED
@@ -1,178 +1,190 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: shelly
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 1923832111
|
5
5
|
prerelease: 7
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 48
|
10
|
+
- pre
|
11
|
+
- 3
|
12
|
+
version: 0.0.48.pre3
|
6
13
|
platform: ruby
|
7
|
-
authors:
|
14
|
+
authors:
|
8
15
|
- Shelly Cloud team
|
9
16
|
autorequire:
|
10
17
|
bindir: bin
|
11
18
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
19
|
+
|
20
|
+
date: 2012-02-14 00:00:00 Z
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
requirement: *id001
|
33
|
+
prerelease: false
|
22
34
|
type: :development
|
35
|
+
name: rspec
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
requirement: *id002
|
23
47
|
prerelease: false
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
48
|
+
type: :development
|
26
49
|
name: rake
|
27
|
-
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
28
52
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
33
|
-
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
requirement: *id003
|
34
61
|
prerelease: false
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
62
|
+
type: :development
|
37
63
|
name: guard
|
38
|
-
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
39
66
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
requirement: *id004
|
45
75
|
prerelease: false
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
76
|
+
type: :development
|
48
77
|
name: guard-rspec
|
49
|
-
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
50
80
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
55
|
-
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
88
|
+
requirement: *id005
|
56
89
|
prerelease: false
|
57
|
-
version_requirements: *70309508218100
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
-
name: simplecov
|
60
|
-
requirement: &70309508217260 !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
|
-
requirements:
|
63
|
-
- - ! '>='
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: '0'
|
66
90
|
type: :development
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
name: ruby_gntp
|
71
|
-
requirement: &70309508216240 !ruby/object:Gem::Requirement
|
91
|
+
name: simplecov
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
72
94
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
77
|
-
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
hash: 3
|
99
|
+
segments:
|
100
|
+
- 0
|
101
|
+
version: "0"
|
102
|
+
requirement: *id006
|
78
103
|
prerelease: false
|
79
|
-
version_requirements: *70309508216240
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: rb-fsevent
|
82
|
-
requirement: &70309508214920 !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
|
-
requirements:
|
85
|
-
- - ! '>='
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: '0'
|
88
104
|
type: :development
|
89
|
-
prerelease: false
|
90
|
-
version_requirements: *70309508214920
|
91
|
-
- !ruby/object:Gem::Dependency
|
92
105
|
name: fakefs
|
93
|
-
|
106
|
+
- !ruby/object:Gem::Dependency
|
107
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
94
108
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
|
99
|
-
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
hash: 3
|
113
|
+
segments:
|
114
|
+
- 0
|
115
|
+
version: "0"
|
116
|
+
requirement: *id007
|
100
117
|
prerelease: false
|
101
|
-
version_requirements: *70309508213740
|
102
|
-
- !ruby/object:Gem::Dependency
|
103
|
-
name: fakeweb
|
104
|
-
requirement: &70309508212980 !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
118
|
type: :development
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
name: wijet-thor
|
115
|
-
requirement: &70309508211840 !ruby/object:Gem::Requirement
|
119
|
+
name: fakeweb
|
120
|
+
- !ruby/object:Gem::Dependency
|
121
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
116
122
|
none: false
|
117
|
-
requirements:
|
123
|
+
requirements:
|
118
124
|
- - ~>
|
119
|
-
- !ruby/object:Gem::Version
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
hash: 41
|
127
|
+
segments:
|
128
|
+
- 0
|
129
|
+
- 14
|
130
|
+
- 7
|
120
131
|
version: 0.14.7
|
132
|
+
requirement: *id008
|
133
|
+
prerelease: false
|
121
134
|
type: :runtime
|
135
|
+
name: wijet-thor
|
136
|
+
- !ruby/object:Gem::Dependency
|
137
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
hash: 3
|
143
|
+
segments:
|
144
|
+
- 0
|
145
|
+
version: "0"
|
146
|
+
requirement: *id009
|
122
147
|
prerelease: false
|
123
|
-
|
124
|
-
- !ruby/object:Gem::Dependency
|
148
|
+
type: :runtime
|
125
149
|
name: rest-client
|
126
|
-
|
150
|
+
- !ruby/object:Gem::Dependency
|
151
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
127
152
|
none: false
|
128
|
-
requirements:
|
129
|
-
- -
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
|
132
|
-
|
153
|
+
requirements:
|
154
|
+
- - ">="
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
hash: 3
|
157
|
+
segments:
|
158
|
+
- 0
|
159
|
+
version: "0"
|
160
|
+
requirement: *id010
|
133
161
|
prerelease: false
|
134
|
-
|
135
|
-
- !ruby/object:Gem::Dependency
|
162
|
+
type: :runtime
|
136
163
|
name: json
|
137
|
-
|
164
|
+
- !ruby/object:Gem::Dependency
|
165
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
138
166
|
none: false
|
139
|
-
requirements:
|
140
|
-
- -
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
|
143
|
-
|
167
|
+
requirements:
|
168
|
+
- - ">="
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
hash: 3
|
171
|
+
segments:
|
172
|
+
- 0
|
173
|
+
version: "0"
|
174
|
+
requirement: *id011
|
144
175
|
prerelease: false
|
145
|
-
version_requirements: *70309508192980
|
146
|
-
- !ruby/object:Gem::Dependency
|
147
|
-
name: wijet-launchy
|
148
|
-
requirement: &70309508192020 !ruby/object:Gem::Requirement
|
149
|
-
none: false
|
150
|
-
requirements:
|
151
|
-
- - ! '>='
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: '0'
|
154
176
|
type: :runtime
|
155
|
-
prerelease: false
|
156
|
-
version_requirements: *70309508192020
|
157
|
-
- !ruby/object:Gem::Dependency
|
158
177
|
name: progressbar
|
159
|
-
requirement: &70309508190980 !ruby/object:Gem::Requirement
|
160
|
-
none: false
|
161
|
-
requirements:
|
162
|
-
- - ! '>='
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
version: '0'
|
165
|
-
type: :runtime
|
166
|
-
prerelease: false
|
167
|
-
version_requirements: *70309508190980
|
168
178
|
description: Tool for managing applications and clouds at shellycloud.com
|
169
|
-
email:
|
179
|
+
email:
|
170
180
|
- support@shellycloud.com
|
171
|
-
executables:
|
181
|
+
executables:
|
172
182
|
- shelly
|
173
183
|
extensions: []
|
184
|
+
|
174
185
|
extra_rdoc_files: []
|
175
|
-
|
186
|
+
|
187
|
+
files:
|
176
188
|
- .gitignore
|
177
189
|
- .travis.yml
|
178
190
|
- Gemfile
|
@@ -224,43 +236,38 @@ files:
|
|
224
236
|
- spec/thor/options_spec.rb
|
225
237
|
homepage: http://shellycloud.com
|
226
238
|
licenses: []
|
239
|
+
|
227
240
|
post_install_message:
|
228
241
|
rdoc_options: []
|
229
|
-
|
242
|
+
|
243
|
+
require_paths:
|
230
244
|
- lib
|
231
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
245
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
232
246
|
none: false
|
233
|
-
requirements:
|
234
|
-
- -
|
235
|
-
- !ruby/object:Gem::Version
|
236
|
-
|
237
|
-
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
hash: 3
|
251
|
+
segments:
|
252
|
+
- 0
|
253
|
+
version: "0"
|
254
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
255
|
none: false
|
239
|
-
requirements:
|
240
|
-
- -
|
241
|
-
- !ruby/object:Gem::Version
|
256
|
+
requirements:
|
257
|
+
- - ">"
|
258
|
+
- !ruby/object:Gem::Version
|
259
|
+
hash: 25
|
260
|
+
segments:
|
261
|
+
- 1
|
262
|
+
- 3
|
263
|
+
- 1
|
242
264
|
version: 1.3.1
|
243
265
|
requirements: []
|
266
|
+
|
244
267
|
rubyforge_project: shelly
|
245
268
|
rubygems_version: 1.8.10
|
246
269
|
signing_key:
|
247
270
|
specification_version: 3
|
248
271
|
summary: Shelly Cloud command line tool
|
249
|
-
test_files:
|
250
|
-
|
251
|
-
- spec/input_faker.rb
|
252
|
-
- spec/shelly/app_spec.rb
|
253
|
-
- spec/shelly/backup_spec.rb
|
254
|
-
- spec/shelly/cli/backup_spec.rb
|
255
|
-
- spec/shelly/cli/config_spec.rb
|
256
|
-
- spec/shelly/cli/deploys_spec.rb
|
257
|
-
- spec/shelly/cli/main_spec.rb
|
258
|
-
- spec/shelly/cli/runner_spec.rb
|
259
|
-
- spec/shelly/cli/user_spec.rb
|
260
|
-
- spec/shelly/client_spec.rb
|
261
|
-
- spec/shelly/cloudfile_spec.rb
|
262
|
-
- spec/shelly/download_progress_bar_spec.rb
|
263
|
-
- spec/shelly/model_spec.rb
|
264
|
-
- spec/shelly/user_spec.rb
|
265
|
-
- spec/spec_helper.rb
|
266
|
-
- spec/thor/options_spec.rb
|
272
|
+
test_files: []
|
273
|
+
|