carrierwave-webdav 0.2.0 → 0.3.0

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: 730556ae8749e7612051df3d9a58507587c27ecf
4
- data.tar.gz: 5af49b859816d545b742baed6b27db795957a0ec
3
+ metadata.gz: 7afa6a736d2e4a796bd8de0c8189e5fa85c83686
4
+ data.tar.gz: a592e5bb352ff48b83979192106f39e936d0feb6
5
5
  SHA512:
6
- metadata.gz: a364a9e0dde34f08fc9604d78c08d8a5df4af3d29488628c8dd9aead7f0ebca19de1b70c21f5b04d8a2b490bd46852836e17640f348dd97f711fefa3d91855e7
7
- data.tar.gz: f240e83ed8de34d96a605edac86b7a6ab1d46855b34f41da85f4d1f0cda379e7f468534bccc3c8ff3338e104d1e898858def31990d9ff889e9cb7dc3698510c5
6
+ metadata.gz: 313de2c855d2893543a952579f9410c217cb5a263199653ec31b091c80574502488819c8a06d3183c77ede0e3b952111ee43ee7f03e354265415644353e2e88b
7
+ data.tar.gz: 61da6ba39dfaff6fede3d1820ed7cb74e938820c25ca68a4e1aeb400ff6fa750cf0313734a411414b3a15980b589c706c9ab1bf620191e7622948746f5c4d19c
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # CarrierWave for WebDAV
2
2
 
3
3
  This gem adds support for WebDAV to
