browse-everything 1.5.0 → 1.6.0
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eedf3447096af5429b239653b707bf23e881fcd43a097cbe25804c7d48bc16e2
|
4
|
+
data.tar.gz: 1ccf9adb1e189a413ae6ceb9a4e67bccfae3a5179c84f583c1b165f4e051cf00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58511d9c04085a4a9d72246c906bb20cb46bac2e980d17bf90276807b67fe4c38eab79dbae89c10a69e735da6ee2e0acffe0399fe7993526a0454886cc3555ee
|
7
|
+
data.tar.gz: 5484761c6ed0b148ba8a10852dea363a1c6860b146271dd0b8bedbad65f37dfb50b0644f3da2ae533c0b84c782fadea9d808f8d1f2d10d1acb00e3ee8f9d6b34
|
data/Gemfile
CHANGED
@@ -45,6 +45,10 @@ if ENV['RAILS_VERSION']
|
|
45
45
|
|
46
46
|
# sprockets is optional for rails 7, but we currently require it, and test with it.
|
47
47
|
gem "sprockets-rails"
|
48
|
+
|
49
|
+
# workaround bug in old rails
|
50
|
+
# https://github.com/rails/rails/pull/54264
|
51
|
+
gem "concurrent-ruby", "< 1.3.5"
|
48
52
|
when /^6\.1\./
|
49
53
|
# rails previous to 7.1 can't use sqlite 2
|
50
54
|
gem "sqlite3", "~> 1.4"
|
@@ -53,17 +57,18 @@ if ENV['RAILS_VERSION']
|
|
53
57
|
# Once mail 2.8.0 final is released this will not be required.
|
54
58
|
# https://github.com/mikel/mail/pull/1472
|
55
59
|
gem "mail", ">= 2.8.0.rc1"
|
60
|
+
|
61
|
+
# workaround bug in old rails
|
62
|
+
# https://github.com/rails/rails/pull/54264
|
63
|
+
gem "concurrent-ruby", "< 1.3.5"
|
56
64
|
when /^6\.0\./
|
57
65
|
# rails previous to 7.1 can't use sqlite 2
|
58
66
|
gem "sqlite3", "~> 1.4"
|
59
67
|
|
60
68
|
gem 'sass-rails', '>= 6'
|
61
|
-
when /^5\.[12]\./
|
62
|
-
# rails previous to 7.1 can't use sqlite 2
|
63
|
-
gem "sqlite3", "~> 1.4"
|
64
69
|
|
65
|
-
|
66
|
-
|
67
|
-
gem
|
70
|
+
# workaround bug in old rails
|
71
|
+
# https://github.com/rails/rails/pull/54264
|
72
|
+
gem "concurrent-ruby", "< 1.3.5"
|
68
73
|
end
|
69
74
|
end
|
data/browse-everything.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_dependency 'rails', '>= 4.2', '< 8.1'
|
27
27
|
spec.add_dependency 'ruby-box'
|
28
28
|
spec.add_dependency 'signet', '~> 0.8'
|
29
|
-
spec.add_dependency '
|
29
|
+
spec.add_dependency 'faraday', "~> 2.0"
|
30
30
|
|
31
31
|
# Development dependencies include dependencies necessary for running
|
32
32
|
# the dummy test app at ./spec/dummy_test_app
|
@@ -70,7 +70,7 @@ module BrowseEverything
|
|
70
70
|
# @param path [String] the path (default to the root)
|
71
71
|
# @return [Array<BrowseEverything::FileEntry>] file entries for the path
|
72
72
|
def list_files(drive, request_params, path: '')
|
73
|
-
drive.list_files(request_params.to_h) do |file_list, error|
|
73
|
+
drive.list_files(**request_params.to_h) do |file_list, error|
|
74
74
|
# Raise an exception if there was an error Google API's
|
75
75
|
if error.present?
|
76
76
|
# In order to properly trigger reauthentication, the token must be cleared
|
@@ -2,25 +2,25 @@
|
|
2
2
|
|
3
3
|
require 'addressable'
|
4
4
|
require 'tempfile'
|
5
|
-
require '
|
5
|
+
require 'faraday'
|
6
6
|
|
7
7
|
module BrowseEverything
|
8
8
|
# Class for raising errors when a download is invalid
|
9
9
|
class DownloadError < StandardError
|
10
|
-
|
10
|
+
attr_accessor :response_body
|
11
11
|
|
12
12
|
# Constructor
|
13
13
|
# @param msg [String]
|
14
|
-
# @param response [
|
15
|
-
def initialize(msg,
|
16
|
-
@
|
14
|
+
# @param response [String] response from the server
|
15
|
+
def initialize(msg, response_body)
|
16
|
+
@response_body = response_body
|
17
17
|
super(msg)
|
18
18
|
end
|
19
19
|
|
20
20
|
# Generate the message for the exception
|
21
21
|
# @return [String]
|
22
22
|
def message
|
23
|
-
"#{super}: #{
|
23
|
+
"#{super}: #{response_body}"
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -36,7 +36,7 @@ module BrowseEverything
|
|
36
36
|
# @param headers [Hash] any custom headers required to transit the request
|
37
37
|
def can_retrieve?(uri, headers = {})
|
38
38
|
request_headers = headers.merge(Range: 'bytes=0-0')
|
39
|
-
response =
|
39
|
+
response = Faraday.get(uri, headers: request_headers)
|
40
40
|
response.success?
|
41
41
|
end
|
42
42
|
end
|
@@ -133,17 +133,23 @@ module BrowseEverything
|
|
133
133
|
file_size = options.fetch(:file_size)
|
134
134
|
headers = options.fetch(:headers)
|
135
135
|
url = options.fetch(:url)
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
136
|
+
error_response = +""
|
137
|
+
|
138
|
+
conn = Faraday.new(url.to_s, headers: headers)
|
139
|
+
response = conn.get do |req|
|
140
|
+
req.options.on_data = proc do |chunk, overall_received_bytes, env|
|
141
|
+
if env.status == 200
|
142
|
+
# will yield to block passed in to outer retrieve_http, amazing.
|
143
|
+
yield(chunk, overall_received_bytes, file_size)
|
144
|
+
else
|
145
|
+
error_response << chunk
|
146
|
+
end
|
147
|
+
end
|
141
148
|
end
|
142
|
-
|
143
|
-
|
144
|
-
|
149
|
+
|
150
|
+
unless response.status == 200
|
151
|
+
raise DownloadError.new("#{self.class}: Failed to download #{url}: Status Code: #{response.status}", error_response)
|
145
152
|
end
|
146
|
-
request.run
|
147
153
|
end
|
148
154
|
|
149
155
|
# Retrieve the file size
|
@@ -158,7 +164,7 @@ module BrowseEverything
|
|
158
164
|
when 'file'
|
159
165
|
File.size(url.path)
|
160
166
|
when /https?/
|
161
|
-
response =
|
167
|
+
response = Faraday.head(url.to_s, headers: headers)
|
162
168
|
length_value = response.headers['Content-Length'] || file_size
|
163
169
|
length_value.to_i
|
164
170
|
else
|
@@ -160,12 +160,13 @@ describe BrowseEverything::Retriever do
|
|
160
160
|
stub_request(
|
161
161
|
:get, "https://retrieve.cloud.example.com/some/dir/file_error.pdf"
|
162
162
|
).and_return(
|
163
|
-
status: 403
|
163
|
+
status: 403,
|
164
|
+
body: "Did not like this"
|
164
165
|
)
|
165
166
|
end
|
166
167
|
|
167
168
|
it 'raises an exception' do
|
168
|
-
expect { retriever.download(download_options) }.to raise_error(BrowseEverything::DownloadError, /BrowseEverything::Retriever: Failed to download/)
|
169
|
+
expect { retriever.download(download_options) }.to raise_error(BrowseEverything::DownloadError, /BrowseEverything::Retriever: Failed to download.* Status Code: 403.*Did not like this/)
|
169
170
|
end
|
170
171
|
end
|
171
172
|
end
|
@@ -234,7 +235,7 @@ describe BrowseEverything::Retriever do
|
|
234
235
|
let(:url) { 'https://retrieve.cloud.example.com/some/dir/can_retrieve.pdf' }
|
235
236
|
before do
|
236
237
|
stub_request(
|
237
|
-
:get,
|
238
|
+
:get, %r{^https://retrieve.cloud.example.com/some/dir/can_retrieve.pdf\?}
|
238
239
|
).to_return(
|
239
240
|
status: 206,
|
240
241
|
body: '%'
|
@@ -250,7 +251,7 @@ describe BrowseEverything::Retriever do
|
|
250
251
|
let(:url) { 'https://retrieve.cloud.example.com/some/dir/cannot_retrieve.pdf' }
|
251
252
|
before do
|
252
253
|
stub_request(
|
253
|
-
:get,
|
254
|
+
:get, %r{^https://retrieve.cloud.example.com/some/dir/cannot_retrieve.pdf\?}
|
254
255
|
).to_return(
|
255
256
|
status: 403
|
256
257
|
)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browse-everything
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carolyn Cole
|
@@ -10,10 +10,9 @@ authors:
|
|
10
10
|
- Thomas Scherz
|
11
11
|
- Xiaoming Wang
|
12
12
|
- Jeremy Friesen
|
13
|
-
autorequire:
|
14
13
|
bindir: bin
|
15
14
|
cert_chain: []
|
16
|
-
date:
|
15
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
17
16
|
dependencies:
|
18
17
|
- !ruby/object:Gem::Dependency
|
19
18
|
name: addressable
|
@@ -140,19 +139,19 @@ dependencies:
|
|
140
139
|
- !ruby/object:Gem::Version
|
141
140
|
version: '0.8'
|
142
141
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
142
|
+
name: faraday
|
144
143
|
requirement: !ruby/object:Gem::Requirement
|
145
144
|
requirements:
|
146
|
-
- - "
|
145
|
+
- - "~>"
|
147
146
|
- !ruby/object:Gem::Version
|
148
|
-
version: '0'
|
147
|
+
version: '2.0'
|
149
148
|
type: :runtime
|
150
149
|
prerelease: false
|
151
150
|
version_requirements: !ruby/object:Gem::Requirement
|
152
151
|
requirements:
|
153
|
-
- - "
|
152
|
+
- - "~>"
|
154
153
|
- !ruby/object:Gem::Version
|
155
|
-
version: '0'
|
154
|
+
version: '2.0'
|
156
155
|
- !ruby/object:Gem::Dependency
|
157
156
|
name: bixby
|
158
157
|
requirement: !ruby/object:Gem::Requirement
|
@@ -616,7 +615,6 @@ homepage: https://github.com/projecthydra/browse-everything
|
|
616
615
|
licenses:
|
617
616
|
- Apache 2
|
618
617
|
metadata: {}
|
619
|
-
post_install_message:
|
620
618
|
rdoc_options: []
|
621
619
|
require_paths:
|
622
620
|
- lib
|
@@ -631,8 +629,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
631
629
|
- !ruby/object:Gem::Version
|
632
630
|
version: '0'
|
633
631
|
requirements: []
|
634
|
-
rubygems_version: 3.
|
635
|
-
signing_key:
|
632
|
+
rubygems_version: 3.7.1
|
636
633
|
specification_version: 4
|
637
634
|
summary: AJAX/Rails engine file browser for cloud storage services
|
638
635
|
test_files:
|