browse-everything 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDI4OTA0NjYwZWJkMGNiN2M2MzQ4MGYyMzBjM2M4OWE0MjAzMjQ1Yw==
4
+ N2UyMTc2ZWFhNGRhNjAxYzgwNzI1YTkzMjgyNTVjOGUwMThjZTEyZA==
5
5
  data.tar.gz: !binary |-
6
- MWZlNzMyMjAxMzYyNzVkZTMwYWE1ZTJkOGY0ZTljMzkwNTIzYjliNA==
6
+ ZjRiNTM4NDhlZTlmMWE0ODQ4ZDM1ODJhN2I3Mzc3OGY0MmI4OTE3Mg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NTI5YzUyYjI4OTE0NDIxOGRlY2IwNTBkOGEzNGViY2E2YWI2ZmFkMmZlMzQ2
10
- ZDdkNTQ0OTRjZmI0NDk0ODQxMjUyOTkwNTJjZmI1NWMyNjg3OGFhODViY2Rh
11
- NjFhOWVhMzg0ZjEyMTdhZDllNjk5MTA4MjBlMjJkNjc0NjRmZGU=
9
+ MmMwMjVjNjFmM2Q5ZmVmMTdjYzVlZWI1MzQ2MWM5M2RjNTc0YmMxNjAzYmYw
10
+ NDIzNTQ3NDA2MDQwM2IzODc3ZDQ2OTg0NDczMWJmMTgyYzQ3ZmU3NzQyZDBj
11
+ YTg4NTQyNDBlMzk2YjFkNGZmMjVlMzc3YWQ1NGM0ZDZhNGI1YWE=
12
12
  data.tar.gz: !binary |-
13
- MjNkMjk3NzRjNzNlZTc4NzYwNDlhZjY0ZmM5YmQ5ODAxOTBjNTJlNGVmZjdh
14
- Nzk0ZWEzOTU0ODI3ZTVlNWFiZjFkYTEzNDc3Mzc4MGIzNzY2YzJlNzYwMzQ3
15
- NzUyYTUyMGYxYzJkYWU4ZGM4ZWU0OGQwYzM5NTU5MTA0M2ViYjU=
13
+ NmQ1NmNkYzcyZDM3NmE0ZTlmNTY1ODkxZGFlZWIxMjhkYmYxNjE1YmM4ODVm
14
+ ZDFmYTYyZDI1NGQ0MmZmNDIyZDRjY2E0Y2QxOWRkYmUwNzAzZjAzNjJiMmFl
15
+ MDBiYzg4NWQ2OGVhYTIxMGFjYTIyODRiMzg5OTMwODQyNTJmNzE=
data/HISTORY.md CHANGED
@@ -1,3 +1,6 @@
1
+ ### 0.5.2 (2014-07-30)
2
+ - Allow MIME type filtering to work on Rack < 1.5.0
3
+
1
4
  ### 0.5.1 (2014-07-30)
2
5
  - Fix for busted responsive layouts when using Bootstrap 2.x
3
6
 
@@ -8,10 +8,33 @@ module BrowseEverythingHelper
8
8
  fields.join("\n").html_safe
9
9
  end
10
10
 
11
+ # Extracted from Rack::Mime 1.5.2 for use with earlier versions
12
+ # of Rack/Rails
13
+ def mime_match?(value, matcher)
14
+ v1, v2 = value.split('/', 2)
15
+ m1, m2 = matcher.split('/', 2)
16
+
17
+ if m1 == '*'
18
+ if m2.nil? || m2 == '*'
19
+ return true
20
+ elsif m2 == v2
21
+ return true
22
+ else
23
+ return false
24
+ end
25
+ end
26
+
27
+ return false if v1 != m1
28
+
29
+ return true if m2.nil? || m2 == '*'
30
+
31
+ m2 == v2
32
+ end
33
+
11
34
  def is_acceptable?(file)
12
35
  acceptable = params[:accept] || '*/*'
13
36
  acceptable_types = acceptable.split(/,\s*/)
14
37
  acceptable_types << 'application/x-directory'
15
- acceptable_types.any? { |type| Rack::Mime.match?(file.type, type) }
38
+ acceptable_types.any? { |type| mime_match?(file.type, type) }
16
39
  end
17
40
  end
@@ -1,3 +1,3 @@
1
1
  module BrowseEverything
2
- VERSION = "0.5.1"
2
+ VERSION = "0.5.2"
3
3
  end
@@ -0,0 +1,40 @@
1
+ require File.expand_path('../../spec_helper',__FILE__)
2
+
3
+ describe BrowseEverythingHelper do
4
+
5
+ let(:test_class) {
6
+ Class.new do
7
+ include BrowseEverythingHelper
8
+ attr_reader :params
9
+ def initialize params
10
+ @params = params
11
+ end
12
+ end
13
+ }
14
+
15
+ let(:test_file) { BrowseEverything::FileEntry.new 0, '/path/to/file.mp4', 'file.mp4', 12345, Time.now, false }
16
+
17
+ it "should match a full type" do
18
+ expect(test_class.new(accept: 'video/mp4').is_acceptable?(test_file)).to eq(true)
19
+ end
20
+
21
+ it "should match a wildcard type" do
22
+ expect(test_class.new(accept: 'video/*').is_acceptable?(test_file)).to eq(true)
23
+ end
24
+
25
+ it "should not match the wrong full type" do
26
+ expect(test_class.new(accept: 'video/mpeg').is_acceptable?(test_file)).to eq(false)
27
+ end
28
+
29
+ it "should not match the wrong wildcard type" do
30
+ expect(test_class.new(accept: 'audio/*').is_acceptable?(test_file)).to eq(false)
31
+ end
32
+
33
+ it "should match a type list" do
34
+ expect(test_class.new(accept: 'audio/*, video/mp4').is_acceptable?(test_file)).to eq(true)
35
+ end
36
+
37
+ it "should not match the wrong type list" do
38
+ expect(test_class.new(accept: 'audio/*, application/json').is_acceptable?(test_file)).to eq(false)
39
+ end
40
+ 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.5.1
4
+ version: 0.5.2
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: 2014-07-30 00:00:00.000000000 Z
16
+ date: 2014-07-31 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: rails
@@ -363,6 +363,7 @@ files:
363
363
  - spec/support/app/views/file_handler/main.html.erb
364
364
  - spec/support/lib/generators/test_app_generator.rb
365
365
  - spec/unit/base_spec.rb
366
+ - spec/unit/browse_everything_helper_spec.rb
366
367
  - spec/unit/browser_spec.rb
367
368
  - spec/unit/drop_box_spec.rb
368
369
  - spec/unit/file_entry_spec.rb
@@ -411,6 +412,7 @@ test_files:
411
412
  - spec/support/app/views/file_handler/main.html.erb
412
413
  - spec/support/lib/generators/test_app_generator.rb
413
414
  - spec/unit/base_spec.rb
415
+ - spec/unit/browse_everything_helper_spec.rb
414
416
  - spec/unit/browser_spec.rb
415
417
  - spec/unit/drop_box_spec.rb
416
418
  - spec/unit/file_entry_spec.rb