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
@@ -3,23 +3,23 @@ include BrowserConfigHelper
3
3
  describe BrowseEverything::Driver::Base do
4
4
  subject { BrowseEverything::Driver::Base.new({}) }
5
5
 
6
- describe "simple properties" do
6
+ describe 'simple properties' do
7
7
  its(:name) { should == 'Base' }
8
8
  its(:key) { should == 'base' }
9
9
  its(:icon) { should be_a(String) }
10
10
  its(:auth_link) { should be_empty }
11
11
  specify { should_not be_authorized }
12
12
  end
13
- context "#connect" do
14
- specify { subject.connect({},{}).should be_blank }
13
+ context '#connect' do
14
+ specify { subject.connect({}, {}).should be_blank }
15
15
  end
16
- context "#contents" do
16
+ context '#contents' do
17
17
  specify { subject.contents('').should be_empty }
18
18
  end
19
- context "#details" do
19
+ context '#details' do
20
20
  specify { subject.details('/path/to/foo.txt').should be_nil }
21
21
  end
22
- context "#link_for" do
22
+ context '#link_for' do
23
23
  specify { subject.link_for('/path/to/foo.txt').should == ['/path/to/foo.txt', { file_name: 'foo.txt' }] }
24
24
  end
25
25
  end
@@ -1,37 +1,37 @@
1
1
  describe BrowseEverythingHelper do
2
- let(:test_class) {
2
+ let(:test_class) do
3
3
  Class.new do
4
4
  include BrowseEverythingHelper
5
5
  attr_reader :params
6
- def initialize params
6
+ def initialize(params)
7
7
  @params = params
8
8
  end
9
9
  end
10
- }
10
+ end
11
11
 
12
12
  let(:test_file) { BrowseEverything::FileEntry.new 0, '/path/to/file.mp4', 'file.mp4', 12345, Time.now, false }
13
13
 
14
- it "should match a full type" do
14
+ it 'should match a full type' do
15
15
  expect(test_class.new(accept: 'video/mp4').is_acceptable?(test_file)).to eq(true)
16
16
  end
17
17
 
18
- it "should match a wildcard type" do
18
+ it 'should match a wildcard type' do
19
19
  expect(test_class.new(accept: 'video/*').is_acceptable?(test_file)).to eq(true)
20
20
  end
21
21
 
22
- it "should not match the wrong full type" do
22
+ it 'should not match the wrong full type' do
23
23
  expect(test_class.new(accept: 'video/mpeg').is_acceptable?(test_file)).to eq(false)
24
24
  end
25
25
 
26
- it "should not match the wrong wildcard type" do
26
+ it 'should not match the wrong wildcard type' do
27
27
  expect(test_class.new(accept: 'audio/*').is_acceptable?(test_file)).to eq(false)
28
28
  end
29
29
 
30
- it "should match a type list" do
30
+ it 'should match a type list' do
31
31
  expect(test_class.new(accept: 'audio/*, video/mp4').is_acceptable?(test_file)).to eq(true)
32
32
  end
33
33
 
34
- it "should not match the wrong type list" do
34
+ it 'should not match the wrong type list' do
35
35
  expect(test_class.new(accept: 'audio/*, application/json').is_acceptable?(test_file)).to eq(false)
36
36
  end
37
37
  end
@@ -1,72 +1,72 @@
1
1
  include BrowserConfigHelper
2
2
 
3
3
  describe BrowseEverything::Browser do
4
- let(:file_config) {
4
+ let(:file_config) do
5
5
  {
6
6
  file_system: { home: '/file/config/home' },
7
7
  dropbox: { app_key: 'FileConfigKey', app_secret: 'FileConfigSecret' }
8
8
  }.to_yaml
9
- }
9
+ end
10
10
 
11
- let(:global_config) {
11
+ let(:global_config) do
12
12
  {
13
13
  file_system: { home: '/global/config/home' },
14
14
  dropbox: { app_key: 'GlobalConfigKey', app_secret: 'GlobalConfigSecret' }
15
15
  }
16
- }
16
+ end
17
17
 
18
- let(:local_config) {
18
+ let(:local_config) do
19
19
  {
20
20
  file_system: { home: '/local/config/home' },
21
21
  dropbox: { app_key: 'LocalConfigKey', app_secret: 'LocalConfigSecret' },
22
22
  url_options: url_options
23
23
  }
24
- }
24
+ end
25
25
 
26
- describe "file config" do
26
+ describe 'file config' do
27
27
  before(:each) { allow(File).to receive(:read).and_return(file_config) }
28
28
  subject { BrowseEverything::Browser.new(url_options) }
29
29
 
30
- it "should have 2 providers" do
30
+ it 'should have 2 providers' do
31
31
  expect(subject.providers.keys).to eq([:file_system, :dropbox])
32
32
  end
33
33
 
34
- it "should use the file configuration" do
34
+ it 'should use the file configuration' do
35
35
  expect(subject.providers[:dropbox].config[:app_key]).to eq('FileConfigKey')
36
36
  end
37
37
  end
38
38
 
39
- describe "global config" do
39
+ describe 'global config' do
40
40
  before(:each) { BrowseEverything.configure(global_config) }
41
41
  subject { BrowseEverything::Browser.new(url_options) }
42
42
 
43
- it "should have 2 providers" do
43
+ it 'should have 2 providers' do
44
44
  expect(subject.providers.keys).to eq([:file_system, :dropbox])
45
45
  end
46
46
 
47
- it "should use the global configuration" do
47
+ it 'should use the global configuration' do
48
48
  expect(subject.providers[:dropbox].config[:app_key]).to eq('GlobalConfigKey')
49
49
  end
50
50
  end
51
51
 
52
- describe "local config" do
52
+ describe 'local config' do
53
53
  subject { BrowseEverything::Browser.new(local_config) }
54
54
 
55
- it "should have 2 providers" do
55
+ it 'should have 2 providers' do
56
56
  expect(subject.providers.keys).to eq([:file_system, :dropbox])
57
57
  end
58
58
 
59
- it "should use the local configuration" do
59
+ it 'should use the local configuration' do
60
60
  expect(subject.providers[:dropbox].config[:app_key]).to eq('LocalConfigKey')
61
61
  end
62
62
  end
63
63
 
64
- describe "unknown provider" do
65
- subject {
64
+ describe 'unknown provider' do
65
+ subject do
66
66
  BrowseEverything::Browser.new(local_config.merge(foo: { key: 'bar', secret: 'baz' }))
67
- }
67
+ end
68
68
 
69
- it "should complain but continue" do
69
+ it 'should complain but continue' do
70
70
  allow(Rails.logger).to receive(:warn).with('Unknown provider: foo')
71
71
  expect(subject.providers.keys).to eq([:file_system, :dropbox])
72
72
  end
