shelly 0.0.37 → 0.0.38
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.rb +4 -0
- data/lib/shelly/app.rb +14 -7
- data/lib/shelly/cli/backup.rb +3 -3
- data/lib/shelly/cli/command.rb +2 -0
- data/lib/shelly/cli/config.rb +8 -15
- data/lib/shelly/cli/deploys.rb +3 -3
- data/lib/shelly/cli/main.rb +7 -15
- data/lib/shelly/cli/runner.rb +2 -2
- data/lib/shelly/cli/user.rb +5 -5
- data/lib/shelly/client.rb +4 -4
- data/lib/shelly/helpers.rb +8 -1
- data/lib/shelly/version.rb +1 -1
- data/lib/thor/thor.rb +28 -0
- data/spec/helpers.rb +4 -0
- data/spec/shelly/app_spec.rb +24 -7
- data/spec/shelly/cli/backup_spec.rb +20 -17
- data/spec/shelly/cli/config_spec.rb +37 -36
- data/spec/shelly/cli/deploys_spec.rb +14 -11
- data/spec/shelly/cli/main_spec.rb +85 -107
- data/spec/shelly/cli/runner_spec.rb +9 -1
- data/spec/shelly/cli/user_spec.rb +25 -12
- data/spec/shelly/client_spec.rb +7 -6
- data/spec/shelly/cloudfile_spec.rb +11 -0
- metadata +151 -158
@@ -3,6 +3,7 @@ require "shelly/cli/runner"
|
|
3
3
|
|
4
4
|
describe Shelly::CLI::Runner do
|
5
5
|
before do
|
6
|
+
ENV['SHELLY_DEBUG'] = "false"
|
6
7
|
@runner = Shelly::CLI::Runner.new(%w(version --debug))
|
7
8
|
end
|
8
9
|
|
@@ -21,8 +22,15 @@ describe Shelly::CLI::Runner do
|
|
21
22
|
it "should be true if args include --debug option" do
|
22
23
|
@runner.should be_debug
|
23
24
|
end
|
25
|
+
|
26
|
+
it "should be true if SHELLY_DEBUG is set to true" do
|
27
|
+
runner = Shelly::CLI::Runner.new
|
28
|
+
runner.should_not be_debug
|
29
|
+
ENV['SHELLY_DEBUG'] = "true"
|
30
|
+
runner.should be_debug
|
31
|
+
end
|
24
32
|
|
25
|
-
it "should be
|
33
|
+
it "should be false if args doesn't include --debug option" do
|
26
34
|
runner = Shelly::CLI::Runner.new(%w(version))
|
27
35
|
runner.should_not be_debug
|
28
36
|
end
|
@@ -5,11 +5,13 @@ describe Shelly::CLI::User do
|
|
5
5
|
before do
|
6
6
|
FileUtils.stub(:chmod)
|
7
7
|
@cli_user = Shelly::CLI::User.new
|
8
|
+
Shelly::CLI::User.stub(:new).and_return(@cli_user)
|
8
9
|
@client = mock
|
9
10
|
Shelly::Client.stub(:new).and_return(@client)
|
10
11
|
Shelly::User.stub(:guess_email).and_return("")
|
11
12
|
$stdout.stub(:puts)
|
12
13
|
$stdout.stub(:print)
|
14
|
+
@client.stub(:token).and_return("abc")
|
13
15
|
end
|
14
16
|
|
15
17
|
describe "#help" do
|
@@ -17,7 +19,7 @@ describe Shelly::CLI::User do
|
|
17
19
|
$stdout.should_receive(:puts).with("Tasks:")
|
18
20
|
$stdout.should_receive(:puts).with(/add \[EMAIL\]\s+# Add new developer to clouds defined in Cloudfile/)
|
19
21
|
$stdout.should_receive(:puts).with(/list\s+# List users with access to clouds defined in Cloudfile/)
|
20
|
-
@cli_user
|
22
|
+
invoke(@cli_user, :help)
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
@@ -35,7 +37,7 @@ describe Shelly::CLI::User do
|
|
35
37
|
Shelly::App.stub(:inside_git_repository?).and_return(false)
|
36
38
|
$stdout.should_receive(:puts).with("\e[31mMust be run inside your project git repository\e[0m")
|
37
39
|
lambda {
|
38
|
-
@cli_user
|
40
|
+
invoke(@cli_user, :list)
|
39
41
|
}.should raise_error(SystemExit)
|
40
42
|
end
|
41
43
|
|
@@ -43,7 +45,18 @@ describe Shelly::CLI::User do
|
|
43
45
|
File.delete("Cloudfile")
|
44
46
|
$stdout.should_receive(:puts).with("\e[31mNo Cloudfile found\e[0m")
|
45
47
|
lambda {
|
46
|
-
@cli_user
|
48
|
+
invoke(@cli_user, :list)
|
49
|
+
}.should raise_error(SystemExit)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should exit if user is not logged in" do
|
53
|
+
response = {"message" => "Unauthorized", "url" => "https://admin.winniecloud.com/users/password/new"}
|
54
|
+
exception = Shelly::Client::APIError.new(response.to_json, 404)
|
55
|
+
@client.stub(:token).and_raise(exception)
|
56
|
+
$stdout.should_receive(:puts).with(red "You are not logged in. To log in use:")
|
57
|
+
$stdout.should_receive(:puts).with(" shelly login")
|
58
|
+
lambda {
|
59
|
+
invoke(@cli_user, :list)
|
47
60
|
}.should raise_error(SystemExit)
|
48
61
|
end
|
49
62
|
|
@@ -51,14 +64,14 @@ describe Shelly::CLI::User do
|
|
51
64
|
it "should receive clouds from the Cloudfile" do
|
52
65
|
@client.stub(:app_users).and_return(response)
|
53
66
|
@cloudfile.should_receive(:clouds).and_return(["foo-staging", "foo-production"])
|
54
|
-
@cli_user
|
67
|
+
invoke(@cli_user, :list)
|
55
68
|
end
|
56
69
|
|
57
70
|
it "should display clouds and users" do
|
58
71
|
@client.stub(:app_users).and_return(response)
|
59
72
|
$stdout.should_receive(:puts).with("Cloud foo-production:")
|
60
73
|
$stdout.should_receive(:puts).with(" user@example.com")
|
61
|
-
@cli_user
|
74
|
+
invoke(@cli_user, :list)
|
62
75
|
end
|
63
76
|
end
|
64
77
|
|
@@ -72,7 +85,7 @@ describe Shelly::CLI::User do
|
|
72
85
|
exception = Shelly::Client::APIError.new(response.to_json, 404)
|
73
86
|
@client.stub(:app_users).and_raise(exception)
|
74
87
|
$stdout.should_receive(:puts).with(red "You have no access to 'foo-staging' cloud defined in Cloudfile")
|
75
|
-
@cli_user
|
88
|
+
invoke(@cli_user, :list)
|
76
89
|
end
|
77
90
|
end
|
78
91
|
end
|
@@ -93,7 +106,7 @@ describe Shelly::CLI::User do
|
|
93
106
|
File.delete("Cloudfile")
|
94
107
|
$stdout.should_receive(:puts).with("\e[31mNo Cloudfile found\e[0m")
|
95
108
|
lambda {
|
96
|
-
@cli_user
|
109
|
+
invoke(@cli_user, :add)
|
97
110
|
}.should raise_error(SystemExit)
|
98
111
|
end
|
99
112
|
|
@@ -101,7 +114,7 @@ describe Shelly::CLI::User do
|
|
101
114
|
Shelly::App.stub(:inside_git_repository?).and_return(false)
|
102
115
|
$stdout.should_receive(:puts).with("\e[31mMust be run inside your project git repository\e[0m")
|
103
116
|
lambda {
|
104
|
-
@cli_user
|
117
|
+
invoke(@cli_user, :add)
|
105
118
|
}.should raise_error(SystemExit)
|
106
119
|
end
|
107
120
|
|
@@ -113,17 +126,17 @@ describe Shelly::CLI::User do
|
|
113
126
|
|
114
127
|
it "should ask about email" do
|
115
128
|
fake_stdin(["megan@example.com"]) do
|
116
|
-
@cli_user
|
129
|
+
invoke(@cli_user, :add)
|
117
130
|
end
|
118
131
|
end
|
119
132
|
|
120
133
|
it "should receive clouds from the Cloudfile" do
|
121
|
-
@cli_user
|
134
|
+
invoke(@cli_user, :add, "megan@example.com")
|
122
135
|
end
|
123
136
|
|
124
137
|
it "should receive clouds from the Cloudfile" do
|
125
138
|
$stdout.should_receive(:puts).with("\e[32mSending invitation to megan@example.com to work on foo-production\e[0m")
|
126
|
-
@cli_user
|
139
|
+
invoke(@cli_user, :add, "megan@example.com")
|
127
140
|
end
|
128
141
|
end
|
129
142
|
|
@@ -133,7 +146,7 @@ describe Shelly::CLI::User do
|
|
133
146
|
exception = Shelly::Client::APIError.new(response.to_json, 404)
|
134
147
|
@client.stub(:send_invitation).and_raise(exception)
|
135
148
|
$stdout.should_receive(:puts).with(red "You have no access to 'foo-staging' cloud defined in Cloudfile")
|
136
|
-
@cli_user
|
149
|
+
invoke(@cli_user, :add, "megan@example.com")
|
137
150
|
end
|
138
151
|
end
|
139
152
|
end
|
data/spec/shelly/client_spec.rb
CHANGED
@@ -167,12 +167,13 @@ describe Shelly::Client do
|
|
167
167
|
response.should == [{"email" => "test@example.com"}, {"email" => "test2@example.com"}]
|
168
168
|
end
|
169
169
|
end
|
170
|
-
|
171
|
-
describe "#
|
172
|
-
it "should
|
173
|
-
FakeWeb.register_uri(:get, api_url("apps/staging-foo
|
174
|
-
|
175
|
-
response
|
170
|
+
|
171
|
+
describe "#app" do
|
172
|
+
it "should fetch app from API" do
|
173
|
+
FakeWeb.register_uri(:get, api_url("apps/staging-foo"),
|
174
|
+
:body => {:web_server_ip => "192.0.2.1", :mail_server_ip => "192.0.2.3"}.to_json)
|
175
|
+
response = @client.app("staging-foo")
|
176
|
+
response.should == {"web_server_ip" => "192.0.2.1", "mail_server_ip" => "192.0.2.3"}
|
176
177
|
end
|
177
178
|
end
|
178
179
|
|
@@ -22,4 +22,15 @@ describe Shelly::Cloudfile do
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
+
it "should allow improper yaml that works with syck" do
|
26
|
+
yaml = %Q{domains:
|
27
|
+
- *.example.com
|
28
|
+
- example.com
|
29
|
+
}
|
30
|
+
expect {
|
31
|
+
yaml = YAML.load(yaml)
|
32
|
+
}.to_not raise_error
|
33
|
+
yaml.should == {"domains" => ["*.example.com", "example.com"]}
|
34
|
+
end
|
35
|
+
|
25
36
|
end
|
metadata
CHANGED
@@ -1,188 +1,167 @@
|
|
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
|
+
version: 0.0.38
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 37
|
10
|
-
version: 0.0.37
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Shelly Cloud team
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-12-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rspec
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70097785241300 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :development
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: rake
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: *70097785241300
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &70097785240660 !ruby/object:Gem::Requirement
|
38
28
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
46
33
|
type: :development
|
47
|
-
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: guard
|
50
34
|
prerelease: false
|
51
|
-
|
35
|
+
version_requirements: *70097785240660
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: guard
|
38
|
+
requirement: &70097785239600 !ruby/object:Gem::Requirement
|
52
39
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
60
44
|
type: :development
|
61
|
-
|
62
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70097785239600
|
47
|
+
- !ruby/object:Gem::Dependency
|
63
48
|
name: guard-rspec
|
49
|
+
requirement: &70097785238660 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
64
56
|
prerelease: false
|
65
|
-
|
57
|
+
version_requirements: *70097785238660
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: growl_notify
|
60
|
+
requirement: &70097785238000 !ruby/object:Gem::Requirement
|
66
61
|
none: false
|
67
|
-
requirements:
|
68
|
-
- -
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
|
71
|
-
segments:
|
72
|
-
- 0
|
73
|
-
version: "0"
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
74
66
|
type: :development
|
75
|
-
version_requirements: *id004
|
76
|
-
- !ruby/object:Gem::Dependency
|
77
|
-
name: fakefs
|
78
67
|
prerelease: false
|
79
|
-
|
68
|
+
version_requirements: *70097785238000
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rb-fsevent
|
71
|
+
requirement: &70097785237460 !ruby/object:Gem::Requirement
|
80
72
|
none: false
|
81
|
-
requirements:
|
82
|
-
- -
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70097785237460
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: fakefs
|
82
|
+
requirement: &70097785236940 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
88
|
type: :development
|
89
|
-
version_requirements: *id005
|
90
|
-
- !ruby/object:Gem::Dependency
|
91
|
-
name: fakeweb
|
92
89
|
prerelease: false
|
93
|
-
|
90
|
+
version_requirements: *70097785236940
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: fakeweb
|
93
|
+
requirement: &70097785236460 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
|
99
|
-
segments:
|
100
|
-
- 0
|
101
|
-
version: "0"
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
102
99
|
type: :development
|
103
|
-
version_requirements: *id006
|
104
|
-
- !ruby/object:Gem::Dependency
|
105
|
-
name: wijet-thor
|
106
100
|
prerelease: false
|
107
|
-
|
101
|
+
version_requirements: *70097785236460
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: wijet-thor
|
104
|
+
requirement: &70097785235820 !ruby/object:Gem::Requirement
|
108
105
|
none: false
|
109
|
-
requirements:
|
106
|
+
requirements:
|
110
107
|
- - ~>
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
hash: 41
|
113
|
-
segments:
|
114
|
-
- 0
|
115
|
-
- 14
|
116
|
-
- 7
|
108
|
+
- !ruby/object:Gem::Version
|
117
109
|
version: 0.14.7
|
118
110
|
type: :runtime
|
119
|
-
version_requirements: *id007
|
120
|
-
- !ruby/object:Gem::Dependency
|
121
|
-
name: rest-client
|
122
111
|
prerelease: false
|
123
|
-
|
112
|
+
version_requirements: *70097785235820
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: rest-client
|
115
|
+
requirement: &70097785235340 !ruby/object:Gem::Requirement
|
124
116
|
none: false
|
125
|
-
requirements:
|
126
|
-
- -
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
|
129
|
-
segments:
|
130
|
-
- 0
|
131
|
-
version: "0"
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
132
121
|
type: :runtime
|
133
|
-
version_requirements: *id008
|
134
|
-
- !ruby/object:Gem::Dependency
|
135
|
-
name: json
|
136
122
|
prerelease: false
|
137
|
-
|
123
|
+
version_requirements: *70097785235340
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: json
|
126
|
+
requirement: &70097785234800 !ruby/object:Gem::Requirement
|
138
127
|
none: false
|
139
|
-
requirements:
|
140
|
-
- -
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
|
143
|
-
segments:
|
144
|
-
- 0
|
145
|
-
version: "0"
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
146
132
|
type: :runtime
|
147
|
-
version_requirements: *id009
|
148
|
-
- !ruby/object:Gem::Dependency
|
149
|
-
name: wijet-launchy
|
150
133
|
prerelease: false
|
151
|
-
|
134
|
+
version_requirements: *70097785234800
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: wijet-launchy
|
137
|
+
requirement: &70097785234140 !ruby/object:Gem::Requirement
|
152
138
|
none: false
|
153
|
-
requirements:
|
154
|
-
- -
|
155
|
-
- !ruby/object:Gem::Version
|
156
|
-
|
157
|
-
segments:
|
158
|
-
- 0
|
159
|
-
version: "0"
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
160
143
|
type: :runtime
|
161
|
-
version_requirements: *id010
|
162
|
-
- !ruby/object:Gem::Dependency
|
163
|
-
name: progressbar
|
164
144
|
prerelease: false
|
165
|
-
|
145
|
+
version_requirements: *70097785234140
|
146
|
+
- !ruby/object:Gem::Dependency
|
147
|
+
name: progressbar
|
148
|
+
requirement: &70097785233260 !ruby/object:Gem::Requirement
|
166
149
|
none: false
|
167
|
-
requirements:
|
168
|
-
- -
|
169
|
-
- !ruby/object:Gem::Version
|
170
|
-
|
171
|
-
segments:
|
172
|
-
- 0
|
173
|
-
version: "0"
|
150
|
+
requirements:
|
151
|
+
- - ! '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
174
154
|
type: :runtime
|
175
|
-
|
155
|
+
prerelease: false
|
156
|
+
version_requirements: *70097785233260
|
176
157
|
description: Tool for managing applications and clouds at shellycloud.com
|
177
|
-
email:
|
158
|
+
email:
|
178
159
|
- support@shellycloud.com
|
179
|
-
executables:
|
160
|
+
executables:
|
180
161
|
- shelly
|
181
162
|
extensions: []
|
182
|
-
|
183
163
|
extra_rdoc_files: []
|
184
|
-
|
185
|
-
files:
|
164
|
+
files:
|
186
165
|
- .gitignore
|
187
166
|
- .travis.yml
|
188
167
|
- Gemfile
|
@@ -213,6 +192,7 @@ files:
|
|
213
192
|
- lib/thor/arguments.rb
|
214
193
|
- lib/thor/basic.rb
|
215
194
|
- lib/thor/options.rb
|
195
|
+
- lib/thor/thor.rb
|
216
196
|
- shelly.gemspec
|
217
197
|
- spec/helpers.rb
|
218
198
|
- spec/input_faker.rb
|
@@ -233,36 +213,49 @@ files:
|
|
233
213
|
- spec/thor/options_spec.rb
|
234
214
|
homepage: http://shellycloud.com
|
235
215
|
licenses: []
|
236
|
-
|
237
216
|
post_install_message:
|
238
217
|
rdoc_options: []
|
239
|
-
|
240
|
-
require_paths:
|
218
|
+
require_paths:
|
241
219
|
- lib
|
242
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
220
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
243
221
|
none: false
|
244
|
-
requirements:
|
245
|
-
- -
|
246
|
-
- !ruby/object:Gem::Version
|
247
|
-
|
248
|
-
segments:
|
222
|
+
requirements:
|
223
|
+
- - ! '>='
|
224
|
+
- !ruby/object:Gem::Version
|
225
|
+
version: '0'
|
226
|
+
segments:
|
249
227
|
- 0
|
250
|
-
|
251
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
228
|
+
hash: -2891070154681735828
|
229
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
252
230
|
none: false
|
253
|
-
requirements:
|
254
|
-
- -
|
255
|
-
- !ruby/object:Gem::Version
|
256
|
-
|
257
|
-
segments:
|
231
|
+
requirements:
|
232
|
+
- - ! '>='
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: '0'
|
235
|
+
segments:
|
258
236
|
- 0
|
259
|
-
|
237
|
+
hash: -2891070154681735828
|
260
238
|
requirements: []
|
261
|
-
|
262
239
|
rubyforge_project: shelly
|
263
|
-
rubygems_version: 1.8.
|
240
|
+
rubygems_version: 1.8.11
|
264
241
|
signing_key:
|
265
242
|
specification_version: 3
|
266
243
|
summary: Shelly Cloud command line tool
|
267
|
-
test_files:
|
268
|
-
|
244
|
+
test_files:
|
245
|
+
- spec/helpers.rb
|
246
|
+
- spec/input_faker.rb
|
247
|
+
- spec/shelly/app_spec.rb
|
248
|
+
- spec/shelly/backup_spec.rb
|
249
|
+
- spec/shelly/cli/backup_spec.rb
|
250
|
+
- spec/shelly/cli/config_spec.rb
|
251
|
+
- spec/shelly/cli/deploys_spec.rb
|
252
|
+
- spec/shelly/cli/main_spec.rb
|
253
|
+
- spec/shelly/cli/runner_spec.rb
|
254
|
+
- spec/shelly/cli/user_spec.rb
|
255
|
+
- spec/shelly/client_spec.rb
|
256
|
+
- spec/shelly/cloudfile_spec.rb
|
257
|
+
- spec/shelly/download_progress_bar_spec.rb
|
258
|
+
- spec/shelly/model_spec.rb
|
259
|
+
- spec/shelly/user_spec.rb
|
260
|
+
- spec/spec_helper.rb
|
261
|
+
- spec/thor/options_spec.rb
|