browse-everything 0.10.5 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +16 -0
  4. data/.rubocop_todo.yml +149 -0
  5. data/.travis.yml +5 -6
  6. data/Rakefile +2 -2
  7. data/app/controllers/browse_everything_controller.rb +19 -22
  8. data/app/helpers/bootstrap_version_helper.rb +9 -11
  9. data/app/helpers/browse_everything_helper.rb +11 -22
  10. data/app/views/browse_everything/_file.html.erb +7 -11
  11. data/app/views/browse_everything/_files.html.erb +4 -7
  12. data/app/views/browse_everything/index.html.erb +1 -1
  13. data/browse-everything.gemspec +37 -34
  14. data/config/routes.rb +3 -3
  15. data/lib/browse-everything.rb +1 -1
  16. data/lib/browse_everything.rb +9 -8
  17. data/lib/browse_everything/browser.rb +4 -4
  18. data/lib/browse_everything/driver/base.rb +14 -14
  19. data/lib/browse_everything/driver/box.rb +48 -59
  20. data/lib/browse_everything/driver/dropbox.rb +10 -11
  21. data/lib/browse_everything/driver/file_system.rb +19 -24
  22. data/lib/browse_everything/driver/google_drive.rb +58 -82
  23. data/lib/browse_everything/driver/s3.rb +87 -0
  24. data/lib/browse_everything/driver/sky_drive.rb +41 -47
  25. data/lib/browse_everything/engine.rb +2 -2
  26. data/lib/browse_everything/file_entry.rb +3 -3
  27. data/lib/browse_everything/retriever.rb +19 -20
  28. data/lib/browse_everything/version.rb +1 -1
  29. data/lib/generators/browse_everything/assets_generator.rb +2 -4
  30. data/lib/generators/browse_everything/config_generator.rb +12 -12
  31. data/lib/generators/browse_everything/install_generator.rb +2 -4
  32. data/lib/generators/browse_everything/templates/browse_everything_providers.yml.example +6 -0
  33. data/spec/features/select_files_spec.rb +12 -12
  34. data/spec/features/test_compiling_stylesheets_spec.rb +2 -2
  35. data/spec/helper/browse_everything_controller_helper_spec.rb +8 -8
  36. data/spec/javascripts/jasmine_spec.rb +5 -5
  37. data/spec/javascripts/support/jasmine_helper.rb +9 -9
  38. data/spec/spec_helper.rb +26 -23
  39. data/spec/support/app/controllers/file_handler_controller.rb +3 -3
  40. data/spec/support/rake.rb +1 -1
  41. data/spec/test_app_templates/lib/generators/test_app_generator.rb +21 -22
  42. data/spec/unit/base_spec.rb +6 -6
  43. data/spec/unit/browse_everything_helper_spec.rb +9 -9
  44. data/spec/unit/browser_spec.rb +19 -19
  45. data/spec/unit/dropbox_spec.rb +44 -43
  46. data/spec/unit/file_entry_spec.rb +31 -31
  47. data/spec/unit/file_system_spec.rb +26 -26
  48. data/spec/unit/retriever_spec.rb +42 -43
  49. data/spec/unit/s3_spec.rb +77 -0
  50. data/spec/unit/sky_drive_spec.rb +31 -31
  51. data/spec/views/browse_everything/_file.html.erb_spec.rb +37 -37
  52. data/tasks/ci.rake +3 -3
  53. metadata +52 -7
  54. data/app/.DS_Store +0 -0
  55. data/app/views/.DS_Store +0 -0
@@ -1,94 +1,93 @@
1
- describe BrowseEverything::Retriever, vcr: { cassette_name: 'retriever', record: :none, } do
1
+ describe BrowseEverything::Retriever, vcr: { cassette_name: 'retriever', record: :none } do
2
2
  subject { BrowseEverything::Retriever.new }
