opium 1.1.5 → 1.1.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bcecdde21391716e2fa90f3d7e69ed2ab99cec6e
4
- data.tar.gz: b424a700e0cd350b3840ddaae829ef3b964776ab
3
+ metadata.gz: 544c54e1dac7cf8a8adb4f02fc4335c33c9778b7
4
+ data.tar.gz: 81bab9d1dbd8139fd8c73d830b16476e1e6b42d2
5
5
  SHA512:
6
- metadata.gz: 3f8768756d6016fad4a9c92065b955dee1b3382d9626a7079782cbb71ad2287653bb1e016fc1cac2ea43c221a0ed9e6126d04d88e30a70dfcb93d367cb1dccb9
7
- data.tar.gz: e7def16e2b043a3ce5121fd65d8a08aa7f4ed94a6d45617217e5260b090fcae1f50c9bd87d9c12341bd43db2506e29a35b69b5eaf2e0c5eb08965c37c1fe8886
6
+ metadata.gz: c6c906d84d6b3499c0c531fda9966e19e06b80c91e31a850b147bc6c11887120ece07ae9c54b931b6b05496adf0fcdbc8aacfa2d78b9284026c974b424cf4449
7
+ data.tar.gz: c9a2d427d4f7b961382eeed079fd1400ef2304ea2861577f2cf67354657cc462b673c7fe59c9cad4714d307d11296bdabd9b934091e9c9277b7712ce83878da4
@@ -1,3 +1,8 @@
1
+ ## 1.1.6
2
+ ### Resolved Issues
3
+ - #39: `Opium::File#upload` now paramterizes the file name.
4
+ - #38: Added Content-Length and Transfer-Encoding headers to file uploads.
5
+
1
6
  ## 1.1.5
2
7
  ### Resolved Issues
3
8
  - #37: Callbacks no longer makes `:update` a private method.
@@ -47,8 +47,8 @@ module Opium
47
47
  {}.tap do |result|
48
48
  mime_type = options.fetch( :content_type, MimeMagic.by_magic(file) )
49
49
  mime_type = MimeMagic.by_path(file) if mime_type == 'application/zip'
50
- result[:id] = options[:original_filename] || ::File.basename( file )
51
- result[:headers] = { content_type: mime_type.to_s }
50
+ result[:id] = parameterize_name( options[:original_filename] || ::File.basename( file ) )
51
+ result[:headers] = { content_type: mime_type.to_s, content_length: file.size.to_s }
52
52
  result[:sent_headers] = options[:sent_headers] if options.key? :sent_headers
53
53
  end
54
54
  end
@@ -60,6 +60,11 @@ module Opium
60
60
  def has_keys( object, *keys )
61
61
  object.keys.all? {|key| keys.include? key}
62
62
  end
63
+
64
+ def parameterize_name( name )
65
+ without_extension, extension = ::File.basename( name, '.*' ), ::File.extname( name )
66
+ without_extension.parameterize + extension
67
+ end
63
68
  end
64
69
 
65
70
  def initialize( attributes = {} )
@@ -1,3 +1,3 @@
1
1
  module Opium
2
- VERSION = "1.1.5"
2
+ VERSION = "1.1.6"
3
3
  end
@@ -43,6 +43,23 @@ describe Opium::File do
43
43
  end
44
44
  end
45
45
 
46
+ context 'with non-standard characters in filename' do
47
+ let(:upload_options) { { original_filename: 'chunky&bacon$with cheddar@cheese.jpg' } }
48
+
49
+ it { expect { result }.to_not raise_exception }
50
+ it 'paramterizes the name' do
51
+ expect( result.name ).to end_with 'chunky-bacon-with-cheddar-cheese.jpg'
52
+ end
53
+ end
54
+
55
+ context 'when executed' do
56
+ let(:upload_options) { { sent_headers: true } }
57
+
58
+ it { expect { result }.to_not raise_exception }
59
+ it { expect( result.keys ).to include( 'Content-Length' ) }
60
+ it { expect( result['Content-Length'] ).to eq gif_file.size.to_s }
61
+ end
62
+
46
63
  context 'with a :content_type option' do
47
64
  let(:upload_options) { { content_type: 'image/png', sent_headers: true } }
48
65
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opium
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Bowers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-20 00:00:00.000000000 Z
11
+ date: 2015-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler