carrierwave-azure 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 249499710b8f42a2c0cb7a9ea400aa4ae82ab96c
4
- data.tar.gz: 63b7d19173fa80c79c7be45db9251e5c80bb362f
3
+ metadata.gz: 2e0a56c09c0ae1636071257a539bee848f732bf8
4
+ data.tar.gz: c5aac6ae83e8fb9332a61cfd560816a21b27ff4a
5
5
  SHA512:
6
- metadata.gz: 761567767273463b0deb34113fee1e5caa7a12829dc5fe8a7761b93ef65788d52c8d645ce3db9ff1bdd3d16dc78c7650b965efe068cc1de25ea699358024a921
7
- data.tar.gz: a3bfc7d0b16f8ea38f228c147a29ed788c5a99ccc03da50f8dbdbae6f066c2f1b4a8a512a1d58864b58a612c3e08b5673fff1e89e1c7e5b1aa8030c9c6aff8d4
6
+ metadata.gz: 3b936fa3d28be01ca38afe6963349c768285e9543e109da57e0ead9115b1220f42d90b117c75030c1177ef3dc6c27e3efa957fe1921b146d1f3ccc164c69eb6d
7
+ data.tar.gz: c771bb6be7a4d94e7a86bca5095faf6ded36734a6b79ad4a0c33eb175265f47a33d7d929fac87312c2dd7ed585c3a2a4ee5308ab5e805d07686f0235a2ec13f4
data/README.md CHANGED
@@ -16,14 +16,15 @@ And then execute:
16
16
 
17
17
  First configure CarrierWave with your Azure storage credentials
18
18
 