@@ -6,113 +6,114 @@ describe BrowseEverything::Driver::Dropbox, vcr: { cassette_name: 'dropbox', rec
6
6
 
7
7
  let(:browser) { BrowseEverything::Browser.new(url_options) }
8
8
  let(:provider) { browser.providers['dropbox'] }
9
- let(:auth_params) { {
9
+ let(:auth_params) do {
10
10
  'code' => 'FakeDropboxAuthorizationCodeABCDEFG',
11
11
  'state' => 'GjDcUhPNZrZzdsw%2FghBy2A%3D%3D|dropbox'
12
- } }
13
- let(:csrf_data) { {'token' => 'GjDcUhPNZrZzdsw%2FghBy2A%3D%3D'} }
12
+ }
13
+ end
14
+ let(:csrf_data) { { 'token' => 'GjDcUhPNZrZzdsw%2FghBy2A%3D%3D' } }
14
15
 
15
- it "#validate_config" do
16
+ it '#validate_config' do
16
17
  expect { BrowseEverything::Driver::Dropbox.new({}) }.to raise_error(BrowseEverything::InitializationError)
17
18
  end
18
19
 
19
- describe "simple properties" do
20
- subject { provider }
20
+ describe 'simple properties' do
21
+ subject { provider }
21
22
  its(:name) { should == 'Dropbox' }
22
23
  its(:key) { should == 'dropbox' }
23
- its(:icon) { should be_a(String) }
24
+ its(:icon) { should be_a(String) }
24
25
  end
25
26
 
26
- context "authorization" do
27
+ context 'authorization' do
27
28
  subject { provider }
28
29
 
29
30
  specify { should_not be_authorized }
30
31
 
31
- context "#auth_link" do
32
+ context '#auth_link' do
32
33
  specify { subject.auth_link[0].should start_with('https://www.dropbox.com/1/oauth2/authorize') }
33
34
  specify { subject.auth_link[0].should include('browse%2Fconnect') }
34
35
  specify { subject.auth_link[0].should include('state') }
35
36
  end
36
37
 
37
- it "should authorize" do
38
- subject.connect(auth_params,csrf_data)
38
+ it 'should authorize' do
39
+ subject.connect(auth_params, csrf_data)
39
40
  expect(subject).to be_authorized
40
41
  end
41
42
  end
42
43
 
43
- describe "#contents" do
44
- before(:each) { provider.connect(auth_params,csrf_data) }
44
+ describe '#contents' do
45
+ before(:each) { provider.connect(auth_params, csrf_data) }
45
46
 
46
- context "root directory" do
47
+ context 'root directory' do
47
48
  let(:contents) { provider.contents('') }
48
- context "[0]" do
49
+ context '[0]' do
49
50
  subject { contents[0] }
50
51
  its(:name) { should == 'Apps' }
51
52
  specify { should be_container }
52
53
  end
53
- context "[1]" do
54
+ context '[1]' do
54
55
  subject { contents[1] }
55
56
  its(:name) { should == 'Books' }
56
57
  specify { should be_container }
57
58
  end
58
- context "[4]" do
59
+ context '[4]' do
59
60
  subject { contents[4] }
60
- its(:name) { should == 'iPad intro.pdf' }
61
- its(:size) { should == 208218 }
62
- its(:location) { should == "dropbox:/iPad intro.pdf" }
63
- its(:type) { should == "application/pdf" }
61
+ its(:name) { should == 'iPad intro.pdf' }
62
+ its(:size) { should == 208218 }
63
+ its(:location) { should == 'dropbox:/iPad intro.pdf' }
64
+ its(:type) { should == 'application/pdf' }
64
65
  specify { should_not be_container }
65
66
  end
66
67
  end
67
68
 
68
- context "subdirectory" do
69
+ context 'subdirectory' do
69
70
  let(:contents) { provider.contents('/Writer') }
70
- context "[0]" do
71
+ context '[0]' do
71
72
  subject { contents[0] }
72
73
  its(:name) { should == '..' }
73
74
  specify { should be_container }
74
75
  end
75
- context "[1]" do
76
+ context '[1]' do
76
77
  subject { contents[1] }
77
- its(:name) { should == 'About Writer.txt' }
78
- its(:location) { should == "dropbox:/Writer/About Writer.txt" }
79
- its(:type) { should == "text/plain" }
78
+ its(:name) { should == 'About Writer.txt' }
79
+ its(:location) { should == 'dropbox:/Writer/About Writer.txt' }
80
+ its(:type) { should == 'text/plain' }
80
81
  specify { should_not be_container }
81
82
  end
82
- context "[2]" do
83
+ context '[2]' do
83
84
  subject { contents[2] }
84
- its(:name) { should == 'Markdown Test.txt' }
85
- its(:location) { should == "dropbox:/Writer/Markdown Test.txt" }
86
- its(:type) { should == "text/plain" }
85
+ its(:name) { should == 'Markdown Test.txt' }
86
+ its(:location) { should == 'dropbox:/Writer/Markdown Test.txt' }
87
+ its(:type) { should == 'text/plain' }
87
88
  specify { should_not be_container }
88
89
  end
89
- context "[3]" do
90
+ context '[3]' do
90
91
  subject { contents[3] }
91
- its(:name) { should == 'Writer FAQ.txt' }
92
- its(:location) { should == "dropbox:/Writer/Writer FAQ.txt" }
93
- its(:type) { should == "text/plain" }
92
+ its(:name) { should == 'Writer FAQ.txt' }
93
+ its(:location) { should == 'dropbox:/Writer/Writer FAQ.txt' }
94
+ its(:type) { should == 'text/plain' }
94
95
  specify { should_not be_container }
95
96
  end
96
97
  end
97
98
 
98
- context "#details" do
99
+ context '#details' do
99
100
  subject { provider.details('') }
100
- its(:name) { should == 'Apps' }
101
+ its(:name) { should == 'Apps' }
101
102
  end
102
103
  end
103
104
 
104
- describe "#link_for" do
105
- before(:each) { provider.connect(auth_params,csrf_data) }
105
+ describe '#link_for' do
106
+ before(:each) { provider.connect(auth_params, csrf_data) }
106
107
 
107
- context "[0]" do
108
+ context '[0]' do
108
109
  subject { provider.link_for('/Writer/Writer FAQ.txt') }
109
- specify { subject[0].should == "https://dl.dropboxusercontent.com/1/view/FakeDropboxAccessPath/Writer/Writer%20FAQ.txt" }
110
+ specify { subject[0].should == 'https://dl.dropboxusercontent.com/1/view/FakeDropboxAccessPath/Writer/Writer%20FAQ.txt' }
110
111
  specify { subject[1].should have_key(:expires) }
111
112
  end
112
113
 
113
- context "[1]" do
114
+ context '[1]' do
114
115
  subject { provider.link_for('/Writer/Markdown Test.txt') }
115
- specify { subject[0].should == "https://dl.dropboxusercontent.com/1/view/FakeDropboxAccessPath/Writer/Markdown%20Test.txt" }
116
+ specify { subject[0].should == 'https://dl.dropboxusercontent.com/1/view/FakeDropboxAccessPath/Writer/Markdown%20Test.txt' }
116
117
  specify { subject[1].should have_key(:expires) }
117
118
  end
118
119
  end
@@ -1,88 +1,88 @@
1
1
  describe BrowseEverything::FileEntry do
2
2
  let(:mtime) { Time.now }
3
- describe "regular file" do
4
- subject {
3
+ describe 'regular file' do
4
+ subject do
5
5
  BrowseEverything::FileEntry.new(
6
6
  'file_id_01234', 'my_provider:/location/pa/th/file.m4v',
7
7
  'file.m4v', '1.2 GB', mtime, false
8
8
  )
9
- }
9
+ end
10
10
 
11
- it "should be a BrowseEverything::FileEntry" do
11
+ it 'should be a BrowseEverything::FileEntry' do
12
12
  expect(subject).to be_a BrowseEverything::FileEntry
13
13
  end
14
14
 
15
- it "#id" do
16
- expect(subject.id).to eq("file_id_01234")
15
+ it '#id' do
16
+ expect(subject.id).to eq('file_id_01234')
17
17
  end
18
18
 
19
- it "#location" do
20
- expect(subject.location).to eq("my_provider:/location/pa/th/file.m4v")
19
+ it '#location' do
20
+ expect(subject.location).to eq('my_provider:/location/pa/th/file.m4v')
21
21
  end
22
22
 
23
- it "#name" do
24
- expect(subject.name).to eq("file.m4v")
23
+ it '#name' do
24
+ expect(subject.name).to eq('file.m4v')
25
25
  end
26
26
 
27
- it "#size" do
28
- expect(subject.size).to eq("1.2 GB")
27
+ it '#size' do
28
+ expect(subject.size).to eq('1.2 GB')
29
29
  end
30
30
 
31
- it "#mtime" do
31
+ it '#mtime' do
32
32
  expect(subject.mtime).to eq(mtime)
33
33
  end
34
34
 
35
- it "#type" do
36
- expect(subject.type).to eq("video/mp4")
35
+ it '#type' do
36
+ expect(subject.type).to eq('video/mp4')
37
37
  end
38
38
 
39
- it "#container?" do
39
+ it '#container?' do
40
40
  expect(subject.container?).to be false
41
41
  end
42
42
 
43
- it "#relative_parent_path?" do
43
+ it '#relative_parent_path?' do
44
44
  expect(subject.relative_parent_path?).to be false
45
45
  end
46
46
  end
47
47
 
48
- describe "directory" do
49
- subject {
48
+ describe 'directory' do
49
+ subject do
50
50
  BrowseEverything::FileEntry.new(
51
51
  'directory_id_1234', 'my_provider:/location/pa/th',
52
52
  'th', '', mtime, true
53
53
  )
54
- }
54
+ end
55
55
 
56
- it "#type" do
57
- expect(subject.type).to eq("application/x-directory")
56
+ it '#type' do
57
+ expect(subject.type).to eq('application/x-directory')
58
58
  end
59
59
 
60
- it "#container?" do
60
+ it '#container?' do
61
61
  expect(subject.container?).to be true
62
62
  end
63
63
 
64
- it "#relative_parent_path?" do
64
+ it '#relative_parent_path?' do
65
65
  expect(subject.relative_parent_path?).to be false
66
66
  end
67
67
  end
68
68
 
69
- describe "parent path" do
70
- subject {
69
+ describe 'parent path' do
70
+ subject do
71
71
  BrowseEverything::FileEntry.new(
72
72
  'directory_id_1234', 'my_provider:/location/pa/th',
73
73
  '..', '', mtime, true
74
74
  )
75
- }
75
+ end
76
76
 
77
- it "#type" do
78
- expect(subject.type).to eq("application/x-directory")
77
+ it '#type' do
78
+ expect(subject.type).to eq('application/x-directory')
79
79
  end
80
80
 
81
- it "#container?" do
81
+ it '#container?' do
82
82
  expect(subject.container?).to be true
83
83
  end
84
84
 
85
- it "#relative_parent_path?" do
85
+ it '#relative_parent_path?' do
86
86
  expect(subject.relative_parent_path?).to be true
87
87
  end
88
88
  end
@@ -7,11 +7,11 @@ describe BrowseEverything::Driver::FileSystem do
7
7
  let(:browser) { BrowseEverything::Browser.new(url_options) }
8
8
  let(:provider) { browser.providers['file_system'] }
9
9
 
10
- it "#validate_config" do
10
+ it '#validate_config' do
11
11
  expect { BrowseEverything::Driver::FileSystem.new({}) }.to raise_error(BrowseEverything::InitializationError)
12
12
  end
13
13
 
14
- describe "simple properties" do
14
+ describe 'simple properties' do
15
15
  subject { provider }
16
16
  its(:name) { should == 'File System' }
17
17
  its(:key) { should == 'file_system' }
@@ -19,66 +19,66 @@ describe BrowseEverything::Driver::FileSystem do
19
19
  specify { should be_authorized }
20
20
  end
21
21
 
22
- describe "#contents" do
23
- context "root directory" do
22
+ describe '#contents' do
23
+ context 'root directory' do
24
24
  let(:contents) { provider.contents('/') }
25
- context "[0]" do
25
+ context '[0]' do
26
26
  subject { contents[0] }
27
27
  its(:name) { should == 'dir_1' }
28
28
  specify { should be_container }
29
29
  end
30
- context "[1]" do
30
+ context '[1]' do
31
31
  subject { contents[1] }
32
32
  its(:name) { should == 'dir_2' }
33
33
  specify { should be_container }
34
34
  end
35
- context "[2]" do
35
+ context '[2]' do
36
36
  subject { contents[2] }
37
37
  its(:name) { should == 'file 1.pdf' }
38
38
  its(:size) { should == 2256 }
39
- its(:location) { should == "file_system:#{File.join(home,'file 1.pdf')}" }
40
- its(:type) { should == "application/pdf" }
39
+ its(:location) { should == "file_system:#{File.join(home, 'file 1.pdf')}" }
40
+ its(:type) { should == 'application/pdf' }
41
41
  specify { should_not be_container }
42
42
  end
43
- context "[3]" do
43
+ context '[3]' do
44
44
  subject { contents[3] }
45
45
  its(:name) { should == 'file_1.pdf' }
46
46
  its(:size) { should == 2256 }
47
- its(:location) { should == "file_system:#{File.join(home,'file_1.pdf')}" }
48
- its(:type) { should == "application/pdf" }
47
+ its(:location) { should == "file_system:#{File.join(home, 'file_1.pdf')}" }
48
+ its(:type) { should == 'application/pdf' }
49
49
  specify { should_not be_container }
50
50
  end
51
- end
51
+ end
52
52
 
53
- context "subdirectory" do
53
+ context 'subdirectory' do
54
54
  let(:contents) { provider.contents('/dir_1') }
55
- context "[0]" do
55
+ context '[0]' do
56
56
  subject { contents[0] }
57
57
  its(:name) { should == '..' }
58
58
  specify { should be_container }
59
59
  end
60
- context "[1]" do
60
+ context '[1]' do
61
61
  subject { contents[1] }
62
62
  its(:name) { should == 'dir_3' }
63
63
  specify { should be_container }
64
64
  end
65
- context "[2]" do
65
+ context '[2]' do
66
66
  subject { contents[2] }
67
- its(:name) { should == 'file_2.txt' }
68
- its(:location) { should == "file_system:#{File.join(home,'dir_1/file_2.txt')}" }
69
- its(:type) { should == "text/plain" }
67
+ its(:name) { should == 'file_2.txt' }
68
+ its(:location) { should == "file_system:#{File.join(home, 'dir_1/file_2.txt')}" }
69
+ its(:type) { should == 'text/plain' }
70
70
  specify { should_not be_container }
71
71
  end
72
72
  end
73
73
 
74
- context "single file" do
74
+ context 'single file' do
75
75
  let(:contents) { provider.contents('/dir_1/dir_3/file_3.m4v') }
76
- context "[0]" do
76
+ context '[0]' do
77
77
  subject { contents[0] }
78
- its(:name) { should == 'file_3.m4v' }
79
- its(:location) { should == "file_system:#{File.join(home,'dir_1/dir_3/file_3.m4v')}" }
78
+ its(:name) { should == 'file_3.m4v' }
79
+ its(:location) { should == "file_system:#{File.join(home, 'dir_1/dir_3/file_3.m4v')}" }
80
80
  its(:size) { should == 3879 }
81
- its(:type) { should == "video/mp4" }
81
+ its(:type) { should == 'video/mp4' }
82
82
  specify { should_not be_container }
83
83
  end
84
84
  end
@@ -86,6 +86,6 @@ describe BrowseEverything::Driver::FileSystem do
86
86
 
87
87
  describe "#link_for('/path/to/file')" do
88
88
  subject { provider.link_for('/path/to/file') }
89
- it { should == ["file:///path/to/file", {:file_name=>"file", :file_size=>0}] }
89
+ it { should == ['file:///path/to/file', { file_name: 'file', file_size: 0 }] }
90
90
  end
91
91
  end