4
- [CarrierWave](https://github.com/jnicklas/carrierwave/)
4
+ [CarrierWave](https://github.com/carrierwaveuploader/carrierwave/)
5
5
 
6
6
  ## Installation
7
7
 
@@ -20,7 +20,7 @@ Or, in Rails you can add it to your Gemfile:
20
20
  ## Getting Started
21
21
 
22
22
  Follow the "Getting Started" directions in the main
23
- [Carrierwave repository](https://raw.github.com/jnicklas/carrierwave/).
23
+ [Carrierwave repository](https://github.com/carrierwaveuploader/carrierwave/).
24
24
 
25
25
  ## Using WebDAV store
26
26
 
@@ -30,6 +30,7 @@ In Rails, add WebDAV settings to `config/initializers/carrierwave.rb`
30
30
  CarrierWave.configure do |config|
31
31
  config.storage = :webdav
32
32
  config.webdav_server = 'https://your.webdav_server.com/dav' # Your WebDAV url.
33
+ # config.webdav_write_server = 'https://secure.your.webdavserver.com/dav/' # This is an optional attribute. It can save on one server and read from another server. (Contributed by @eychu. Thanks)
33
34
  config.webdav_username = 'your webdav username'
34
35
  config.webdav_password = 'your webdav password'
35
36
  end
@@ -46,13 +46,12 @@ module CarrierWave
46
46
  @uploader = uploader
47
47
  @server = uploader.webdav_server
48
48
  @server.sub! /\/$/, ''
49
+ @write_server = uploader.webdav_write_server
50
+ @write_server.sub!(/\/$/, '') if @write_server
49
51
  @username = uploader.webdav_username
50
52
  @password = uploader.webdav_password || ''
51
- if @username
52
- @options = { basic_auth: { username: @username, password: @password }}
53
- else
54
- @options = {}
55
- end
53
+ @options = {}
54
+ @options = { basic_auth: { username: @username, password: @password } } if @username
56
55
  end
57
56
 
58
57
  def read
@@ -61,7 +60,7 @@ module CarrierWave
61
60
 
62
61
  def write(file)
63
62
  mkcol
64
- HTTParty.put(url, options.merge({ body: file }))
63
+ HTTParty.put(write_url, options.merge({ body: file }))
65
64
  end
66
65
 
67
66
  def length
@@ -69,7 +68,7 @@ module CarrierWave
69
68
  end
70
69
 
71
70
  def delete
72
- HTTParty.delete(url, options)
71
+ HTTParty.delete(write_url, options)
73
72
  end
74
73
 
75
74
  def url
@@ -82,13 +81,18 @@ module CarrierWave
82
81
 
83
82
  private
84
83
 
84
+ def write_url
85
+ @write_server ? "#{@write_server}/#{path}" : url
86
+ end
87
+
85
88
  def mkcol
86
89
  dirs = []
87
90
  path.split('/')[0...-1].each do |dir|
88
91
  dirs << "#{dirs[-1]}/#{dir}"
89
92
  end # Make path like a/b/c/t.txt to array ['/a', '/a/b', '/a/b/c']
93
+ use_server = @write_server ? @write_server : server
90
94
  dirs.each do |dir|
91
- HTTParty.mkcol("#{server}#{dir}", options)
95
+ HTTParty.mkcol("#{use_server}#{dir}", options)
92
96
  end # Make collections recursively
93
97
  end
94
98
  end # File
@@ -1,5 +1,5 @@
1
1
  module CarrierWave
2
2
  module WebDAV
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -7,6 +7,7 @@ class CarrierWave::Uploader::Base
7
7
  add_config :webdav_username
8
8
  add_config :webdav_password
9
9
  add_config :webdav_server
10
+ add_config :webdav_write_server
10
11
 
11
12
  configure do |config|
12
13
  config.storage_engines[:webdav] = 'CarrierWave::Storage::WebDAV'
@@ -22,37 +22,65 @@ describe CarrierWave::Storage::WebDAV do
22
22
  @uri.user = @uploader.webdav_username
23
23
  @uri.password = @uploader.webdav_password
24
24
  @uri.merge! @uploader.store_path
25
-
26
- stub_mkcol @uri
27
- stub_put @uri
28
-
29
- @webdav_file = @storage.store!(@file)
30
25
  end
31
26
 
32
27
  it 'should store from WebDAV' do
28
+ stub_mkcol @uri
29
+ stub_put @uri
30
+ webdav_file = @storage.store!(@file)
33
31
  stub_get @uri
34
- expect(@file.read).to eq(@webdav_file.read)
32
+ expect(@file.read).to eq(webdav_file.read)
35
33
  end
36
34
 
37
35
  it 'should retrieve a file from WebDAV' do
36
+ stub_mkcol @uri
37
+ stub_put @uri
38
+ webdav_file = @storage.store!(@file)
38
39
  stub_get @uri
39
- retrieved_file = @storage.retrieve!(@webdav_file)
40
+ retrieved_file = @storage.retrieve!(webdav_file)
40
41
  expect(@file.read).to eq(retrieved_file.read)
41
42
  expect(File.basename(@file.path)).to eq(File.basename(retrieved_file.path))
42
43
  end
43
44
 
44
45
  it 'should delete a file from WebDAV' do
46
+ stub_mkcol @uri
47
+ stub_put @uri
48
+ webdav_file = @storage.store!(@file)
45
49
  stub_delete @uri
46
- expect(Net::HTTPOK).to eq(@webdav_file.delete.response.class)
50
+ expect(Net::HTTPOK).to eq(webdav_file.delete.response.class)
47
51
  end
48
52
 
49
53
  it 'should size equal' do
54
+ stub_mkcol @uri
55
+ stub_put @uri
56
+ webdav_file = @storage.store!(@file)
50
57
  stub_get @uri
51
- expect(@file.size).to eq(@webdav_file.size)
58
+ expect(@file.size).to eq(webdav_file.size)
52
59
  end
53
60
 
54
61
  it 'should url equal' do
55
- expect("#{@uploader.webdav_server}/#{@uploader.store_path}").to eq(@webdav_file.url)
62
+ stub_mkcol @uri
63
+ stub_put @uri
64
+ webdav_file = @storage.store!(@file)
65
+ expect("#{@uploader.webdav_server}/#{@uploader.store_path}").to eq(webdav_file.url)
66
+ end
67
+
68
+ it 'should save through secure server' do
69
+ CarrierWave.configure do |config|
70
+ config.webdav_write_server = 'https://secure.your.webdavserver.com/dav/'
71
+ end
72
+
73
+ secure_uri = URI(@uploader.webdav_write_server)
74
+ secure_uri.user = @uploader.webdav_username
75
+ secure_uri.password = @uploader.webdav_password
76
+ secure_uri.merge! @uploader.store_path
77
+
78
+ stub_mkcol secure_uri
79
+ stub_put secure_uri
80
+ webdav_file = @storage.store!(@file)
81
+
82
+ stub_get @uri
83
+ expect(@file.read).to eq(webdav_file.read)
56
84
  end
57
85
 
58
86
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carrierwave-webdav
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Qinix
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-05 00:00:00.000000000 Z
11
+ date: 2013-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: carrierwave
@@ -80,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
80
  version: '0'
81
81
  requirements: []
82
82
  rubyforge_project:
83
- rubygems_version: 2.0.3
83
+ rubygems_version: 2.0.0
84
84
  signing_key:
85
85
  specification_version: 4
86
86
  summary: WebDAV support for CarrierWave