shelly 0.4.23 → 0.4.24
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/shelly/app.rb +4 -0
- data/lib/shelly/cli/main.rb +11 -0
- data/lib/shelly/client/apps.rb +4 -0
- data/lib/shelly/version.rb +1 -1
- data/spec/shelly/app_spec.rb +25 -0
- data/spec/shelly/cli/main_spec.rb +45 -0
- data/spec/shelly/client_spec.rb +38 -0
- metadata +73 -73
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25534c9362fd63574107232cf2eadd9c2b200627
|
4
|
+
data.tar.gz: 833dd066a7c2451b69f719c84fdfdbc1a15222a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37591a488e05a52e64d0f49eff04dedfc8199b98186ea9deeb7dff40e55d6f0896a21042d4cea1043a5826328092a5b4a945dad98ccce36849b8baadeb6d9921
|
7
|
+
data.tar.gz: 46d2dc570e9f0c519be6117bd040c8be91e8d1352e8ca5ec00dacf5744f018a845f85a3c91c696a9e7315eee947bfcdb738f611403c8df8ca1c18c4e56e33197
|
data/CHANGELOG.md
CHANGED
data/lib/shelly/app.rb
CHANGED
data/lib/shelly/cli/main.rb
CHANGED
@@ -116,6 +116,17 @@ module Shelly
|
|
116
116
|
print_wrapped "Repository URL: #{app.git_info["repository_url"]}", :ident => 2
|
117
117
|
print_wrapped "Web server IP: #{app.web_server_ip}", :ident => 2
|
118
118
|
say_new_line
|
119
|
+
print_wrapped "Usage:", :ident => 2
|
120
|
+
print_wrapped "Filesystem:", :ident => 4
|
121
|
+
print_wrapped "Current: #{app.usage['filesystem']['current']}", :ident => 6
|
122
|
+
print_wrapped "Average: #{app.usage['filesystem']['avg']}", :ident => 6
|
123
|
+
print_wrapped "Database:", :ident => 4
|
124
|
+
print_wrapped "Current: #{app.usage['database']['current']}", :ident => 6
|
125
|
+
print_wrapped "Average: #{app.usage['database']['avg']}", :ident => 6
|
126
|
+
print_wrapped "Traffic:", :ident => 4
|
127
|
+
print_wrapped "Incoming: #{app.usage['traffic']['incoming']}", :ident => 6
|
128
|
+
print_wrapped "Outgoing: #{app.usage['traffic']['outgoing']}", :ident => 6
|
129
|
+
say_new_line
|
119
130
|
if app.statistics.present?
|
120
131
|
print_wrapped "Statistics:", :ident => 2
|
121
132
|
app.statistics.each do |stat|
|
data/lib/shelly/client/apps.rb
CHANGED
data/lib/shelly/version.rb
CHANGED
data/spec/shelly/app_spec.rb
CHANGED
@@ -229,6 +229,31 @@ describe Shelly::App do
|
|
229
229
|
end
|
230
230
|
end
|
231
231
|
|
232
|
+
describe "#usage" do
|
233
|
+
before do
|
234
|
+
@response = {
|
235
|
+
"filesystem" => {
|
236
|
+
"avg" => "32 KiB",
|
237
|
+
"current" => "64 KiB"
|
238
|
+
},
|
239
|
+
"database" => {
|
240
|
+
"avg" => "64 KiB",
|
241
|
+
"current" => "128 KiB"
|
242
|
+
},
|
243
|
+
"traffic" => {
|
244
|
+
"incoming" => "32 KiB",
|
245
|
+
"outgoing" => "64 KiB"
|
246
|
+
}
|
247
|
+
}
|
248
|
+
@client.stub(:usage).and_return(@response)
|
249
|
+
end
|
250
|
+
|
251
|
+
it "should fetch app usage from API and cache them" do
|
252
|
+
@client.should_receive(:usage).with("foo-staging").exactly(:once).and_return(@response)
|
253
|
+
2.times { @app.usage }
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
232
257
|
describe "#start & #stop" do
|
233
258
|
it "should start cloud" do
|
234
259
|
@client.should_receive(:start_cloud).with("foo-staging").
|
@@ -974,7 +974,22 @@ Wait until cloud is in 'turned off' state and try again.")
|
|
974
974
|
"swap" => {"kilobyte" => "44332", "percent" => "2.8"},
|
975
975
|
"cpu" => {"wait" => "0.8", "system" => "0.0", "user" => "0.1"},
|
976
976
|
"load" => {"avg15" => "0.13", "avg05" => "0.15", "avg01" => "0.04"}}]
|
977
|
+
@usage = {
|
978
|
+
"filesystem" => {
|
979
|
+
"avg" => "32 KiB",
|
980
|
+
"current" => "64 KiB"
|
981
|
+
},
|
982
|
+
"database" => {
|
983
|
+
"avg" => "64 KiB",
|
984
|
+
"current" => "128 KiB"
|
985
|
+
},
|
986
|
+
"traffic" => {
|
987
|
+
"incoming" => "32 KiB",
|
988
|
+
"outgoing" => "64 KiB"
|
989
|
+
}
|
990
|
+
}
|
977
991
|
@app.stub(:statistics).and_return(@statistics)
|
992
|
+
@app.stub(:usage).and_return(@usage)
|
978
993
|
end
|
979
994
|
|
980
995
|
it "should ensure user has logged in" do
|
@@ -997,6 +1012,16 @@ Wait until cloud is in 'turned off' state and try again.")
|
|
997
1012
|
$stdout.should_receive(:puts).with(" Deployed by: megan@example.com")
|
998
1013
|
$stdout.should_receive(:puts).with(" Repository URL: git@winniecloud.net:example-cloud")
|
999
1014
|
$stdout.should_receive(:puts).with(" Web server IP: 22.22.22.22")
|
1015
|
+
$stdout.should_receive(:puts).with(" Usage:")
|
1016
|
+
$stdout.should_receive(:puts).with(" Filesystem:")
|
1017
|
+
$stdout.should_receive(:puts).with(" Average: 32 KiB")
|
1018
|
+
$stdout.should_receive(:puts).with(" Current: 64 KiB")
|
1019
|
+
$stdout.should_receive(:puts).with(" Database:")
|
1020
|
+
$stdout.should_receive(:puts).with(" Average: 64 KiB")
|
1021
|
+
$stdout.should_receive(:puts).with(" Current: 128 KiB")
|
1022
|
+
$stdout.should_receive(:puts).with(" Traffic:")
|
1023
|
+
$stdout.should_receive(:puts).with(" Incoming: 32 KiB")
|
1024
|
+
$stdout.should_receive(:puts).with(" Outgoing: 64 KiB")
|
1000
1025
|
$stdout.should_receive(:puts).with(" Statistics:")
|
1001
1026
|
$stdout.should_receive(:puts).with(" app1:")
|
1002
1027
|
$stdout.should_receive(:puts).with(" Load average: 1m: 0.04, 5m: 0.15, 15m: 0.13")
|
@@ -1019,6 +1044,16 @@ Wait until cloud is in 'turned off' state and try again.")
|
|
1019
1044
|
$stdout.should_receive(:puts).with(" Deployed by: megan@example.com")
|
1020
1045
|
$stdout.should_receive(:puts).with(" Repository URL: git@winniecloud.net:example-cloud")
|
1021
1046
|
$stdout.should_receive(:puts).with(" Web server IP: 22.22.22.22")
|
1047
|
+
$stdout.should_receive(:puts).with(" Usage:")
|
1048
|
+
$stdout.should_receive(:puts).with(" Filesystem:")
|
1049
|
+
$stdout.should_receive(:puts).with(" Average: 32 KiB")
|
1050
|
+
$stdout.should_receive(:puts).with(" Current: 64 KiB")
|
1051
|
+
$stdout.should_receive(:puts).with(" Database:")
|
1052
|
+
$stdout.should_receive(:puts).with(" Average: 64 KiB")
|
1053
|
+
$stdout.should_receive(:puts).with(" Current: 128 KiB")
|
1054
|
+
$stdout.should_receive(:puts).with(" Traffic:")
|
1055
|
+
$stdout.should_receive(:puts).with(" Incoming: 32 KiB")
|
1056
|
+
$stdout.should_receive(:puts).with(" Outgoing: 64 KiB")
|
1022
1057
|
$stdout.should_receive(:puts).with(" Statistics:")
|
1023
1058
|
$stdout.should_receive(:puts).with(" app1:")
|
1024
1059
|
$stdout.should_receive(:puts).with(" Load average: 1m: 0.04, 5m: 0.15, 15m: 0.13")
|
@@ -1041,6 +1076,16 @@ Wait until cloud is in 'turned off' state and try again.")
|
|
1041
1076
|
$stdout.should_receive(:puts).with(" Deployed by: megan@example.com")
|
1042
1077
|
$stdout.should_receive(:puts).with(" Repository URL: git@winniecloud.net:example-cloud")
|
1043
1078
|
$stdout.should_receive(:puts).with(" Web server IP: 22.22.22.22")
|
1079
|
+
$stdout.should_receive(:puts).with(" Usage:")
|
1080
|
+
$stdout.should_receive(:puts).with(" Filesystem:")
|
1081
|
+
$stdout.should_receive(:puts).with(" Average: 32 KiB")
|
1082
|
+
$stdout.should_receive(:puts).with(" Current: 64 KiB")
|
1083
|
+
$stdout.should_receive(:puts).with(" Database:")
|
1084
|
+
$stdout.should_receive(:puts).with(" Average: 64 KiB")
|
1085
|
+
$stdout.should_receive(:puts).with(" Current: 128 KiB")
|
1086
|
+
$stdout.should_receive(:puts).with(" Traffic:")
|
1087
|
+
$stdout.should_receive(:puts).with(" Incoming: 32 KiB")
|
1088
|
+
$stdout.should_receive(:puts).with(" Outgoing: 64 KiB")
|
1044
1089
|
$stdout.should_receive(:puts).with(" Statistics:")
|
1045
1090
|
$stdout.should_receive(:puts).with(" app1:")
|
1046
1091
|
$stdout.should_receive(:puts).with(" Load average: 1m: 0.04, 5m: 0.15, 15m: 0.13")
|
data/spec/shelly/client_spec.rb
CHANGED
@@ -243,6 +243,44 @@ describe Shelly::Client do
|
|
243
243
|
end
|
244
244
|
end
|
245
245
|
|
246
|
+
describe "#usage" do
|
247
|
+
before do
|
248
|
+
FakeWeb.register_uri(:get,
|
249
|
+
api_url("apps/staging-foo/usage"),
|
250
|
+
:body => {
|
251
|
+
:filesystem => {
|
252
|
+
:avg => "32 KiB",
|
253
|
+
:current => "64 KiB"
|
254
|
+
},
|
255
|
+
:database => {
|
256
|
+
:avg => "64 KiB",
|
257
|
+
:current => "128 KiB"
|
258
|
+
},
|
259
|
+
:traffic => {
|
260
|
+
:incoming => "32 KiB",
|
261
|
+
:outgoing => "64 KiB"
|
262
|
+
}
|
263
|
+
}.to_json)
|
264
|
+
end
|
265
|
+
|
266
|
+
it "should fetch application usage from API" do
|
267
|
+
expect(@client.usage("staging-foo")).to eq({
|
268
|
+
"filesystem" => {
|
269
|
+
"avg" => "32 KiB",
|
270
|
+
"current" => "64 KiB"
|
271
|
+
},
|
272
|
+
"database" => {
|
273
|
+
"avg" => "64 KiB",
|
274
|
+
"current" => "128 KiB"
|
275
|
+
},
|
276
|
+
"traffic" => {
|
277
|
+
"incoming" => "32 KiB",
|
278
|
+
"outgoing" => "64 KiB"
|
279
|
+
}
|
280
|
+
})
|
281
|
+
end
|
282
|
+
end
|
283
|
+
|
246
284
|
describe "#command" do
|
247
285
|
it "should send post request with app code_name, body and type" do
|
248
286
|
@client.should_receive(:post).with("/apps/staging-foo/command",
|
metadata
CHANGED
@@ -1,211 +1,211 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shelly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shelly Cloud team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
version_requirements: !ruby/object:Gem::Requirement
|
15
|
-
requirements:
|
16
|
-
- - ~>
|
17
|
-
- !ruby/object:Gem::Version
|
18
|
-
version: 2.11.0
|
19
|
-
prerelease: false
|
20
14
|
name: rspec
|
21
15
|
requirement: !ruby/object:Gem::Requirement
|
22
16
|
requirements:
|
23
|
-
- - ~>
|
17
|
+
- - "~>"
|
24
18
|
- !ruby/object:Gem::Version
|
25
19
|
version: 2.11.0
|
26
20
|
type: :development
|
27
|
-
|
21
|
+
prerelease: false
|
28
22
|
version_requirements: !ruby/object:Gem::Requirement
|
29
23
|
requirements:
|
30
|
-
- -
|
24
|
+
- - "~>"
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
33
|
-
|
26
|
+
version: 2.11.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
34
28
|
name: rake
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
|
-
- -
|
31
|
+
- - ">="
|
38
32
|
- !ruby/object:Gem::Version
|
39
33
|
version: '0'
|
40
34
|
type: :development
|
41
|
-
|
35
|
+
prerelease: false
|
42
36
|
version_requirements: !ruby/object:Gem::Requirement
|
43
37
|
requirements:
|
44
|
-
- -
|
38
|
+
- - ">="
|
45
39
|
- !ruby/object:Gem::Version
|
46
40
|
version: '0'
|
47
|
-
|
41
|
+
- !ruby/object:Gem::Dependency
|
48
42
|
name: simplecov
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
|
-
|
49
|
+
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
51
|
requirements:
|
58
|
-
- -
|
52
|
+
- - ">="
|
59
53
|
- !ruby/object:Gem::Version
|
60
54
|
version: '0'
|
61
|
-
|
55
|
+
- !ruby/object:Gem::Dependency
|
62
56
|
name: ruby_gntp
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
64
58
|
requirements:
|
65
|
-
- -
|
59
|
+
- - ">="
|
66
60
|
- !ruby/object:Gem::Version
|
67
61
|
version: '0'
|
68
62
|
type: :development
|
69
|
-
|
63
|
+
prerelease: false
|
70
64
|
version_requirements: !ruby/object:Gem::Requirement
|
71
65
|
requirements:
|
72
|
-
- -
|
66
|
+
- - ">="
|
73
67
|
- !ruby/object:Gem::Version
|
74
68
|
version: '0'
|
75
|
-
|
69
|
+
- !ruby/object:Gem::Dependency
|
76
70
|
name: rb-fsevent
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
78
72
|
requirements:
|
79
|
-
- -
|
73
|
+
- - ">="
|
80
74
|
- !ruby/object:Gem::Version
|
81
75
|
version: '0'
|
82
76
|
type: :development
|
83
|
-
|
77
|
+
prerelease: false
|
84
78
|
version_requirements: !ruby/object:Gem::Requirement
|
85
79
|
requirements:
|
86
|
-
- -
|
80
|
+
- - ">="
|
87
81
|
- !ruby/object:Gem::Version
|
88
|
-
version: 0
|
89
|
-
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
90
84
|
name: fakefs
|
91
85
|
requirement: !ruby/object:Gem::Requirement
|
92
86
|
requirements:
|
93
|
-
- - ~>
|
87
|
+
- - "~>"
|
94
88
|
- !ruby/object:Gem::Version
|
95
89
|
version: 0.4.3
|
96
90
|
type: :development
|
97
|
-
|
91
|
+
prerelease: false
|
98
92
|
version_requirements: !ruby/object:Gem::Requirement
|
99
93
|
requirements:
|
100
|
-
- -
|
94
|
+
- - "~>"
|
101
95
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
103
|
-
|
96
|
+
version: 0.4.3
|
97
|
+
- !ruby/object:Gem::Dependency
|
104
98
|
name: fakeweb
|
105
99
|
requirement: !ruby/object:Gem::Requirement
|
106
100
|
requirements:
|
107
|
-
- -
|
101
|
+
- - ">="
|
108
102
|
- !ruby/object:Gem::Version
|
109
103
|
version: '0'
|
110
104
|
type: :development
|
111
|
-
|
105
|
+
prerelease: false
|
112
106
|
version_requirements: !ruby/object:Gem::Requirement
|
113
107
|
requirements:
|
114
|
-
- -
|
108
|
+
- - ">="
|
115
109
|
- !ruby/object:Gem::Version
|
116
|
-
version: 0
|
117
|
-
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
118
112
|
name: wijet-thor
|
119
113
|
requirement: !ruby/object:Gem::Requirement
|
120
114
|
requirements:
|
121
|
-
- - ~>
|
115
|
+
- - "~>"
|
122
116
|
- !ruby/object:Gem::Version
|
123
117
|
version: 0.14.10
|
124
118
|
type: :runtime
|
125
|
-
|
119
|
+
prerelease: false
|
126
120
|
version_requirements: !ruby/object:Gem::Requirement
|
127
121
|
requirements:
|
128
|
-
- -
|
122
|
+
- - "~>"
|
129
123
|
- !ruby/object:Gem::Version
|
130
|
-
version:
|
131
|
-
|
124
|
+
version: 0.14.10
|
125
|
+
- !ruby/object:Gem::Dependency
|
132
126
|
name: rest-client
|
133
127
|
requirement: !ruby/object:Gem::Requirement
|
134
128
|
requirements:
|
135
|
-
- -
|
129
|
+
- - ">="
|
136
130
|
- !ruby/object:Gem::Version
|
137
131
|
version: '0'
|
138
132
|
type: :runtime
|
139
|
-
|
133
|
+
prerelease: false
|
140
134
|
version_requirements: !ruby/object:Gem::Requirement
|
141
135
|
requirements:
|
142
|
-
- -
|
136
|
+
- - ">="
|
143
137
|
- !ruby/object:Gem::Version
|
144
|
-
version: '
|
145
|
-
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
146
140
|
name: mime-types
|
147
141
|
requirement: !ruby/object:Gem::Requirement
|
148
142
|
requirements:
|
149
|
-
- - ~>
|
143
|
+
- - "~>"
|
150
144
|
- !ruby/object:Gem::Version
|
151
145
|
version: '1.16'
|
152
146
|
type: :runtime
|
153
|
-
|
147
|
+
prerelease: false
|
154
148
|
version_requirements: !ruby/object:Gem::Requirement
|
155
149
|
requirements:
|
156
|
-
- -
|
150
|
+
- - "~>"
|
157
151
|
- !ruby/object:Gem::Version
|
158
|
-
version: '
|
159
|
-
|
152
|
+
version: '1.16'
|
153
|
+
- !ruby/object:Gem::Dependency
|
160
154
|
name: json
|
161
155
|
requirement: !ruby/object:Gem::Requirement
|
162
156
|
requirements:
|
163
|
-
- -
|
157
|
+
- - ">="
|
164
158
|
- !ruby/object:Gem::Version
|
165
159
|
version: '0'
|
166
160
|
type: :runtime
|
167
|
-
|
161
|
+
prerelease: false
|
168
162
|
version_requirements: !ruby/object:Gem::Requirement
|
169
163
|
requirements:
|
170
|
-
- -
|
164
|
+
- - ">="
|
171
165
|
- !ruby/object:Gem::Version
|
172
166
|
version: '0'
|
173
|
-
|
167
|
+
- !ruby/object:Gem::Dependency
|
174
168
|
name: progressbar
|
175
169
|
requirement: !ruby/object:Gem::Requirement
|
176
170
|
requirements:
|
177
|
-
- -
|
171
|
+
- - ">="
|
178
172
|
- !ruby/object:Gem::Version
|
179
173
|
version: '0'
|
180
174
|
type: :runtime
|
181
|
-
|
175
|
+
prerelease: false
|
182
176
|
version_requirements: !ruby/object:Gem::Requirement
|
183
177
|
requirements:
|
184
|
-
- -
|
178
|
+
- - ">="
|
185
179
|
- !ruby/object:Gem::Version
|
186
180
|
version: '0'
|
187
|
-
|
181
|
+
- !ruby/object:Gem::Dependency
|
188
182
|
name: launchy
|
189
183
|
requirement: !ruby/object:Gem::Requirement
|
190
184
|
requirements:
|
191
|
-
- -
|
185
|
+
- - ">="
|
192
186
|
- !ruby/object:Gem::Version
|
193
187
|
version: '0'
|
194
188
|
type: :runtime
|
195
|
-
|
189
|
+
prerelease: false
|
196
190
|
version_requirements: !ruby/object:Gem::Requirement
|
197
191
|
requirements:
|
198
|
-
- -
|
192
|
+
- - ">="
|
199
193
|
- !ruby/object:Gem::Version
|
200
194
|
version: '0'
|
201
|
-
|
195
|
+
- !ruby/object:Gem::Dependency
|
202
196
|
name: netrc
|
203
197
|
requirement: !ruby/object:Gem::Requirement
|
204
198
|
requirements:
|
205
|
-
- -
|
199
|
+
- - ">="
|
206
200
|
- !ruby/object:Gem::Version
|
207
201
|
version: '0'
|
208
202
|
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
209
|
description: Tool for managing applications and clouds at shellycloud.com
|
210
210
|
email:
|
211
211
|
- devs@shellycloud.com
|
@@ -214,8 +214,8 @@ executables:
|
|
214
214
|
extensions: []
|
215
215
|
extra_rdoc_files: []
|
216
216
|
files:
|
217
|
-
- .gitignore
|
218
|
-
- .travis.yml
|
217
|
+
- ".gitignore"
|
218
|
+
- ".travis.yml"
|
219
219
|
- CHANGELOG.md
|
220
220
|
- Gemfile
|
221
221
|
- LICENSE
|
@@ -310,17 +310,17 @@ require_paths:
|
|
310
310
|
- lib
|
311
311
|
required_ruby_version: !ruby/object:Gem::Requirement
|
312
312
|
requirements:
|
313
|
-
- -
|
313
|
+
- - ">="
|
314
314
|
- !ruby/object:Gem::Version
|
315
315
|
version: '0'
|
316
316
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
317
317
|
requirements:
|
318
|
-
- -
|
318
|
+
- - ">="
|
319
319
|
- !ruby/object:Gem::Version
|
320
320
|
version: '0'
|
321
321
|
requirements: []
|
322
322
|
rubyforge_project: shelly
|
323
|
-
rubygems_version: 2.2.
|
323
|
+
rubygems_version: 2.2.2
|
324
324
|
signing_key:
|
325
325
|
specification_version: 4
|
326
326
|
summary: Shelly Cloud command line tool
|