browse-everything 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BrowseEverything
4
- VERSION = '1.1.0'
4
+ VERSION = '1.1.1'
5
5
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe 'Compiling the stylesheets', type: :feature do
3
+ describe 'Compiling the stylesheets', type: :feature, js: true do
4
4
  it 'does not raise errors' do
5
5
  visit '/'
6
6
  expect(page).not_to have_content 'Sass::SyntaxError'
@@ -15,9 +15,49 @@ describe BrowseEverything::Driver do
15
15
  end
16
16
  end
17
17
 
18
- describe '#sorter' do
19
- it 'defaults to nil' do
20
- expect(described_class.sorter).to be nil
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
 
@@ -87,7 +87,7 @@ module BrowserConfigHelper
87
87
  app_key: 'S3AppKey',
88
88
  app_secret: 'S3AppSecret',
89
89
  bucket: 's3.bucket',
90
- region: 's3.region'
90
+ region: 'us-east-1'
91
91
  })
92
92
  end
93
93
 
@@ -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
- insert_into_file 'app/assets/javascripts/application.js', after: '//= require_tree .' do
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.1.0
4
+ version: 1.1.1
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: 2020-10-23 00:00:00.000000000 Z
16
+ date: 2020-11-17 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: addressable
@@ -120,7 +120,7 @@ dependencies:
120
120
  version: '4.2'
121
121
  - - "<"
122
122
  - !ruby/object:Gem::Version
123
- version: '6.0'
123
+ version: '7.0'
124
124
  type: :runtime
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
@@ -130,7 +130,7 @@ dependencies:
130
130
  version: '4.2'
131
131
  - - "<"
132
132
  - !ruby/object:Gem::Version
133
- version: '6.0'
133
+ version: '7.0'
134
134
  - !ruby/object:Gem::Dependency
135
135
  name: ruby-box
136
136
  requirement: !ruby/object:Gem::Requirement
@@ -191,16 +191,16 @@ dependencies:
191
191
  name: bixby
192
192
  requirement: !ruby/object:Gem::Requirement
193
193
  requirements:
194
- - - ">="
194
+ - - "~>"
195
195
  - !ruby/object:Gem::Version
196
- version: '1.0'
196
+ version: '3.0'
197
197
  type: :development
198
198
  prerelease: false
199
199
  version_requirements: !ruby/object:Gem::Requirement
200
200
  requirements:
201
- - - ">="
201
+ - - "~>"
202
202
  - !ruby/object:Gem::Version
203
- version: '1.0'
203
+ version: '3.0'
204
204
  - !ruby/object:Gem::Dependency
205
205
  name: bundler
206
206
  requirement: !ruby/object:Gem::Requirement
@@ -495,6 +495,7 @@ files:
495
495
  - SUPPORT.md
496
496
  - app/assets/javascripts/browse_everything.js
497
497
  - app/assets/javascripts/browse_everything/behavior.js
498
+ - app/assets/javascripts/treetable.webpack.js
498
499
  - app/assets/stylesheets/browse_everything.scss
499
500
  - app/assets/stylesheets/browse_everything/_browse_everything.scss
500
501
  - app/assets/stylesheets/browse_everything/_browse_everything_bootstrap3.scss
@@ -582,7 +583,7 @@ homepage: https://github.com/projecthydra/browse-everything
582
583
  licenses:
583
584
  - Apache 2
584
585
  metadata: {}
585
- post_install_message:
586
+ post_install_message:
586
587
  rdoc_options: []
587
588
  require_paths:
588
589
  - lib
@@ -597,8 +598,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
597
598
  - !ruby/object:Gem::Version
598
599
  version: '0'
599
600
  requirements: []
600
- rubygems_version: 3.1.2
601
- signing_key:
601
+ rubygems_version: 3.0.3
602
+ signing_key:
602
603
  specification_version: 4
603
604
  summary: AJAX/Rails engine file browser for cloud storage services
604
605
  test_files: