carrierwave-webdav 0.2.0 → 0.3.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.
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