shelly 0.4.30 → 0.4.31

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 08f4c5b1816282bda6bfd4b66605efe25fbc739c
4
- data.tar.gz: 2f0e18aab9fc1a5a19096c9ba3682c1ae0e99cad
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NzAwNGQyNWM4YTM1ZGM3YmY2ZGUwMzIzOTNiNmM3YTc5M2QwMjE3Mg==
5
+ data.tar.gz: !binary |-
6
+ YzBhZmRmY2QzOGExOTQ3MzA5MjM1NjA1MGVjYTMxOWEzODc1M2ZjNw==
5
7
  SHA512:
6
- metadata.gz: af1e79cc70081ab911b95bf40b7acdff0d8eb7a7a2fd68eff7f27cf470c9818693fe727c3168fdfc34a2504c556ae087e8122702c99e28cbb2657db6ee8810d5
7
- data.tar.gz: 07846a4da96ee42fba0f9b72232b3d2d2818c648cd3ec26b19c0e643eced8a05a03d9d3c206c8582916983c162b58d00c8efad2e237d914b2b34d31ce3ba385f
8
+ metadata.gz: !binary |-
9
+ NjlhMjNjMTdiNThmYTk0MDcyNDdiNTMxYTM4NWQ2ZjFiZTM2NmVhM2ViY2Fi
10
+ ODQzMGU5MGEwMTQxMDg2MTIzMTI3ZWI3M2I4OTU4Y2M2MDJhMTM1ZjZmYmU0
11
+ YWUyZWM3MDNlY2FiYzdkNmVlZWE1N2Q4YTA4N2U4MjBhOTljYjY=
12
+ data.tar.gz: !binary |-
13
+ YzU0YjcxZWFiNWYyNzRhMmJmMzlkYmYxMDQwOGFjOTEzNzliZjlmMjQ5Zjll
14
+ OTZjZjllOGQ5NWU3NDZmZjI3MGNjMWZiYjk0MDljMDExNGM1NGUwNjVmZTkz
15
+ NjUxZjlhY2RkMjRhMTZiYjI5ZGJlNzViMTQzY2VmYzlkNThlNDk=
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.4.31 / 2014-04-21
2
+
3
+ * [improvement] Let users download logs for current day with
4
+ `shelly logs download`
5
+
1
6
  ## 0.4.30 / 2014-04-14
2
7
 
3
8
  * [feature] `shelly config create` will check if config already exists in
@@ -50,6 +50,7 @@ module Shelly
50
50
  backup = app.database_backup(handler)
51
51
  bar = Shelly::DownloadProgressBar.new(backup.size)
52
52
  backup.download(bar.progress_callback)
53
+ bar.finish
53
54
 
54
55
  say_new_line
55
56
  say "Backup file saved to #{backup.filename}", :green
@@ -33,13 +33,13 @@ module Shelly
33
33
 
34
34
  map "download" => :get
35
35
  desc "get [DATE]", "Download log file from a specific date"
36
- def get(date = "yesterday")
36
+ def get(date = "today")
37
37
  app = multiple_clouds(options[:cloud], "logs get #{date}")
38
38
 
39
39
  attributes = app.download_application_logs_attributes({:date => date})
40
- bar = Shelly::DownloadProgressBar.new(attributes["size"])
41
-
40
+ bar = Shelly::DownloadProgressBar.new
42
41
  app.download_application_logs(attributes, bar.progress_callback)
42
+ bar.finish
43
43
 
44
44
  say_new_line
45
45
  say "Log file saved to #{attributes["filename"]}", :green
data/lib/shelly/client.rb CHANGED
@@ -52,9 +52,13 @@ module Shelly
52
52
  def download_file(cloud, filename, url, progress_callback = nil)
53
53
  File.open(filename, "wb") do |out|
54
54
  process_response = lambda do |response|
55
+
56
+ total_size = response.to_hash['file-size'].first.to_i if response.to_hash['file-size']
55
57
  response.read_body do |chunk|
56
58
  out.write(chunk)
57
- progress_callback.call(chunk.size) if progress_callback
59
+
60
+ progress_callback.call(chunk.size,
61
+ total_size) if progress_callback
58
62
  end
59
63
  end
60
64
 
@@ -15,12 +15,6 @@ class Shelly::Client
15
15
  end
16
16
 
17
17
  def download_application_logs_attributes(code_name, options)
18
- attributes = get("/apps/#{code_name}/application_logs/download#{query(options)}")
19
- headers = RestClient::Request.execute({
20
- :method => :get,
21
- :url => "#{attributes["url"]}/headers"
22
- }.merge(http_basic_auth_options)).headers
23
-
24
- attributes.merge("size" => headers[:content_lenght].to_i)
18
+ get("/apps/#{code_name}/application_logs/download#{query(options)}")
25
19
  end
26
20
  end
@@ -1,14 +1,16 @@
1
- require "progressbar"
1
+ require "ruby-progressbar"
2
2
 
3
3
  module Shelly
4
- class DownloadProgressBar < ProgressBar
5
- def initialize(total)
6
- super("Progress", total)
7
- self.format_arguments = [:title, :percentage, :bar, :stat_for_file_transfer]
4
+ class DownloadProgressBar < ProgressBar::Base
5
+ def initialize(total = nil)
6
+ super(:title => "Progress", :total => total, :format => "%a [%B] %p%% %t | %E")
8
7
  end
9
8
 
10
9
  def progress_callback
11
- lambda { |size| inc(size) }
10
+ lambda { |inc_size, total_size|
11
+ self.total = total_size if total_size
12
+ self.progress = progress + inc_size
13
+ }
12
14
  end
13
15
  end
14
16
  end
@@ -1,3 +1,3 @@
1
1
  module Shelly
2
- VERSION = "0.4.30"
2
+ VERSION = "0.4.31"
3
3
  end
data/shelly.gemspec CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
27
27
  s.add_runtime_dependency "rest-client"
28
28
  s.add_runtime_dependency "mime-types", "~> 1.16"
29
29
  s.add_runtime_dependency "json"
30
- s.add_runtime_dependency "progressbar"
30
+ s.add_runtime_dependency "ruby-progressbar"
31
31
  s.add_runtime_dependency "launchy"
32
32
  s.add_runtime_dependency "netrc"
33
33
  s.add_runtime_dependency "childprocess"
@@ -69,7 +69,7 @@ describe Shelly::CLI::Backup do
69
69
  describe "#get" do
70
70
  before do
71
71
  @client.stub(:download_file)
72
- @bar = mock(:progress_callback => @callback)
72
+ @bar = mock(:progress_callback => @callback, :finish => true)
73
73
  Shelly::DownloadProgressBar.stub(:new).and_return(@bar)
74
74
  @client.stub(:database_backup).and_return({"filename" => "better.tar.gz", "size" => 12345})
75
75
  @client.stub(:download_backup_url).with("foo-staging", "better.tar.gz").
@@ -66,7 +66,7 @@ describe Shelly::CLI::Logs do
66
66
 
67
67
  describe "#get" do
68
68
  before do
69
- @bar = mock(:progress_callback => @callback)
69
+ @bar = mock(:progress_callback => @callback, :finish => true)
70
70
  Shelly::DownloadProgressBar.stub(:new).and_return(@bar)
71
71
  @client.stub(:download_application_logs_attributes).
72
72
  with("foo-production", {:date => "2013-05-31"}).
@@ -100,7 +100,7 @@ describe Shelly::CLI::Logs do
100
100
  @client.should_receive(:download_file).
101
101
  with("foo-production", "foo-production.log.20130531.gz",
102
102
  "http://example.com/foo-production/20130531", @callback)
103
- Shelly::DownloadProgressBar.should_receive(:new).with(12345).and_return(@bar)
103
+ Shelly::DownloadProgressBar.should_receive(:new).and_return(@bar)
104
104
  invoke(@cli_logs, :get, "2013-05-31")
105
105
  end
106
106
 
@@ -352,6 +352,7 @@ describe Shelly::Client do
352
352
  @url = "https://#{CGI.escape(email)}:#{api_key}@backup.example.com/file.gz"
353
353
  response = Net::HTTPResponse.new('', '', '')
354
354
  # Streaming
355
+ response.stub(:to_hash).and_return({'file-size' => ['1000']})
355
356
  response.stub(:read_body).and_yield("aaa").and_yield("bbbbb").and_yield("dddf")
356
357
  FakeWeb.register_uri(:get, @url, :response => response)
357
358
  end
@@ -363,11 +364,11 @@ describe Shelly::Client do
363
364
 
364
365
  it "should execute progress_callback with size of every chunk" do
365
366
  progress = mock(:update => true)
366
- progress.should_receive(:update).with(3)
367
- progress.should_receive(:update).with(5)
368
- progress.should_receive(:update).with(4)
367
+ progress.should_receive(:update).with(3, 1000)
368
+ progress.should_receive(:update).with(5, 1000)
369
+ progress.should_receive(:update).with(4, 1000)
369
370
 
