shelly 0.0.10 → 0.0.11
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 +5 -1
- data/lib/shelly/cli/main.rb +130 -6
- data/lib/shelly/client.rb +11 -10
- data/lib/shelly/user.rb +13 -0
- data/lib/shelly/version.rb +1 -1
- data/spec/shelly/app_spec.rb +13 -0
- data/spec/shelly/cli/main_spec.rb +354 -20
- data/spec/shelly/client_spec.rb +14 -33
- data/spec/shelly/user_spec.rb +35 -0
- metadata +111 -169
- data/lib/shelly/cli/account.rb +0 -61
- data/lib/shelly/cli/apps.rb +0 -90
- data/spec/shelly/cli/account_spec.rb +0 -128
- data/spec/shelly/cli/apps_spec.rb +0 -192
data/spec/shelly/client_spec.rb
CHANGED
@@ -45,6 +45,13 @@ describe Shelly::Client do
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
+
describe "#update_ssh_key" do
|
49
|
+
it "should send put with give SSH key" do
|
50
|
+
@client.should_receive(:put).with("/ssh_key", {:ssh_key => "abc"})
|
51
|
+
@client.update_ssh_key("abc")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
48
55
|
describe "#request_parameters" do
|
49
56
|
it "should return hash of resquest parameters" do
|
50
57
|
expected = {
|
@@ -100,27 +107,6 @@ describe Shelly::Client do
|
|
100
107
|
@client.get('/account')
|
101
108
|
end
|
102
109
|
|
103
|
-
context "on 302 response code" do
|
104
|
-
it "should raise UnauthorizedException" do
|
105
|
-
@response.stub(:code).and_return(302)
|
106
|
-
lambda {
|
107
|
-
@client.get("/account")
|
108
|
-
}.should raise_error(Shelly::Client::UnauthorizedException)
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
context "on 406 response code" do
|
113
|
-
it "should raise UnauthorizedException" do
|
114
|
-
exception = RestClient::RequestFailed.new
|
115
|
-
exception.stub(:http_code).and_return(406)
|
116
|
-
@response.should_receive(:return!).and_raise(exception)
|
117
|
-
|
118
|
-
lambda {
|
119
|
-
@client.get("/account")
|
120
|
-
}.should raise_error(Shelly::Client::UnauthorizedException)
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
110
|
%w(404 422 500).each do |code|
|
125
111
|
context "on #{code} response code" do
|
126
112
|
it "should raise APIError" do
|
@@ -133,18 +119,6 @@ describe Shelly::Client do
|
|
133
119
|
end
|
134
120
|
end
|
135
121
|
end
|
136
|
-
|
137
|
-
context "on unsupported response code" do
|
138
|
-
it "should raise UnsupportedResponseException exception" do
|
139
|
-
exception = RestClient::RequestFailed.new
|
140
|
-
exception.stub(:http_code).and_return(409)
|
141
|
-
@response.should_receive(:return!).and_raise(exception)
|
142
|
-
|
143
|
-
lambda {
|
144
|
-
@client.get("/account")
|
145
|
-
}.should raise_error(Shelly::Client::UnsupportedResponseException)
|
146
|
-
end
|
147
|
-
end
|
148
122
|
end
|
149
123
|
|
150
124
|
describe "#headers" do
|
@@ -171,4 +145,11 @@ describe Shelly::Client do
|
|
171
145
|
@client.post("/account", :name => "pink-one")
|
172
146
|
end
|
173
147
|
end
|
148
|
+
|
149
|
+
describe "#put" do
|
150
|
+
it "should make PUT resquest to given path with parameters" do
|
151
|
+
@client.should_receive(:request).with("/account", :put, :name => "new-one")
|
152
|
+
@client.put("/account", :name => "new-one")
|
153
|
+
end
|
154
|
+
end
|
174
155
|
end
|
data/spec/shelly/user_spec.rb
CHANGED
@@ -105,4 +105,39 @@ describe Shelly::User do
|
|
105
105
|
@user.should_not be_ssh_key_exists
|
106
106
|
end
|
107
107
|
end
|
108
|
+
|
109
|
+
describe "#upload_ssh_key" do
|
110
|
+
it "should read and upload user's public SSH key" do
|
111
|
+
@client.should_receive(:update_ssh_key).with("ssh-key AAbbcc")
|
112
|
+
@user.upload_ssh_key
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe "#login" do
|
117
|
+
before do
|
118
|
+
@client.stub(:token)
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should try to login with given credentials" do
|
122
|
+
@client.should_receive(:token)
|
123
|
+
@user.login
|
124
|
+
end
|
125
|
+
|
126
|
+
context "on successful authentication" do
|
127
|
+
it "should save user's credentials" do
|
128
|
+
@user.should_receive(:save_credentials)
|
129
|
+
@user.login
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
context "on unsuccessful authentication" do
|
134
|
+
it "should not save credentials" do
|
135
|
+
@client.stub(:token).and_raise(RestClient::Unauthorized.new)
|
136
|
+
@client.should_not_receive(:save_credentials)
|
137
|
+
lambda {
|
138
|
+
@user.login
|
139
|
+
}.should raise_error
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
108
143
|
end
|
metadata
CHANGED
@@ -1,187 +1,145 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: shelly
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 10
|
10
|
-
version: 0.0.10
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.11
|
5
|
+
prerelease:
|
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
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-10-11 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: rspec
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &2153530860 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
33
22
|
type: :development
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: rake
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: *2153530860
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &2153530320 !ruby/object:Gem::Requirement
|
39
28
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 0
|
46
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
47
33
|
type: :development
|
48
|
-
version_requirements: *id002
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: guard
|
51
34
|
prerelease: false
|
52
|
-
|
35
|
+
version_requirements: *2153530320
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: guard
|
38
|
+
requirement: &2153529900 !ruby/object:Gem::Requirement
|
53
39
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
segments:
|
59
|
-
- 0
|
60
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
61
44
|
type: :development
|
62
|
-
version_requirements: *id003
|
63
|
-
- !ruby/object:Gem::Dependency
|
64
|
-
name: guard-rspec
|
65
45
|
prerelease: false
|
66
|
-
|
46
|
+
version_requirements: *2153529900
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: guard-rspec
|
49
|
+
requirement: &2153529360 !ruby/object:Gem::Requirement
|
67
50
|
none: false
|
68
|
-
requirements:
|
69
|
-
- -
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
|
72
|
-
segments:
|
73
|
-
- 0
|
74
|
-
version: "0"
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
75
55
|
type: :development
|
76
|
-
version_requirements: *id004
|
77
|
-
- !ruby/object:Gem::Dependency
|
78
|
-
name: growl_notify
|
79
56
|
prerelease: false
|
80
|
-
|
57
|
+
version_requirements: *2153529360
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: growl_notify
|
60
|
+
requirement: &2153528780 !ruby/object:Gem::Requirement
|
81
61
|
none: false
|
82
|
-
requirements:
|
83
|
-
- -
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
86
|
-
segments:
|
87
|
-
- 0
|
88
|
-
version: "0"
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
89
66
|
type: :development
|
90
|
-
version_requirements: *id005
|
91
|
-
- !ruby/object:Gem::Dependency
|
92
|
-
name: rb-fsevent
|
93
67
|
prerelease: false
|
94
|
-
|
68
|
+
version_requirements: *2153528780
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rb-fsevent
|
71
|
+
requirement: &2153528240 !ruby/object:Gem::Requirement
|
95
72
|
none: false
|
96
|
-
requirements:
|
97
|
-
- -
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
|
100
|
-
segments:
|
101
|
-
- 0
|
102
|
-
version: "0"
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
103
77
|
type: :development
|
104
|
-
version_requirements: *id006
|
105
|
-
- !ruby/object:Gem::Dependency
|
106
|
-
name: fakefs
|
107
78
|
prerelease: false
|
108
|
-
|
79
|
+
version_requirements: *2153528240
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: fakefs
|
82
|
+
requirement: &2153527700 !ruby/object:Gem::Requirement
|
109
83
|
none: false
|
110
|
-
requirements:
|
111
|
-
- -
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
|
114
|
-
segments:
|
115
|
-
- 0
|
116
|
-
version: "0"
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
117
88
|
type: :development
|
118
|
-
version_requirements: *id007
|
119
|
-
- !ruby/object:Gem::Dependency
|
120
|
-
name: thor
|
121
89
|
prerelease: false
|
122
|
-
|
90
|
+
version_requirements: *2153527700
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: thor
|
93
|
+
requirement: &2153527140 !ruby/object:Gem::Requirement
|
123
94
|
none: false
|
124
|
-
requirements:
|
125
|
-
- -
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
|
128
|
-
segments:
|
129
|
-
- 0
|
130
|
-
version: "0"
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
131
99
|
type: :runtime
|
132
|
-
version_requirements: *id008
|
133
|
-
- !ruby/object:Gem::Dependency
|
134
|
-
name: rest-client
|
135
100
|
prerelease: false
|
136
|
-
|
101
|
+
version_requirements: *2153527140
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: rest-client
|
104
|
+
requirement: &2153526720 !ruby/object:Gem::Requirement
|
137
105
|
none: false
|
138
|
-
requirements:
|
139
|
-
- -
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
|
142
|
-
segments:
|
143
|
-
- 0
|
144
|
-
version: "0"
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
145
110
|
type: :runtime
|
146
|
-
version_requirements: *id009
|
147
|
-
- !ruby/object:Gem::Dependency
|
148
|
-
name: json
|
149
111
|
prerelease: false
|
150
|
-
|
112
|
+
version_requirements: *2153526720
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: json
|
115
|
+
requirement: &2153526180 !ruby/object:Gem::Requirement
|
151
116
|
none: false
|
152
|
-
requirements:
|
153
|
-
- -
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
|
156
|
-
segments:
|
157
|
-
- 0
|
158
|
-
version: "0"
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
159
121
|
type: :runtime
|
160
|
-
version_requirements: *id010
|
161
|
-
- !ruby/object:Gem::Dependency
|
162
|
-
name: launchy
|
163
122
|
prerelease: false
|
164
|
-
|
123
|
+
version_requirements: *2153526180
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: launchy
|
126
|
+
requirement: &2153525660 !ruby/object:Gem::Requirement
|
165
127
|
none: false
|
166
|
-
requirements:
|
167
|
-
- -
|
168
|
-
- !ruby/object:Gem::Version
|
169
|
-
|
170
|
-
segments:
|
171
|
-
- 0
|
172
|
-
version: "0"
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
173
132
|
type: :runtime
|
174
|
-
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: *2153525660
|
175
135
|
description: Tool for managing applications and clouds at shellycloud.com
|
176
|
-
email:
|
136
|
+
email:
|
177
137
|
- support@shellycloud.com
|
178
|
-
executables:
|
138
|
+
executables:
|
179
139
|
- shelly
|
180
140
|
extensions: []
|
181
|
-
|
182
141
|
extra_rdoc_files: []
|
183
|
-
|
184
|
-
files:
|
142
|
+
files:
|
185
143
|
- .gitignore
|
186
144
|
- .travis.yml
|
187
145
|
- Gemfile
|
@@ -193,8 +151,6 @@ files:
|
|
193
151
|
- lib/shelly.rb
|
194
152
|
- lib/shelly/app.rb
|
195
153
|
- lib/shelly/base.rb
|
196
|
-
- lib/shelly/cli/account.rb
|
197
|
-
- lib/shelly/cli/apps.rb
|
198
154
|
- lib/shelly/cli/main.rb
|
199
155
|
- lib/shelly/client.rb
|
200
156
|
- lib/shelly/helpers.rb
|
@@ -206,53 +162,39 @@ files:
|
|
206
162
|
- spec/input_faker.rb
|
207
163
|
- spec/shelly/app_spec.rb
|
208
164
|
- spec/shelly/base_spec.rb
|
209
|
-
- spec/shelly/cli/account_spec.rb
|
210
|
-
- spec/shelly/cli/apps_spec.rb
|
211
165
|
- spec/shelly/cli/main_spec.rb
|
212
166
|
- spec/shelly/client_spec.rb
|
213
167
|
- spec/shelly/user_spec.rb
|
214
168
|
- spec/spec_helper.rb
|
215
|
-
has_rdoc: true
|
216
169
|
homepage: http://shellycloud.com
|
217
170
|
licenses: []
|
218
|
-
|
219
171
|
post_install_message:
|
220
172
|
rdoc_options: []
|
221
|
-
|
222
|
-
require_paths:
|
173
|
+
require_paths:
|
223
174
|
- lib
|
224
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
175
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
225
176
|
none: false
|
226
|
-
requirements:
|
227
|
-
- -
|
228
|
-
- !ruby/object:Gem::Version
|
229
|
-
|
230
|
-
|
231
|
-
- 0
|
232
|
-
version: "0"
|
233
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ! '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
234
182
|
none: false
|
235
|
-
requirements:
|
236
|
-
- -
|
237
|
-
- !ruby/object:Gem::Version
|
238
|
-
|
239
|
-
segments:
|
240
|
-
- 0
|
241
|
-
version: "0"
|
183
|
+
requirements:
|
184
|
+
- - ! '>='
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
242
187
|
requirements: []
|
243
|
-
|
244
188
|
rubyforge_project: shelly
|
245
|
-
rubygems_version: 1.
|
189
|
+
rubygems_version: 1.8.10
|
246
190
|
signing_key:
|
247
191
|
specification_version: 3
|
248
192
|
summary: Shelly Cloud command line tool
|
249
|
-
test_files:
|
193
|
+
test_files:
|
250
194
|
- spec/helpers.rb
|
251
195
|
- spec/input_faker.rb
|
252
196
|
- spec/shelly/app_spec.rb
|
253
197
|
- spec/shelly/base_spec.rb
|
254
|
-
- spec/shelly/cli/account_spec.rb
|
255
|
-
- spec/shelly/cli/apps_spec.rb
|
256
198
|
- spec/shelly/cli/main_spec.rb
|
257
199
|
- spec/shelly/client_spec.rb
|
258
200
|
- spec/shelly/user_spec.rb
|