browse-everything 0.10.5 → 0.11.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.
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