19
+ see [Azure/azure-sdk-for-ruby](https://github.com/Azure/azure-sdk-for-ruby#via-code)
20
+
19
21
  ```ruby
20
22
  CarrierWave.configure do |config|
21
- config.azure_credentials = {
22
- storage_account_name: 'YOUR STORAGE ACCOUNT NAME',
23
- storage_access_key: 'YOUR STORAGE ACCESS KEY'
24
- }
23
+ config.azure_storage_account_name = 'YOUR STORAGE ACCOUNT NAME'
24
+ config.azure_storage_access_key = 'YOUR STORAGE ACCESS KEY'
25
+ config.azure_storage_blob_host = 'YOUR STORAGE BLOB HOST' # optional
25
26
  config.azure_container = 'YOUR CONTAINER NAME'
26
- config.azure_host = 'YOUR CDN HOST' # optional
27
+ config.asset_host = 'YOUR CDN HOST' # optional
27
28
  end
28
29
  ```
29
30
 
@@ -19,5 +19,6 @@ Gem::Specification.new do |gem|
19
19
  gem.add_dependency 'carrierwave'
20
20
  gem.add_dependency 'azure'
21
21
 
22
- gem.add_development_dependency 'rspec'
22
+ gem.add_development_dependency 'rake'
23
+ gem.add_development_dependency 'rspec', '~> 3'
23
24
  end
@@ -3,8 +3,9 @@ require 'carrierwave/azure/version'
3
3
  require 'carrierwave/storage/azure'
4
4
 
5
5
  class CarrierWave::Uploader::Base
6
- add_config :azure_credentials
7
- add_config :azure_host
6
+ add_config :azure_storage_account_name
7
+ add_config :azure_storage_access_key
8
+ add_config :azure_storage_blob_host
8
9
  add_config :azure_container
9
10
 
10
11
  configure do |config|
@@ -1,5 +1,5 @@
1
1
  module Carrierwave
2
2
  module Azure
3
- VERSION = '0.0.2'
3
+ VERSION = '0.0.3'
4
4
  end
5
5
  end
@@ -15,9 +15,9 @@ module CarrierWave
15
15
 
16
16
  def connection
17
17
  @connection ||= begin
18
- uploader.azure_credentials.map do |key, val|
19
- ::Azure.config.send("#{key}=", val)
20
- end unless uploader.azure_credentials.nil?
18
+ %i(storage_account_name storage_access_key storage_blob_host).each do |key|
19
+ ::Azure.config.send("#{key}=", uploader.send("azure_#{key}"))
20
+ end
21
21
  ::Azure::BlobService.new
22
22
  end
23
23
  end
@@ -40,8 +40,8 @@ module CarrierWave
40
40
 
41
41
  def url(options = {})
42
42
  path = ::File.join @uploader.azure_container, @path
43
- if @uploader.azure_host
44
- "#{@uploader.azure_host}/#{path}"
43
+ if @uploader.asset_host
44
+ "#{@uploader.asset_host}/#{path}"
45
45
  else
46
46
  @connection.generate_uri(path).to_s
47
47
  end
@@ -2,12 +2,13 @@ require 'spec_helper'
2
2
 
3
3
  describe CarrierWave::Uploader::Base do
4
4
  it 'should define azure as a storage engine' do
5
- described_class.storage_engines[:azure].should == 'CarrierWave::Storage::Azure'
5
+ expect(described_class.storage_engines[:azure]).to eq 'CarrierWave::Storage::Azure'
6
6
  end
7
7
 
8
8
  it 'should define azure options' do
9
- should respond_to(:azure_credentials)
10
- should respond_to(:azure_container)
11
- should respond_to(:azure_host)
9
+ is_expected.to respond_to(:azure_storage_account_name)
10
+ is_expected.to respond_to(:azure_storage_access_key)
11
+ is_expected.to respond_to(:azure_storage_blob_host)
12
+ is_expected.to respond_to(:azure_container)
12
13
  end
13
14
  end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe CarrierWave::Storage::Azure::File do
4
+ class TestUploader < CarrierWave::Uploader::Base
5
+ storage :azure
6
+ end
7
+
8
+ let(:uploader) { TestUploader.new }
9
+ let(:storage) { CarrierWave::Storage::Azure.new uploader }
10
+
11
+ describe '#url' do
12
+ before do
13
+ allow(uploader).to receive(:azure_container).and_return('test')
14
+ end
15
+
16
+ subject { CarrierWave::Storage::Azure::File.new(uploader, storage.connection, 'dummy.txt').url }
17
+
18
+ context 'with storage_blob_host' do
19
+ before do
20
+ allow(uploader).to receive(:azure_storage_blob_host).and_return('http://example.com')
21
+ end
22
+
23
+ it 'should return on asset_host' do
24
+ expect(subject).to eq 'http://example.com/test/dummy.txt'
25
+ end
26
+ end
27
+
28
+ context 'with asset_host' do
29
+ before do
30
+ allow(uploader).to receive(:asset_host).and_return('http://example.com')
31
+ end
32
+
33
+ it 'should return on asset_host' do
34
+ expect(subject).to eq 'http://example.com/test/dummy.txt'
35
+ end
36
+ end
37
+ end
38
+ end
@@ -11,85 +11,68 @@ describe CarrierWave::Storage::Azure do
11
11
  let(:storage) { CarrierWave::Storage::Azure.new uploader }
12
12
 
13
13
  shared_examples_for 'an expected return value' do
14
+ let(:stored_file) do
15
+ allow(uploader).to receive(:store_path).and_return('test/dummy.png')
16
+ tempfile = Tempfile.new 'test.jpg'
17
+ open(tempfile.path, 'w') do |f|
18
+ f.print '1234567890'
19
+ end
20
+ storage.store! CarrierWave::SanitizedFile.new(
21
+ tempfile: tempfile,
22
+ filename: 'test.jpg',
23
+ content_type: 'image/png'
24
+ )
25
+ end
26
+
27
+ let(:retrieved_file) do
28
+ storage.retrieve! stored_file.path
29
+ end
30
+
14
31
  it 'should have a path' do
15
- expect(@azure_file.path).to eq expect_path
32
+ expect(subject.path).to eq 'test/dummy.png'
16
33
  end
17
34
 
18
35
  it 'should have a url' do
19
- url = @azure_file.url
36
+ url = subject.url
20
37
  expect(url).to match /^https?:\/\//
21
- expect(open(url).read).to eq expect_content
38
+ expect(open(url).read).to eq '1234567890'
22
39
  end
23
40
 
24
41
  it 'should have a content' do
25
- expect(@azure_file.read).to eq expect_content
42
+ expect(subject.read).to eq '1234567890'
26
43
  end
27
44
 
28
45
  it 'should have a content_type' do
29
- expect(@azure_file.content_type).to eq expect_content_type
46
+ expect(subject.content_type).to eq 'image/png'
30
47
  end
31
48
 
32
49
  it 'should have a size' do
33
- expect(@azure_file.size).to eq expect_size
50
+ expect(subject.size).to eq 10
34
51
  end
35
52
 
36
53
  it 'should have a filename' do
37
- expect(@azure_file.filename).to eq expect_filename
54
+ expect(subject.filename).to eq 'dummy.png'
38
55
  end
39
56
 
40
57
  it 'should have an extension' do
41
- expect(@azure_file.extension).to eq expect_extension
58
+ expect(subject.extension).to eq 'png'
42
59
  end
43
60
 
44
61
  it 'should be deletable' do
45
- @azure_file.delete
46
- expect{open @azure_file.url}.to raise_error OpenURI::HTTPError
62
+ subject.delete
63
+ expect{open subject.url}.to raise_error OpenURI::HTTPError
47
64
  end
48
65
  end
49
66
 
50
67
  describe '#store!' do
51
- before do
52
- uploader.stub!(:store_path).and_return('test/dummy1.png')
53
- tempfile = Tempfile.new 'test.jpg'
54
- open(tempfile.path, 'w') do |f|
55
- f.print '1234567890'
56
- end
57
- @azure_file = storage.store! CarrierWave::SanitizedFile.new(
58
- tempfile: tempfile,
59
- filename: 'test.jpg',
60
- content_type: 'image/png'
61
- )
62
- end
63
-
64
68
  it_should_behave_like 'an expected return value' do
65
- let(:expect_path) { 'test/dummy1.png' }
66
- let(:expect_content) { '1234567890' }
67
- let(:expect_content_type) { 'image/png' }
68
- let(:expect_size) { 10 }
69
- let(:expect_filename) { 'dummy1.png' }
70
- let(:expect_extension) { 'png' }
69
+ subject { stored_file }
71
70
  end
72
71
  end
73
72
 
74
73
  describe '#retrieve' do
75
- before do
76
- uploader.stub!(:store_path).and_return('test/dummy2.png')
77
- storage.connection.create_block_blob(
78
- uploader.azure_container,
79
- 'test/dummy2.png',
80
- '0123456789ABCDEF',
81
- content_type: 'text/plain'
82
- )
83
- @azure_file = storage.retrieve! 'test/dummy2.png'
84
- end
85
-
86
74
  it_should_behave_like 'an expected return value' do
87
- let(:expect_path) { 'test/dummy2.png' }
88
- let(:expect_content_type) { 'text/plain' }
89
- let(:expect_content) { "0123456789ABCDEF" }
90
- let(:expect_size) { 16 }
91
- let(:expect_filename) { 'dummy2.png' }
92
- let(:expect_extension) { 'png' }
75
+ subject { retrieved_file }
93
76
  end
94
77
  end
95
78
  end
@@ -1,7 +1,5 @@
1
1
  CarrierWave.configure do |config|
2
- config.azure_credentials = {
3
- storage_account_name: 'YOUR STORAGE ACCOUNT NAME',
4
- storage_access_key: 'YOUR STORAGE ACCESS KEY'
5
- }
2
+ config.azure_storage_account_name = 'YOUR STORAGE ACCOUNT NAME'
3
+ config.azure_storage_access_key = 'YOUR STORAGE ACCESS KEY'
6
4
  config.azure_container = 'YOUR CONTAINER NAME'
7
5
  end
metadata CHANGED
@@ -1,57 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carrierwave-azure
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yusuke Shibahara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-17 00:00:00.000000000 Z
11
+ date: 2015-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: carrierwave
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: azure
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3'
55
69
  description: Allows file upload to Azure with the officail sdk
56
70
  email:
57
71
  - yusuke.shibahara@heathrow.co.jp
@@ -59,8 +73,8 @@ executables: []
59
73
  extensions: []
60
74
  extra_rdoc_files: []
61
75
  files:
62
- - .gitignore
63
- - .rspec
76
+ - ".gitignore"
77
+ - ".rspec"
64
78
  - Gemfile
65
79
  - LICENSE.txt
66
80
  - README.md
@@ -70,6 +84,7 @@ files:
70
84
  - lib/carrierwave/azure/version.rb
71
85
  - lib/carrierwave/storage/azure.rb
72
86
  - spec/carrierwave-azure_spec.rb
87
+ - spec/carrierwave/storage/azure_file_spec.rb
73
88
  - spec/carrierwave/storage/azure_spec.rb
74
89
  - spec/environment.rb.sample
75
90
  - spec/spec_helper.rb
@@ -83,17 +98,17 @@ require_paths:
83
98
  - lib
84
99
  required_ruby_version: !ruby/object:Gem::Requirement
85
100
  requirements:
86
- - - '>='
101
+ - - ">="
87
102
  - !ruby/object:Gem::Version
88
103
  version: '0'
89
104
  required_rubygems_version: !ruby/object:Gem::Requirement
90
105
  requirements:
91
- - - '>='
106
+ - - ">="
92
107
  - !ruby/object:Gem::Version
93
108
  version: '0'
94
109
  requirements: []
95
110
  rubyforge_project:
96
- rubygems_version: 2.0.2
111
+ rubygems_version: 2.4.5
97
112
  signing_key:
98
113
  specification_version: 4
99
114
  summary: Windows Azure blob storage support for CarrierWave