shelly 0.4.5 → 0.4.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9806b19fb3c19741be321f7b85b0b5907d6b397c
4
+ data.tar.gz: 60dc5f079fc9aa5d658232e1b5af5eb8a2cba919
5
+ SHA512:
6
+ metadata.gz: 44b83e991d63f0b091d12c392c605170c80bb370f166e827c9d2605a35ba004ddc8dc94ff85862d021410608e51d6cbe5719ed5c66679835c4f7f5b7518db1c8
7
+ data.tar.gz: c7192c598ec6e85faafb4a7981c4d4c685f742f24738793ab7b528ed63730522af4fe150295ba16f5da13f1fdc1b6408b5c4fd942965a1368631c82b574f2bd1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.4.6 / 2013-10-01
2
+
3
+ * [bugfix] `shelly delete` removes proper git remote.
4
+ * [improvement] List all supported services in generated Cloudfile.
5
+
1
6
  ## 0.4.5 / 2013-09-24
2
7
 
3
8
  * [improvement] Print user-friendly message for bad .netrc file permission.
data/lib/shelly/app.rb CHANGED
@@ -53,7 +53,16 @@ module Shelly
53
53
  end
54
54
 
55
55
  def remove_git_remote
56
- system("git remote rm shelly > /dev/null 2>&1")
56
+ remote = git_remote_name
57
+ if remote.present?
58
+ system("git remote rm #{remote} > /dev/null 2>&1")
59
+ end
60
+ end
61
+
62
+ def git_remote_name
63
+ io = IO.popen("git remote -v").readlines
64
+ remote = io.select {|line| line.include? git_info["repository_url"]}.first
65
+ remote.split("\t").first unless remote.nil?
57
66
  end
58
67
 
59
68
  def create
@@ -19,8 +19,11 @@
19
19
  <%- if @puma -%>
20
20
  puma: <%= @puma %>
21
21
  <%- end -%>
22
- # whenever: on
23
22
  # delayed_job: 1
23
+ # sidekiq: 1
24
+ # clockwork: on
25
+ # whenever: on
26
+ # elasticsearch: on
24
27
  databases:
25
28
  <%- if @databases.present? -%>
26
29
  <%- @databases.each do |kind| -%>
@@ -1,3 +1,3 @@
1
1
  module Shelly
2
- VERSION = "0.4.5"
2
+ VERSION = "0.4.6"
3
3
  end
@@ -34,14 +34,14 @@ describe Shelly::App do
34
34
  end
35
35
  end
36
36
 
37
- describe "git_fetch_remote" do
37
+ describe "#git_fetch_remote" do
38
38
  it "should try to remove existing git remote" do
39
39
  @app.should_receive(:system).with("git fetch shelly > /dev/null 2>&1")
40
40
  @app.git_fetch_remote
41
41
  end
42
42
  end
43
43
 
44
- describe "git_remote_exist" do
44
+ describe "#git_remote_exist?" do
45
45
  it "should return true if git remote exist" do
46
46
  io = mock(:read => "origin\nshelly")
47
47
  IO.should_receive(:popen).with("git remote").and_return(io)
@@ -49,6 +49,51 @@ describe Shelly::App do
49
49
  end
50
50
  end
51
51
 
52
+ describe "#remove_git_remote" do
53
+ context "when git remote exist" do
54
+ it "should remove git remote" do
55
+ @app.should_receive(:system).with("git remote rm remote > /dev/null 2>&1")
56
+ @app.should_receive(:git_remote_name).and_return("remote")
57
+ @app.remove_git_remote
58
+ end
59
+ end
60
+
61
+ context "when git remote does not exist" do
62
+ it "should invoke git remote rm" do
63
+ @app.should_not_receive(:system)
64
+ @app.should_receive(:git_remote_name).and_return(nil)
65
+ @app.remove_git_remote
66
+ end
67
+ end
68
+ end
69
+
70
+ describe "#git_remote_name" do
71
+ before do
72
+ @client.stub(:app).
73
+ and_return("git_info" => {"repository_url" => "git_url"})
74
+ end
75
+
76
+ context "when remote exist" do
77
+ let(:io) { mock(:readlines => ["origin\turl\n",
78
+ "shelly\tgit_url\n"]) }
79
+
80
+ it "should return remote name" do
81
+ IO.should_receive(:popen).with("git remote -v").and_return(io)
82
+ @app.git_remote_name.should == "shelly"
83
+ end
84
+ end
85
+
86
+ context "when remote does not exist" do
87
+ let(:io) { mock(:readlines => ["origin\turl\n",
88
+ "shelly\turl\n"]) }
89
+
90
+ it "should return nil" do
91
+ IO.should_receive(:popen).with("git remote -v").and_return(io)
92
+ @app.git_remote_name.should be_nil
93
+ end
94
+ end
95
+ end
96
+
52
97
  describe "#configs" do
53
98
  it "should get configs from client" do
54
99
  @client.should_receive(:app_configs).with("foo-staging").and_return(config_response)
@@ -1150,6 +1150,7 @@ Wait until cloud is in 'turned off' state and try again.")
1150
1150
  @app.stub(:delete)
1151
1151
  Shelly::User.stub(:new).and_return(@user)
1152
1152
  Shelly::App.stub(:new).and_return(@app)
1153
+ @client.stub(:app).and_return("git_info" => {"repository_url" => "git_url"})
1153
1154
  end
1154
1155
 
1155
1156
  it "should ensure user has logged in" do
@@ -1197,6 +1198,14 @@ Wait until cloud is in 'turned off' state and try again.")
1197
1198
  end
1198
1199
  }.should raise_error(SystemExit)
1199
1200
  end
1201
+
1202
+ it "should remove git remote" do
1203
+ @app.should_receive(:remove_git_remote)
1204
+ @main.options = {:cloud => "foo-staging"}
1205
+ fake_stdin(["yes", "yes", "yes"]) do
1206
+ invoke(@main, :delete)
1207
+ end
1208
+ end
1200
1209
  end
1201
1210
 
1202
1211
  context "when git repository doesn't exist" do
@@ -120,8 +120,11 @@ foo-staging:
120
120
  app1:
121
121
  size: large
122
122
  thin: 4
123
- # whenever: on
124
123
  # delayed_job: 1
124
+ # sidekiq: 1
125
+ # clockwork: on
126
+ # whenever: on
127
+ # elasticsearch: on
125
128
  databases:
126
129
  - postgresql
127
130
  - mongodb
@@ -149,8 +152,11 @@ foo-staging:
149
152
  app1:
150
153
  size: small
151
154
  thin: 2
152
- # whenever: on
153
155
  # delayed_job: 1
156
+ # sidekiq: 1
157
+ # clockwork: on
158
+ # whenever: on
159
+ # elasticsearch: on
154
160
  databases:
155
161
  - postgresql
156
162
  - mongodb
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shelly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
5
- prerelease:
4
+ version: 0.4.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Shelly Cloud team
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-09-24 00:00:00.000000000 Z
11
+ date: 2013-10-01 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,103 +27,90 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: guard
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
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
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: guard-rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: simplecov
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: fakefs
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: fakeweb
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: wijet-thor
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ~>
132
116
  - !ruby/object:Gem::Version
@@ -134,7 +118,6 @@ dependencies:
134
118
  type: :runtime
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - ~>
140
123
  - !ruby/object:Gem::Version
@@ -142,81 +125,71 @@ dependencies:
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: rest-client
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ! '>='
129
+ - - '>='
148
130
  - !ruby/object:Gem::Version
149
131
  version: '0'
150
132
  type: :runtime
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ! '>='
136
+ - - '>='
156
137
  - !ruby/object:Gem::Version
157
138
  version: '0'
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: json
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
- - - ! '>='
143
+ - - '>='
164
144
  - !ruby/object:Gem::Version
165
145
  version: '0'
166
146
  type: :runtime
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
- - - ! '>='
150
+ - - '>='
172
151
  - !ruby/object:Gem::Version
173
152
  version: '0'
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: progressbar
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
- - - ! '>='
157
+ - - '>='
180
158
  - !ruby/object:Gem::Version
181
159
  version: '0'
182
160
  type: :runtime
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
- - - ! '>='
164
+ - - '>='
188
165
  - !ruby/object:Gem::Version
189
166
  version: '0'
190
167
  - !ruby/object:Gem::Dependency
191
168
  name: launchy
192
169
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
170
  requirements:
195
- - - ! '>='
171
+ - - '>='
196
172
  - !ruby/object:Gem::Version
197
173
  version: '0'
198
174
  type: :runtime
199
175
  prerelease: false
200
176
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
177
  requirements:
203
- - - ! '>='
178
+ - - '>='
204
179
  - !ruby/object:Gem::Version
205
180
  version: '0'
206
181
  - !ruby/object:Gem::Dependency
207
182
  name: netrc
208
183
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
184
  requirements:
211
- - - ! '>='
185
+ - - '>='
212
186
  - !ruby/object:Gem::Version
213
187
  version: '0'
214
188
  type: :runtime
215
189
  prerelease: false
216
190
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
191
  requirements:
219
- - - ! '>='
192
+ - - '>='
220
193
  - !ruby/object:Gem::Version
221
194
  version: '0'
222
195
  description: Tool for managing applications and clouds at shellycloud.com
@@ -310,32 +283,25 @@ files:
310
283
  homepage: http://shellycloud.com
311
284
  licenses:
312
285
  - MIT
286
+ metadata: {}
313
287
  post_install_message:
314
288
  rdoc_options: []
315
289
  require_paths:
316
290
  - lib
317
291
  required_ruby_version: !ruby/object:Gem::Requirement
318
- none: false
319
292
  requirements:
320
- - - ! '>='
293
+ - - '>='
321
294
  - !ruby/object:Gem::Version
322
295
  version: '0'
323
- segments:
324
- - 0
325
- hash: 74743708609339319
326
296
  required_rubygems_version: !ruby/object:Gem::Requirement
327
- none: false
328
297
  requirements:
329
- - - ! '>='
298
+ - - '>='
330
299
  - !ruby/object:Gem::Version
331
300
  version: '0'
332
- segments:
333
- - 0
334
- hash: 74743708609339319
335
301
  requirements: []
336
302
  rubyforge_project: shelly
337
- rubygems_version: 1.8.25
303
+ rubygems_version: 2.0.6
338
304
  signing_key:
339
- specification_version: 3
305
+ specification_version: 4
340
306
  summary: Shelly Cloud command line tool
341
307
  test_files: []