3
- let(:datafile) { File.expand_path('../../fixtures/file_system/file_1.pdf',__FILE__) }
4
- let(:datafile_with_spaces) { File.expand_path('../../fixtures/file_system/file 1.pdf',__FILE__) }
5
- let(:data) { File.open(datafile,'rb',&:read) }
3
+ let(:datafile) { File.expand_path('../../fixtures/file_system/file_1.pdf', __FILE__) }
4
+ let(:datafile_with_spaces) { File.expand_path('../../fixtures/file_system/file 1.pdf', __FILE__) }
5
+ let(:data) { File.open(datafile, 'rb', &:read) }
6
6
  let(:data_with_spaces) { File.open(datafile_with_spaces, 'rb', &:read) }
7
7
  let(:size) { File.size(datafile) }
8
8
 
9
9
  context 'http://' do
10
- let(:spec) {
10
+ let(:spec) do
11
11
  {
12
- "0" => {
13
- "url"=>"https://retrieve.cloud.example.com/some/dir/file.pdf",
14
- "auth_header"=>{"Authorization"=>"Bearer ya29.kQCEAHj1bwFXr2AuGQJmSGRWQXpacmmYZs4kzCiXns3d6H1ZpIDWmdM8"},
15
- "expires"=>(Time.now + 3600).xmlschema,
16
- "file_name"=>"file.pdf",
17
- "file_size"=>size.to_s
12
+ '0' => {
13
+ 'url' => 'https://retrieve.cloud.example.com/some/dir/file.pdf',
14
+ 'auth_header' => { 'Authorization' => 'Bearer ya29.kQCEAHj1bwFXr2AuGQJmSGRWQXpacmmYZs4kzCiXns3d6H1ZpIDWmdM8' },
15
+ 'expires' => (Time.now + 3600).xmlschema,
16
+ 'file_name' => 'file.pdf',
17
+ 'file_size' => size.to_s
18
18
  }
19
19
  }
20
- }
20
+ end
21
21
 
22
- context "#retrieve" do
23
- it "content" do
22
+ context '#retrieve' do
23
+ it 'content' do
24
24
  content = ''
25
- subject.retrieve(spec['0']) { |chunk, retrieved, total| content << chunk }
25
+ subject.retrieve(spec['0']) { |chunk, _retrieved, _total| content << chunk }
26
26
  expect(content).to eq(data)
27
27
  end
28
28
 
29
- it "callbacks" do
29
+ it 'callbacks' do
30
30
  expect { |block| subject.retrieve(spec['0'], &block) }.to yield_with_args(data, data.length, data.length)
31
31
  end
32
32
  end
33
33
 
34
- context "#download" do
35
- it "content" do
34
+ context '#download' do
35
+ it 'content' do
36
36
  file = subject.download(spec['0'])
37
- expect(File.open(file,'rb',&:read)).to eq(data)
37
+ expect(File.open(file, 'rb', &:read)).to eq(data)
38
38
  end
39
39
 
40
- it "callbacks" do
40
+ it 'callbacks' do
41
41
  expect { |block| subject.download(spec['0'], &block) }.to yield_with_args(String, data.length, data.length)
42
42
  end
43
43
  end
44
44
  end
45
45
 
46
46
  context 'file://' do
47
- let(:spec) {
47
+ let(:spec) do
48
48
  {
49
- "0" => {
50
- "url"=>"file://#{datafile}",
51
- "file_name"=>"file.pdf",
52
- "file_size"=>size.to_s
49
+ '0' => {
50
+ 'url' => "file://#{datafile}",
51
+ 'file_name' => 'file.pdf',
52
+ 'file_size' => size.to_s
53
53
  },
54
- "1" => {
55
- "url" => "file://#{datafile_with_spaces}",
56
- "file_name" => "file.pdf",
57
- "file_size" => size.to_s
58
- }
54
+ '1' => {
55
+ 'url' => "file://#{datafile_with_spaces}",
56
+ 'file_name' => 'file.pdf',
57
+ 'file_size' => size.to_s
58
+ }
59
59
  }
60
- }
60
+ end
61
61
 
62
- context "#retrieve" do
63
- it "content" do
62
+ context '#retrieve' do
63
+ it 'content' do
64
64
  content = ''
65
- subject.retrieve(spec['0']) { |chunk, retrieved, total| content << chunk }
65
+ subject.retrieve(spec['0']) { |chunk, _retrieved, _total| content << chunk }
66
66
  expect(content).to eq(data)
67
67
  end
68
68
 
69
- it "content with spaces" do
69
+ it 'content with spaces' do
70
70
  content = ''
71
- subject.retrieve(spec['1']) { |chunk, retrieved, total| content << chunk }
72
- expect(content).to eq(data_with_spaces)
71
+ subject.retrieve(spec['1']) { |chunk, _retrieved, _total| content << chunk }
72
+ expect(content).to eq(data_with_spaces)
73
73
  end
74
74
 
75
- it "callbacks" do
75
+ it 'callbacks' do
76
76
  expect { |block| subject.retrieve(spec['0'], &block) }.to yield_with_args(data, data.length, data.length)
77
77
  end
78
78
  end
79
79
 
80
- context "#download" do
81
- it "content" do
80
+ context '#download' do
81
+ it 'content' do
82
82
  file = subject.download(spec['0'])
83
- expect(File.open(file,'rb',&:read)).to eq(data)
83
+ expect(File.open(file, 'rb', &:read)).to eq(data)
84
84
  end
85
85
 
86
- it "callbacks" do
86
+ it 'callbacks' do
87
87
  expect { |block| subject.download(spec['0'], &block) }.to yield_with_args(String, data.length, data.length)
88
88
  end
89
89
  end
90
90
  end
91
91
 
92
92
  context ''
93
-
94
93
  end
@@ -0,0 +1,77 @@
1
+ include BrowserConfigHelper
2
+
3
+ describe BrowseEverything::Driver::FileSystem do
4
+ before(:all) { stub_configuration }
5
+ after(:all) { unstub_configuration }
6
+ let(:browser) { BrowseEverything::Browser.new(url_options) }
7
+ let(:provider) { browser.providers['s3'] }
8
+
9
+ it '#validate_config' do
10
+ expect { BrowseEverything::Driver::S3.new({}) }.to raise_error(BrowseEverything::InitializationError)
11
+ end
12
+
13
+ describe '#contents' do
14
+ context 'root directory' do
15
+ before do
16
+ Aws.config[:s3] = {
17
+ stub_responses: {
18
+ list_objects: { is_truncated: false, marker: "", next_marker: nil, contents: [], name: "s3.bucket", prefix: "", delimiter: "/", max_keys: 1000, common_prefixes: [ { prefix: 'foo/' }, { prefix: 'bar/'} ], encoding_type: "url" },
19
+ }
20
+ }
21
+ end
22
+
23
+ let(:contents) { provider.contents('') }
24
+ context '[0]' do
25
+ subject { contents[0] }
26
+ its(:name) { should == 'bar' }
27
+ specify { should be_container }
28
+ end
29
+ context '[1]' do
30
+ subject { contents[1] }
31
+ its(:name) { should == 'foo' }
32
+ specify { should be_container }
33
+ end
34
+ end
35
+
36
+ context 'subdirectory' do
37
+ before do
38
+ Aws.config[:s3] = {
39
+ stub_responses: {
40
+ list_objects:
41
+ {
42
+ is_truncated: false, marker: "", next_marker: nil, name: "s3.bucket", prefix: "foo/", delimiter: "/", max_keys: 1000, common_prefixes: [], encoding_type: "url",
43
+ contents: [
44
+ { key: "foo/", last_modified: Time.parse('2014-02-03 16:27:01 UTC'), etag: "\"d41d8cd98f00b204e9800998ecf8427e\"", size: 0, storage_class: "STANDARD", owner: { display_name: "mbklein" } },
45
+ { key: "foo/baz.jpg", last_modified: Time.parse('2016-10-31 20:12:32 UTC'), etag: "\"4e2ad532e659a65e8f106b350255a7ba\"", size: 52645, storage_class: "STANDARD", owner: { display_name: "mbklein" } },
46
+ { key: "foo/quux.png", last_modified: Time.parse('2016-10-31 22:08:12 UTC'), etag: "\"a92bbe23736ebdbd37bdc795e7d570ad\"", size: 1511860, storage_class: "STANDARD", owner: { display_name: "mbklein" } }
47
+ ]
48
+ }
49
+ }
50
+ }
51
+ end
52
+
53
+ let(:contents) { provider.contents('foo/') }
54
+ context '[0]' do
55
+ subject { contents[0] }
56
+ its(:name) { should == '..' }
57
+ specify { should be_container }
58
+ end
59
+ context '[1]' do
60
+ subject { contents[1] }
61
+ its(:name) { should == 'baz.jpg' }
62
+ its(:location) { should == "s3:foo/baz.jpg" }
63
+ its(:type) { should == 'image/jpeg' }
64
+ its(:size) { should == 52645 }
65
+ specify { should_not be_container }
66
+ end
67
+ context '[2]' do
68
+ subject { contents[2] }
69
+ its(:name) { should == 'quux.png' }
70
+ its(:location) { should == "s3:foo/quux.png" }
71
+ its(:type) { should == 'image/png' }
72
+ its(:size) { should == 1511860 }
73
+ specify { should_not be_container }
74
+ end
75
+ end
76
+ end
77
+ end
@@ -2,50 +2,50 @@ describe BrowseEverything::Driver::SkyDrive do
2
2
  include BrowseEverything::Engine.routes.url_helpers
3
3
 
4
4
  def provider_yml
5
- {client_id: "CLIENTID", client_secret: "CLIENTSECRET", url_options:{ :port=>"3000", :protocol=>"http://", host:"example.com"}}
5
+ { client_id: 'CLIENTID', client_secret: 'CLIENTSECRET', url_options: { port: '3000', protocol: 'http://', host: 'example.com' } }
6
6
  end
7
7
 
8
8
  def redirect_url
9
9
  connector_response_url(provider_yml[:url_options])
10
10
  end
11
11
 
12
- it "can connect" do
13
- stub_request(:post, "https://login.live.com/oauth20_token.srf").
14
- with(:body => {"client_id"=>"CLIENTID", "client_secret"=>"CLIENTSECRET", "code"=>"code", "grant_type"=>"authorization_code", "redirect_uri"=>"#{redirect_url}"}).
15
- to_return(:status => 200,
16
- :body => {
17
- "token_type" => "bearer",
18
- "expires_at" => (Time.now + (60 * 60 * 24)).to_i,
19
- "scope" => "wl.skydrive_update,wl.offline_access",
20
- "access_token" => "access_token",
21
- "refresh_token" => "refresh_token",
22
- "authentication_token" => "authentication_token"
23
- }.to_json,
24
- :headers => {
25
- "content-type" => "application/json"})
12
+ it 'can connect' do
13
+ stub_request(:post, 'https://login.live.com/oauth20_token.srf')
14
+ .with(body: { 'client_id' => 'CLIENTID', 'client_secret' => 'CLIENTSECRET', 'code' => 'code', 'grant_type' => 'authorization_code', 'redirect_uri' => redirect_url.to_s })
15
+ .to_return(status: 200,
16
+ body: {
17
+ 'token_type' => 'bearer',
18
+ 'expires_at' => (Time.now + (60 * 60 * 24)).to_i,
19
+ 'scope' => 'wl.skydrive_update,wl.offline_access',
20
+ 'access_token' => 'access_token',
21
+ 'refresh_token' => 'refresh_token',
22
+ 'authentication_token' => 'authentication_token'
23
+ }.to_json,
24
+ headers: {
25
+ 'content-type' => 'application/json' })
26
26
 
27
27
  driver = BrowseEverything::Driver::SkyDrive.new(provider_yml)
28
- driver.connect({code:"code"},{})
28
+ driver.connect({ code: 'code' }, {})
29
29
  driver.authorized?.should == true
30
30
  end
31
31
 
32
- it "can connect but expires" do
33
- stub_request(:post, "https://login.live.com/oauth20_token.srf").
34
- with(:body => {"client_id"=>"CLIENTID", "client_secret"=>"CLIENTSECRET", "code"=>"code", "grant_type"=>"authorization_code", "redirect_uri"=>"#{redirect_url}"}).
35
- to_return(:status => 200,
36
- :body => {
37
- "token_type" => "bearer",
38
- "expires_at" => (Time.now - (60 * 60 * 24)).to_i,
39
- "scope" => "wl.skydrive_update,wl.offline_access",
40
- "access_token" => "access_token",
41
- "refresh_token" => "refresh_token",
42
- "authentication_token" => "authentication_token"
43
- }.to_json,
44
- :headers => {
45
- "content-type" => "application/json"})
32
+ it 'can connect but expires' do
33
+ stub_request(:post, 'https://login.live.com/oauth20_token.srf')
34
+ .with(body: { 'client_id' => 'CLIENTID', 'client_secret' => 'CLIENTSECRET', 'code' => 'code', 'grant_type' => 'authorization_code', 'redirect_uri' => redirect_url.to_s })
35
+ .to_return(status: 200,
36
+ body: {
37
+ 'token_type' => 'bearer',
38
+ 'expires_at' => (Time.now - (60 * 60 * 24)).to_i,
39
+ 'scope' => 'wl.skydrive_update,wl.offline_access',
40
+ 'access_token' => 'access_token',
41
+ 'refresh_token' => 'refresh_token',
42
+ 'authentication_token' => 'authentication_token'
43
+ }.to_json,
44
+ headers: {
45
+ 'content-type' => 'application/json' })
46
46
 
47
47
  driver = BrowseEverything::Driver::SkyDrive.new(provider_yml)
48
- driver.connect({code:"code"},{})
48
+ driver.connect({ code: 'code' }, {})
49
49
  driver.authorized?.should == false
50
50
  end
51
51
  end
@@ -1,71 +1,71 @@
1
1
  describe 'browse_everything/_file.html.erb', type: :view do
2
- let(:file) {
3
- BrowseEverything::FileEntry.new(
4
- 'file_id_01234', 'my_provider:/location/pa/th/file.m4v',
5
- 'file.m4v', 1024*1024*1024, Time.now, false
6
- )
7
- }
8
- let(:container) {
9
- BrowseEverything::FileEntry.new(
10
- 'dir_id_01234', 'my_provider:/location/pa/th/dir',
11
- 'dir', 0, Time.now, true
12
- )
13
- }
14
- let(:provider) { double("provider") }
2
+ let(:file) do
3
+ BrowseEverything::FileEntry.new(
4
+ 'file_id_01234', 'my_provider:/location/pa/th/file.m4v',
5
+ 'file.m4v', 1024 * 1024 * 1024, Time.now, false
6
+ )
7
+ end
8
+ let(:container) do
9
+ BrowseEverything::FileEntry.new(
10
+ 'dir_id_01234', 'my_provider:/location/pa/th/dir',
11
+ 'dir', 0, Time.now, true
12
+ )
13
+ end
14
+ let(:provider) { double('provider') }
15
15
  let(:page) { Capybara::Node::Simple.new(rendered) }
16
16
 
17
17
  before do
18
18
  allow(view).to receive(:browse_everything_engine).and_return(BrowseEverything::Engine.routes.url_helpers)
19
19
  allow(view).to receive(:provider).and_return(provider)
20
- allow(view).to receive(:path).and_return("path")
21
- allow(view).to receive(:parent).and_return("parent")
22
- allow(view).to receive(:provider_name).and_return("my provider")
20
+ allow(view).to receive(:path).and_return('path')
21
+ allow(view).to receive(:parent).and_return('parent')
22
+ allow(view).to receive(:provider_name).and_return('my provider')
23
23
  allow(provider).to receive(:config).and_return(config)
24
24
  end
25
25
 
26
- describe "a file" do
26
+ describe 'a file' do
27
27
  before do
28
28
  allow(view).to receive(:file).and_return(file)
29
29
  render
30
30
  end
31
- context "file not too big" do
32
- let(:config) { { max_upload_file_size: (5*1024*1024*1024) } }
33
- it "should draw link" do
34
- expect(page).to have_selector("a.ev-link")
31
+ context 'file not too big' do
32
+ let(:config) { { max_upload_file_size: (5 * 1024 * 1024 * 1024) } }
33
+ it 'should draw link' do
34
+ expect(page).to have_selector('a.ev-link')
35
35
  end
36
36
  end
37
37
 
38
- context "max not configured" do
39
- let(:config) { { } }
40
- it "should draw link" do
41
- expect(page).to have_selector("a.ev-link")
38
+ context 'max not configured' do
39
+ let(:config) { {} }
40
+ it 'should draw link' do
41
+ expect(page).to have_selector('a.ev-link')
42
42
  end
43
43
  end
44
44
 
45
- context "file too big" do
45
+ context 'file too big' do
46
46
  let(:config) { { max_upload_file_size: 1024 } }
47
- it "should draw link" do
48
- expect(page).not_to have_selector("a.ev-link")
47
+ it 'should draw link' do
48
+ expect(page).not_to have_selector('a.ev-link')
49
49
  end
50
50
  end
51
51
 
52
- context "multi-select" do
53
- let(:config) { { } }
54
- it "should not have a checkbox" do
55
- expect(page).not_to have_selector("input.ev-select-all")
52
+ context 'multi-select' do
53
+ let(:config) { {} }
54
+ it 'should not have a checkbox' do
55
+ expect(page).not_to have_selector('input.ev-select-all')
56
56
  end
57
57
  end
58
58
  end
59
59
 
60
- describe "a directory" do
60
+ describe 'a directory' do
61
61
  before do
62
62
  allow(view).to receive(:file).and_return(container)
63
63
  render
64
64
  end
65
- context "multi-select" do
66
- let(:config) { { } }
67
- it "should have the select-all checkbox" do
68
- expect(page).to have_selector("input.ev-select-all")
65
+ context 'multi-select' do
66
+ let(:config) { {} }
67
+ it 'should have the select-all checkbox' do
68
+ expect(page).to have_selector('input.ev-select-all')
69
69
  end
70
70
  end
71
71
  end
data/tasks/ci.rake CHANGED
@@ -1,5 +1,5 @@
1
- desc "Run all RSpec tests."
2
- task :ci => ['engine_cart:generate'] do
1
+ desc 'Run all RSpec tests.'
2
+ task ci: ['engine_cart:generate'] do
3
3
  RSpec::Core::RakeTask.new(:spec)
4
- Rake::Task["spec"].invoke
4
+ Rake::Task['spec'].invoke
5
5
  end
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: 0.10.5
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carolyn Cole
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2016-09-23 00:00:00.000000000 Z
16
+ date: 2016-12-31 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: rails
@@ -133,14 +133,28 @@ dependencies:
133
133
  requirements:
134
134
  - - "~>"
135
135
  - !ruby/object:Gem::Version
136
- version: 0.8.6
136
+ version: '0.9'
137
137
  type: :runtime
138
138
  prerelease: false
139
139
  version_requirements: !ruby/object:Gem::Requirement
140
140
  requirements:
141
141
  - - "~>"
142
142
  - !ruby/object:Gem::Version
143
- version: 0.8.6
143
+ version: '0.9'
144
+ - !ruby/object:Gem::Dependency
145
+ name: signet
146
+ requirement: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ type: :runtime
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
144
158
  - !ruby/object:Gem::Dependency
145
159
  name: httparty
146
160
  requirement: !ruby/object:Gem::Requirement
@@ -155,6 +169,20 @@ dependencies:
155
169
  - - ">="
156
170
  - !ruby/object:Gem::Version
157
171
  version: '0'
172
+ - !ruby/object:Gem::Dependency
173
+ name: aws-sdk
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ type: :runtime
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
158
186
  - !ruby/object:Gem::Dependency
159
187
  name: rspec
160
188
  requirement: !ruby/object:Gem::Requirement
@@ -197,6 +225,20 @@ dependencies:
197
225
  - - ">="
198
226
  - !ruby/object:Gem::Version
199
227
  version: '0'
228
+ - !ruby/object:Gem::Dependency
229
+ name: rubocop
230
+ requirement: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: '0'
235
+ type: :development
236
+ prerelease: false
237
+ version_requirements: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
200
242
  - !ruby/object:Gem::Dependency
201
243
  name: simplecov
202
244
  requirement: !ruby/object:Gem::Requirement
@@ -393,6 +435,8 @@ extra_rdoc_files: []
393
435
  files:
394
436
  - ".gitignore"
395
437
  - ".rspec"
438
+ - ".rubocop.yml"
439
+ - ".rubocop_todo.yml"
396
440
  - ".travis.yml"
397
441
  - CONTRIBUTING.md
398
442
  - Gemfile
@@ -400,7 +444,6 @@ files:
400
444
  - LICENSE.txt
401
445
  - README.md
402
446
  - Rakefile
403
- - app/.DS_Store
404
447
  - app/assets/javascripts/browse_everything.js
405
448
  - app/assets/javascripts/browse_everything/behavior.js.coffee
406
449
  - app/assets/stylesheets/browse_everything.scss
@@ -409,7 +452,6 @@ files:
409
452
  - app/controllers/browse_everything_controller.rb
410
453
  - app/helpers/bootstrap_version_helper.rb
411
454
  - app/helpers/browse_everything_helper.rb
412
- - app/views/.DS_Store
413
455
  - app/views/browse_everything/_auth.html.erb
414
456
  - app/views/browse_everything/_file.html.erb
415
457
  - app/views/browse_everything/_files.html.erb
@@ -430,6 +472,7 @@ files:
430
472
  - lib/browse_everything/driver/dropbox.rb
431
473
  - lib/browse_everything/driver/file_system.rb
432
474
  - lib/browse_everything/driver/google_drive.rb
475
+ - lib/browse_everything/driver/s3.rb
433
476
  - lib/browse_everything/driver/sky_drive.rb
434
477
  - lib/browse_everything/engine.rb
435
478
  - lib/browse_everything/file_entry.rb
@@ -468,6 +511,7 @@ files:
468
511
  - spec/unit/file_entry_spec.rb
469
512
  - spec/unit/file_system_spec.rb
470
513
  - spec/unit/retriever_spec.rb
514
+ - spec/unit/s3_spec.rb
471
515
  - spec/unit/sky_drive_spec.rb
472
516
  - spec/views/browse_everything/_file.html.erb_spec.rb
473
517
  - tasks/ci.rake
@@ -494,7 +538,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
494
538
  version: '0'
495
539
  requirements: []
496
540
  rubyforge_project:
497
- rubygems_version: 2.5.1
541
+ rubygems_version: 2.6.8
498
542
  signing_key:
499
543
  specification_version: 4
500
544
  summary: AJAX/Rails engine file browser for cloud storage services
@@ -527,5 +571,6 @@ test_files:
527
571
  - spec/unit/file_entry_spec.rb
528
572
  - spec/unit/file_system_spec.rb
529
573
  - spec/unit/retriever_spec.rb
574
+ - spec/unit/s3_spec.rb
530
575
  - spec/unit/sky_drive_spec.rb
531
576
  - spec/views/browse_everything/_file.html.erb_spec.rb