browse-everything 1.0.0 → 1.1.2
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/.circleci/config.yml +82 -133
- data/.gitignore +1 -0
- data/.rubocop.yml +43 -35
- data/CONTRIBUTING.md +3 -3
- data/Gemfile +3 -6
- data/LICENSE.txt +205 -22
- data/README.md +7 -6
- data/app/assets/javascripts/browse_everything/behavior.js +16 -8
- data/app/assets/javascripts/treetable.webpack.js +687 -0
- data/app/controllers/browse_everything_controller.rb +60 -60
- data/app/helpers/browse_everything_helper.rb +4 -0
- data/app/views/browse_everything/_files.html.erb +4 -2
- data/browse-everything.gemspec +6 -7
- data/lib/browse_everything.rb +2 -1
- data/lib/browse_everything/auth/google/credentials.rb +5 -5
- data/lib/browse_everything/auth/google/request_parameters.rb +38 -38
- data/lib/browse_everything/driver/base.rb +14 -14
- data/lib/browse_everything/driver/box.rb +62 -55
- data/lib/browse_everything/driver/dropbox.rb +34 -33
- data/lib/browse_everything/driver/file_system.rb +30 -18
- data/lib/browse_everything/driver/google_drive.rb +40 -39
- data/lib/browse_everything/driver/s3.rb +61 -45
- data/lib/browse_everything/file_entry.rb +1 -1
- data/lib/browse_everything/retriever.rb +69 -69
- data/lib/browse_everything/version.rb +1 -1
- data/spec/features/test_compiling_stylesheets_spec.rb +1 -1
- data/spec/lib/browse_everything/driver_spec.rb +43 -3
- data/spec/spec_helper.rb +9 -3
- data/spec/support/capybara.rb +0 -5
- data/spec/test_app_templates/Gemfile.extra +9 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +54 -3
- metadata +49 -45
- data/.travis.yml +0 -30
@@ -15,9 +15,49 @@ describe BrowseEverything::Driver do
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
after do
|
19
|
+
Object.send(:remove_const, :MyDriver)
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '#default_sorter' do
|
23
|
+
let(:file1) do
|
24
|
+
instance_double(BrowseEverything::FileEntry)
|
25
|
+
end
|
26
|
+
let(:file2) do
|
27
|
+
instance_double(BrowseEverything::FileEntry)
|
28
|
+
end
|
29
|
+
let(:file3) do
|
30
|
+
instance_double(BrowseEverything::FileEntry)
|
31
|
+
end
|
32
|
+
let(:files) do
|
33
|
+
[
|
34
|
+
file1,
|
35
|
+
file2,
|
36
|
+
file3
|
37
|
+
]
|
38
|
+
end
|
39
|
+
|
40
|
+
before do
|
41
|
+
class MyNewDriver < BrowseEverything::Driver::Base; end
|
42
|
+
|
43
|
+
allow(file1).to receive(:container?).and_return(false)
|
44
|
+
allow(file1).to receive(:name).and_return('test file1')
|
45
|
+
allow(file2).to receive(:container?).and_return(false)
|
46
|
+
allow(file2).to receive(:name).and_return('test file2')
|
47
|
+
allow(file3).to receive(:container?).and_return(true)
|
48
|
+
allow(file3).to receive(:name).and_return('test container1')
|
49
|
+
end
|
50
|
+
after do
|
51
|
+
Object.send(:remove_const, :MyNewDriver)
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'defaults to proc which sorts by containers' do
|
55
|
+
expect(MyNewDriver.default_sorter).to be_a(Proc)
|
56
|
+
|
57
|
+
results = MyNewDriver.default_sorter.call(files)
|
58
|
+
expect(results.first.name).to eq file3.name
|
59
|
+
expect(results[1].name).to eq file1.name
|
60
|
+
expect(results.last.name).to eq file2.name
|
21
61
|
end
|
22
62
|
end
|
23
63
|
|
data/spec/spec_helper.rb
CHANGED
@@ -4,7 +4,7 @@ ENV['RAILS_ENV'] ||= 'test'
|
|
4
4
|
require 'bundler/setup'
|
5
5
|
|
6
6
|
def coverage_needed?
|
7
|
-
ENV['COVERAGE'] || ENV['
|
7
|
+
ENV['COVERAGE'] || ENV['CI']
|
8
8
|
end
|
9
9
|
|
10
10
|
if coverage_needed?
|
@@ -36,7 +36,7 @@ require 'capybara/rspec'
|
|
36
36
|
require 'rspec'
|
37
37
|
require 'rspec/rails'
|
38
38
|
require 'rspec/its'
|
39
|
-
require '
|
39
|
+
require 'webdrivers'
|
40
40
|
|
41
41
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
42
42
|
# in spec/support/ and its subdirectories.
|
@@ -46,6 +46,12 @@ require 'webmock/rspec'
|
|
46
46
|
WebMock.disable_net_connect!(allow_localhost: true)
|
47
47
|
|
48
48
|
RSpec.configure do |config|
|
49
|
+
config.before(:each, type: :feature) { WebMock.disable! }
|
50
|
+
config.after(:each, type: :feature) do
|
51
|
+
WebMock.enable!
|
52
|
+
WebMock.disable_net_connect!(allow_localhost: true)
|
53
|
+
end
|
54
|
+
|
49
55
|
config.expect_with :rspec do |c|
|
50
56
|
c.syntax = %i[should expect]
|
51
57
|
end
|
@@ -81,7 +87,7 @@ module BrowserConfigHelper
|
|
81
87
|
app_key: 'S3AppKey',
|
82
88
|
app_secret: 'S3AppSecret',
|
83
89
|
bucket: 's3.bucket',
|
84
|
-
region: '
|
90
|
+
region: 'us-east-1'
|
85
91
|
})
|
86
92
|
end
|
87
93
|
|
data/spec/support/capybara.rb
CHANGED
@@ -4,11 +4,6 @@ require 'selenium-webdriver'
|
|
4
4
|
|
5
5
|
# Temporary pin until chromedriver-helper patched to deal with change in chromedriver versioning
|
6
6
|
# See https://github.com/flavorjones/chromedriver-helper/pull/63
|
7
|
-
# @note In January 2018, TravisCI disabled Chrome sandboxing in its Linux
|
8
|
-
# container build environments to mitigate Meltdown/Spectre
|
9
|
-
# vulnerabilities, at which point Hyrax could no longer use the
|
10
|
-
# Capybara-provided :selenium_chrome_headless driver (which does not
|
11
|
-
# include the `--no-sandbox` argument).
|
12
7
|
Capybara.register_driver :selenium_chrome_headless_sandboxless do |app|
|
13
8
|
browser_options = ::Selenium::WebDriver::Chrome::Options.new
|
14
9
|
browser_options.args << '--headless'
|
@@ -1,6 +1,15 @@
|
|
1
1
|
gem 'jquery-rails'
|
2
2
|
gem 'puma-rails'
|
3
3
|
|
4
|
+
if ENV['RAILS_VERSION']
|
5
|
+
case ENV['RAILS_VERSION']
|
6
|
+
when /6\./
|
7
|
+
gem 'webpacker', '~> 4.0'
|
8
|
+
when /5\./
|
9
|
+
gem 'webpacker', '~> 4.0'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
4
13
|
if ENV['TEST_BOOTSTRAP'] == "3"
|
5
14
|
gem "bootstrap-sass"
|
6
15
|
else
|
@@ -28,11 +28,62 @@ class TestAppGenerator < Rails::Generators::Base
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def inject_javascript
|
31
|
-
|
32
|
-
|
31
|
+
if /^6\./.match?(Rails.version)
|
32
|
+
# Both jQuery and Twitter Bootstrap 3.x need to be added for legacy JavaScript
|
33
|
+
system('yarn add jquery@3.3.1')
|
34
|
+
system('yarn add bootstrap@3.4.1')
|
35
|
+
system('yarn install')
|
36
|
+
|
37
|
+
# Adding the JavaScript module dependencies
|
38
|
+
insert_into_file 'app/javascript/packs/application.js', after: 'require("channels")' do
|
39
|
+
%(
|
40
|
+
require("jquery")
|
41
|
+
require("bootstrap")
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Here the JavaScript needs to be injected for Webpacker
|
46
|
+
insert_into_file 'config/webpack/environment.js', after: "const { environment } = require('@rails/webpacker')" do
|
47
|
+
%(
|
48
|
+
const webpack = require('webpack')
|
49
|
+
|
50
|
+
environment.plugins.prepend('Provide',
|
51
|
+
new webpack.ProvidePlugin({
|
52
|
+
$: 'jquery/src/jquery',
|
53
|
+
jQuery: 'jquery/src/jquery'
|
54
|
+
})
|
55
|
+
)
|
56
|
+
)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Copy the TreeTable JavaScript
|
60
|
+
copy_file('../../app/assets/javascripts/treetable.webpack.js', 'app/javascript/packs/treetable.js')
|
61
|
+
|
62
|
+
# Copy the browse_everything JavaScript
|
63
|
+
copy_file('../../app/assets/javascripts/browse_everything/behavior.js', 'app/javascript/packs/browse-everything.js')
|
64
|
+
|
65
|
+
# Adding the JavaScript module dependencies
|
66
|
+
insert_into_file 'app/javascript/packs/browse-everything.js', before: "'use strict';" do
|
67
|
+
%(
|
68
|
+
require("bootstrap")
|
69
|
+
require("./treetable")
|
70
|
+
)
|
71
|
+
end
|
72
|
+
|
73
|
+
# Load the new packs into the view
|
74
|
+
insert_into_file 'app/views/layouts/application.html.erb', before: '</head>' do
|
75
|
+
%(
|
76
|
+
<%= javascript_pack_tag 'treetable', 'data-turbolinks-track': 'reload' %>
|
77
|
+
<%= javascript_pack_tag 'browse-everything', 'data-turbolinks-track': 'reload' %>
|
78
|
+
)
|
79
|
+
end
|
80
|
+
else
|
81
|
+
insert_into_file 'app/assets/javascripts/application.js', after: '//= require_tree .' do
|
82
|
+
%(
|
33
83
|
//= require jquery
|
34
84
|
//= require browse_everything
|
35
|
-
|
85
|
+
)
|
86
|
+
end
|
36
87
|
end
|
37
88
|
end
|
38
89
|
|
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.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carolyn Cole
|
@@ -10,10 +10,10 @@ authors:
|
|
10
10
|
- Thomas Scherz
|
11
11
|
- Xiaoming Wang
|
12
12
|
- Jeremy Friesen
|
13
|
-
autorequire:
|
13
|
+
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date:
|
16
|
+
date: 2020-11-18 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: addressable
|
@@ -75,30 +75,42 @@ dependencies:
|
|
75
75
|
name: google_drive
|
76
76
|
requirement: !ruby/object:Gem::Requirement
|
77
77
|
requirements:
|
78
|
-
- - "
|
78
|
+
- - ">="
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '2.1'
|
81
|
+
- - "<"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '4'
|
81
84
|
type: :runtime
|
82
85
|
prerelease: false
|
83
86
|
version_requirements: !ruby/object:Gem::Requirement
|
84
87
|
requirements:
|
85
|
-
- - "
|
88
|
+
- - ">="
|
86
89
|
- !ruby/object:Gem::Version
|
87
90
|
version: '2.1'
|
91
|
+
- - "<"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '4'
|
88
94
|
- !ruby/object:Gem::Dependency
|
89
95
|
name: googleauth
|
90
96
|
requirement: !ruby/object:Gem::Requirement
|
91
97
|
requirements:
|
92
|
-
- -
|
98
|
+
- - ">="
|
93
99
|
- !ruby/object:Gem::Version
|
94
100
|
version: 0.6.6
|
101
|
+
- - "<"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.0'
|
95
104
|
type: :runtime
|
96
105
|
prerelease: false
|
97
106
|
version_requirements: !ruby/object:Gem::Requirement
|
98
107
|
requirements:
|
99
|
-
- -
|
108
|
+
- - ">="
|
100
109
|
- !ruby/object:Gem::Version
|
101
110
|
version: 0.6.6
|
111
|
+
- - "<"
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '1.0'
|
102
114
|
- !ruby/object:Gem::Dependency
|
103
115
|
name: rails
|
104
116
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,6 +118,9 @@ dependencies:
|
|
106
118
|
- - ">="
|
107
119
|
- !ruby/object:Gem::Version
|
108
120
|
version: '4.2'
|
121
|
+
- - "<"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '7.0'
|
109
124
|
type: :runtime
|
110
125
|
prerelease: false
|
111
126
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -113,6 +128,9 @@ dependencies:
|
|
113
128
|
- - ">="
|
114
129
|
- !ruby/object:Gem::Version
|
115
130
|
version: '4.2'
|
131
|
+
- - "<"
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '7.0'
|
116
134
|
- !ruby/object:Gem::Dependency
|
117
135
|
name: ruby-box
|
118
136
|
requirement: !ruby/object:Gem::Requirement
|
@@ -141,20 +159,6 @@ dependencies:
|
|
141
159
|
- - "~>"
|
142
160
|
- !ruby/object:Gem::Version
|
143
161
|
version: '0.8'
|
144
|
-
- !ruby/object:Gem::Dependency
|
145
|
-
name: thor
|
146
|
-
requirement: !ruby/object:Gem::Requirement
|
147
|
-
requirements:
|
148
|
-
- - "~>"
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
version: '0.19'
|
151
|
-
type: :runtime
|
152
|
-
prerelease: false
|
153
|
-
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
requirements:
|
155
|
-
- - "~>"
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '0.19'
|
158
162
|
- !ruby/object:Gem::Dependency
|
159
163
|
name: typhoeus
|
160
164
|
requirement: !ruby/object:Gem::Requirement
|
@@ -173,28 +177,28 @@ dependencies:
|
|
173
177
|
name: bixby
|
174
178
|
requirement: !ruby/object:Gem::Requirement
|
175
179
|
requirements:
|
176
|
-
- - "
|
180
|
+
- - "~>"
|
177
181
|
- !ruby/object:Gem::Version
|
178
|
-
version: '
|
182
|
+
version: '3.0'
|
179
183
|
type: :development
|
180
184
|
prerelease: false
|
181
185
|
version_requirements: !ruby/object:Gem::Requirement
|
182
186
|
requirements:
|
183
|
-
- - "
|
187
|
+
- - "~>"
|
184
188
|
- !ruby/object:Gem::Version
|
185
|
-
version: '
|
189
|
+
version: '3.0'
|
186
190
|
- !ruby/object:Gem::Dependency
|
187
191
|
name: bundler
|
188
192
|
requirement: !ruby/object:Gem::Requirement
|
189
193
|
requirements:
|
190
|
-
- - "
|
194
|
+
- - ">="
|
191
195
|
- !ruby/object:Gem::Version
|
192
196
|
version: '1.3'
|
193
197
|
type: :development
|
194
198
|
prerelease: false
|
195
199
|
version_requirements: !ruby/object:Gem::Requirement
|
196
200
|
requirements:
|
197
|
-
- - "
|
201
|
+
- - ">="
|
198
202
|
- !ruby/object:Gem::Version
|
199
203
|
version: '1.3'
|
200
204
|
- !ruby/object:Gem::Dependency
|
@@ -211,20 +215,6 @@ dependencies:
|
|
211
215
|
- - ">="
|
212
216
|
- !ruby/object:Gem::Version
|
213
217
|
version: '0'
|
214
|
-
- !ruby/object:Gem::Dependency
|
215
|
-
name: chromedriver-helper
|
216
|
-
requirement: !ruby/object:Gem::Requirement
|
217
|
-
requirements:
|
218
|
-
- - "~>"
|
219
|
-
- !ruby/object:Gem::Version
|
220
|
-
version: '2.1'
|
221
|
-
type: :development
|
222
|
-
prerelease: false
|
223
|
-
version_requirements: !ruby/object:Gem::Requirement
|
224
|
-
requirements:
|
225
|
-
- - "~>"
|
226
|
-
- !ruby/object:Gem::Version
|
227
|
-
version: '2.1'
|
228
218
|
- !ruby/object:Gem::Dependency
|
229
219
|
name: coveralls
|
230
220
|
requirement: !ruby/object:Gem::Requirement
|
@@ -435,6 +425,20 @@ dependencies:
|
|
435
425
|
- - ">="
|
436
426
|
- !ruby/object:Gem::Version
|
437
427
|
version: '0'
|
428
|
+
- !ruby/object:Gem::Dependency
|
429
|
+
name: webdrivers
|
430
|
+
requirement: !ruby/object:Gem::Requirement
|
431
|
+
requirements:
|
432
|
+
- - ">="
|
433
|
+
- !ruby/object:Gem::Version
|
434
|
+
version: '0'
|
435
|
+
type: :development
|
436
|
+
prerelease: false
|
437
|
+
version_requirements: !ruby/object:Gem::Requirement
|
438
|
+
requirements:
|
439
|
+
- - ">="
|
440
|
+
- !ruby/object:Gem::Version
|
441
|
+
version: '0'
|
438
442
|
- !ruby/object:Gem::Dependency
|
439
443
|
name: webmock
|
440
444
|
requirement: !ruby/object:Gem::Requirement
|
@@ -467,7 +471,6 @@ files:
|
|
467
471
|
- ".rspec"
|
468
472
|
- ".rubocop.yml"
|
469
473
|
- ".rubocop_todo.yml"
|
470
|
-
- ".travis.yml"
|
471
474
|
- CODE_OF_CONDUCT.md
|
472
475
|
- CONTRIBUTING.md
|
473
476
|
- Gemfile
|
@@ -478,6 +481,7 @@ files:
|
|
478
481
|
- SUPPORT.md
|
479
482
|
- app/assets/javascripts/browse_everything.js
|
480
483
|
- app/assets/javascripts/browse_everything/behavior.js
|
484
|
+
- app/assets/javascripts/treetable.webpack.js
|
481
485
|
- app/assets/stylesheets/browse_everything.scss
|
482
486
|
- app/assets/stylesheets/browse_everything/_browse_everything.scss
|
483
487
|
- app/assets/stylesheets/browse_everything/_browse_everything_bootstrap3.scss
|
@@ -565,7 +569,7 @@ homepage: https://github.com/projecthydra/browse-everything
|
|
565
569
|
licenses:
|
566
570
|
- Apache 2
|
567
571
|
metadata: {}
|
568
|
-
post_install_message:
|
572
|
+
post_install_message:
|
569
573
|
rdoc_options: []
|
570
574
|
require_paths:
|
571
575
|
- lib
|
@@ -580,8 +584,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
580
584
|
- !ruby/object:Gem::Version
|
581
585
|
version: '0'
|
582
586
|
requirements: []
|
583
|
-
rubygems_version: 3.0.
|
584
|
-
signing_key:
|
587
|
+
rubygems_version: 3.0.3
|
588
|
+
signing_key:
|
585
589
|
specification_version: 4
|
586
590
|
summary: AJAX/Rails engine file browser for cloud storage services
|
587
591
|
test_files:
|
data/.travis.yml
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
sudo: false
|
3
|
-
dist: trusty
|
4
|
-
sudo: required
|
5
|
-
addons:
|
6
|
-
chrome: stable
|
7
|
-
cache:
|
8
|
-
bundler: true
|
9
|
-
|
10
|
-
before_install:
|
11
|
-
- gem update --system # https://docs.travis-ci.com/user/languages/ruby/#Upgrading-RubyGems
|
12
|
-
- gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
|
13
|
-
- gem install bundler -v '< 2'
|
14
|
-
- npm install -g karma karma-jasmine karma-chrome-launcher
|
15
|
-
- google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost &
|
16
|
-
|
17
|
-
rvm:
|
18
|
-
- 2.6.1
|
19
|
-
- 2.5.3
|
20
|
-
- 2.4.5
|
21
|
-
|
22
|
-
env:
|
23
|
-
global:
|
24
|
-
- CHROME_BIN=google-chrome-stable
|
25
|
-
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true
|
26
|
-
matrix:
|
27
|
-
- "RAILS_VERSION=5.2.2"
|
28
|
-
- "RAILS_VERSION=5.2.2 TEST_BOOTSTRAP=3"
|
29
|
-
- "RAILS_VERSION=5.1.6.1"
|
30
|
-
- "RAILS_VERSION=5.1.6.1 TEST_BOOTSTRAP=3"
|