370
- callback = lambda { |size| progress.update(size) }
371
+ callback = lambda { |size, total| progress.update(size, total) }
371
372
 
372
373
  @client.download_file("foo", @filename, @url, callback)
373
374
  end
@@ -3,26 +3,25 @@ require "shelly/download_progress_bar"
3
3
 
4
4
  describe Shelly::DownloadProgressBar do
5
5
  before do
6
- $stderr.stub(:print)
6
+ $stdout.stub(:print)
7
7
  @bar = Shelly::DownloadProgressBar.new(4444)
8
8
  end
9
9
 
10
10
  it "should inherith from ProgressBar" do
11
- @bar.should be_kind_of(ProgressBar)
11
+ @bar.should be_kind_of(ProgressBar::Base)
12
12
  end
13
13
 
14
- it "should initialize parent with header and given size" do
15
- @bar.title.should == "Progress"
14
+ it "should initialize parent with size" do
16
15
  @bar.total.should == 4444
17
16
  end
18
17
 
19
18
  describe "#progress_callback" do
20
19
  it "should return callback for updating progress bar" do
21
- @bar.should_receive(:inc).with(10)
22
- @bar.should_receive(:inc).with(20)
20
+ @bar.should_receive(:total=).with(1000)
21
+ @bar.should_receive(:progress=).with(10)
23
22
 
24
- @bar.progress_callback.call(10)
25
- @bar.progress_callback.call(20)
23
+
24
+ @bar.progress_callback.call(10, 1000)
26
25
  end
27
26
  end
28
27
  end
metadata CHANGED
@@ -1,237 +1,237 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shelly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.30
4
+ version: 0.4.31
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-04-14 00:00:00.000000000 Z
11
+ date: 2014-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: 2.11.0
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 2.11.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: simplecov
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: ruby_gntp
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - ! '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rb-fsevent
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - ! '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - ! '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: fakefs
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
89
  version: 0.4.3
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ~>
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.4.3
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: fakeweb
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - ! '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - ! '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: pry
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - ! '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: wijet-thor
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - ~>
130
130
  - !ruby/object:Gem::Version
131
131
  version: 0.14.10
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - ~>
137
137
  - !ruby/object:Gem::Version
138
138
  version: 0.14.10
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rest-client
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - ! '>='
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - ! '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: mime-types
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "~>"
157
+ - - ~>
158
158
  - !ruby/object:Gem::Version
159
159
  version: '1.16'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - "~>"
164
+ - - ~>
165
165
  - !ruby/object:Gem::Version
166
166
  version: '1.16'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: json
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ">="
171
+ - - ! '>='
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ">="
178
+ - - ! '>='
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
- name: progressbar
182
+ name: ruby-progressbar
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - ">="
185
+ - - ! '>='
186
186
  - !ruby/object:Gem::Version
187
187
  version: '0'
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ">="
192
+ - - ! '>='
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: launchy
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - ">="
199
+ - - ! '>='
200
200
  - !ruby/object:Gem::Version
201
201
  version: '0'
202
202
  type: :runtime
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - ">="
206
+ - - ! '>='
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: netrc
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - ">="
213
+ - - ! '>='
214
214
  - !ruby/object:Gem::Version
215
215
  version: '0'
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - ">="
220
+ - - ! '>='
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: childprocess
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - ">="
227
+ - - ! '>='
228
228
  - !ruby/object:Gem::Version
229
229
  version: '0'
230
230
  type: :runtime
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - ">="
234
+ - - ! '>='
235
235
  - !ruby/object:Gem::Version
236
236
  version: '0'
237
237
  description: Tool for managing applications and clouds at shellycloud.com
@@ -242,8 +242,8 @@ executables:
242
242
  extensions: []
243
243
  extra_rdoc_files: []
244
244
  files:
245
- - ".gitignore"
246
- - ".travis.yml"
245
+ - .gitignore
246
+ - .travis.yml
247
247
  - CHANGELOG.md
248
248
  - Gemfile
249
249
  - LICENSE
@@ -338,12 +338,12 @@ require_paths:
338
338
  - lib
339
339
  required_ruby_version: !ruby/object:Gem::Requirement
340
340
  requirements:
341
- - - ">="
341
+ - - ! '>='
342
342
  - !ruby/object:Gem::Version
343
343
  version: '0'
344
344
  required_rubygems_version: !ruby/object:Gem::Requirement
345
345
  requirements:
346
- - - ">="
346
+ - - ! '>='
347
347
  - !ruby/object:Gem::Version
348
348
  version: '0'
349
349
  requirements: []