carrierwave-webdav 0.4.0 → 0.4.1
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 +4 -4
- data/README.md +1 -0
- data/lib/carrierwave/storage/webdav.rb +29 -6
- data/lib/carrierwave/webdav.rb +1 -1
- data/lib/carrierwave/webdav/version.rb +1 -1
- data/spec/lib/webdav_spec.rb +3 -3
- data/spec/supports/helpers.rb +6 -1
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f796cdb81a5978a2a642c3717a5e6a4816c09ebd
|
4
|
+
data.tar.gz: 12bebb033dbc078ce8b28847b3a77c1463e3489f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6b9e900ce9e8ee85239e690c016e609c3000b43d376b34f7bab3399de42135ae114ef3c8f48d464b1e76657add2978305b9ff4b74538589012522e6190e0afb
|
7
|
+
data.tar.gz: c8b4513c4a1a4f6a67933577db38ddd0318333a1379b7c901e4d1f2c41407b339b97f97fecedf38f5709950f35f7daa7a5af6449882191b6be717054eedb2565
|
data/README.md
CHANGED
@@ -33,6 +33,7 @@ CarrierWave.configure do |config|
|
|
33
33
|
config.storage = :webdav
|
34
34
|
config.webdav_server = 'https://your.webdav_server.com/dav' # Your WebDAV url.
|
35
35
|
# 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)
|
36
|
+
# config.webdav_autocreates_dirs = true # if automatic directory creation is enabled on the server (disables explicit directory creation)
|
36
37
|
config.webdav_username = 'your webdav username'
|
37
38
|
config.webdav_password = 'your webdav password'
|
38
39
|
end
|
@@ -52,19 +52,35 @@ module CarrierWave
|
|
52
52
|
@password = uploader.webdav_password || ''
|
53
53
|
@options = {}
|
54
54
|
@options = { basic_auth: { username: @username, password: @password } } if @username
|
55
|
+
@create_dirs = !uploader.webdav_autocreates_dirs
|
55
56
|
end
|
56
57
|
|
57
58
|
def read
|
58
|
-
HTTParty.get(url, options)
|
59
|
+
res = HTTParty.get(url, options)
|
60
|
+
if res.code != 200
|
61
|
+
raise CarrierWave::IntegrityError.new("Can't download a file: #{res.inspect}")
|
62
|
+
end
|
63
|
+
res.body
|
59
64
|
end
|
60
65
|
|
61
66
|
def headers
|
62
|
-
HTTParty.
|
67
|
+
res = HTTParty.head(url, options)
|
68
|
+
if res.code != 200
|
69
|
+
raise CarrierWave::IntegrityError.new("Can't headers for a file: #{res.inspect}")
|
70
|
+
end
|
71
|
+
res.headers
|
63
72
|
end
|
64
73
|
|
65
74
|
def write(file)
|
66
|
-
|
67
|
-
|
75
|
+
if @create_dirs
|
76
|
+
res = mkcol
|
77
|
+
end
|
78
|
+
|
79
|
+
res = HTTParty.put(write_url, options.merge({ body: file }))
|
80
|
+
if res.code != 201 and res.code != 204
|
81
|
+
raise CarrierWave::IntegrityError.new("Can't put a new file: #{res.inspect}")
|
82
|
+
end
|
83
|
+
res
|
68
84
|
end
|
69
85
|
|
70
86
|
def length
|
@@ -76,7 +92,11 @@ module CarrierWave
|
|
76
92
|
end
|
77
93
|
|
78
94
|
def delete
|
79
|
-
HTTParty.delete(write_url, options)
|
95
|
+
res = HTTParty.delete(write_url, options)
|
96
|
+
if res.code != 200 and res.code != 404
|
97
|
+
raise CarrierWave::IntegrityError.new("Can't delete a file: #{res.inspect}")
|
98
|
+
end
|
99
|
+
res
|
80
100
|
end
|
81
101
|
|
82
102
|
def url
|
@@ -100,7 +120,10 @@ module CarrierWave
|
|
100
120
|
end # Make path like a/b/c/t.txt to array ['/a', '/a/b', '/a/b/c']
|
101
121
|
use_server = @write_server ? @write_server : server
|
102
122
|
dirs.each do |dir|
|
103
|
-
HTTParty.mkcol("#{use_server}#{dir}", options)
|
123
|
+
res = HTTParty.mkcol("#{use_server}#{dir}", options)
|
124
|
+
unless [200, 201, 207, 409].include? res.code
|
125
|
+
raise CarrierWave::IntegrityError.new("Can't create a new collection: #{res.inspect}")
|
126
|
+
end
|
104
127
|
end # Make collections recursively
|
105
128
|
end
|
106
129
|
end # File
|
data/lib/carrierwave/webdav.rb
CHANGED
@@ -8,9 +8,9 @@ class CarrierWave::Uploader::Base
|
|
8
8
|
add_config :webdav_password
|
9
9
|
add_config :webdav_server
|
10
10
|
add_config :webdav_write_server
|
11
|
+
add_config :webdav_autocreates_dirs
|
11
12
|
|
12
13
|
configure do |config|
|
13
14
|
config.storage_engines[:webdav] = 'CarrierWave::Storage::WebDAV'
|
14
15
|
end
|
15
16
|
end
|
16
|
-
|
data/spec/lib/webdav_spec.rb
CHANGED
@@ -13,7 +13,7 @@ describe CarrierWave::Storage::WebDAV do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
@uploader = CarrierWave::Uploader::Base.new
|
16
|
-
@uploader.stub
|
16
|
+
@uploader.stub store_path: 'uploads/test.txt'
|
17
17
|
|
18
18
|
@storage = CarrierWave::Storage::WebDAV.new(@uploader)
|
19
19
|
@file = CarrierWave::SanitizedFile.new(file_path('test.txt'))
|
@@ -62,7 +62,7 @@ describe CarrierWave::Storage::WebDAV do
|
|
62
62
|
stub_mkcol @uri
|
63
63
|
stub_put @uri
|
64
64
|
webdav_file = @storage.store!(@file)
|
65
|
-
|
65
|
+
stub_head @uri
|
66
66
|
expect(@file.content_type).to eq(webdav_file.content_type)
|
67
67
|
end
|
68
68
|
|
@@ -91,4 +91,4 @@ describe CarrierWave::Storage::WebDAV do
|
|
91
91
|
expect(@file.read).to eq(webdav_file.read)
|
92
92
|
end
|
93
93
|
|
94
|
-
end
|
94
|
+
end
|
data/spec/supports/helpers.rb
CHANGED
@@ -9,10 +9,15 @@ module Helpers
|
|
9
9
|
to_return(:status => 200, :body => 'Hello, this is test data.', :headers => {})
|
10
10
|
end
|
11
11
|
|
12
|
+
def stub_head(url)
|
13
|
+
stub_request(:head, url.to_s).
|
14
|
+
to_return(:status => 200, :body => '', :headers => {'Content-type' => 'text/plain'})
|
15
|
+
end
|
16
|
+
|
12
17
|
def stub_put(url)
|
13
18
|
stub_request(:put, url.to_s).
|
14
19
|
with(:body => 'Hello, this is test data.').
|
15
|
-
to_return(:status =>
|
20
|
+
to_return(:status => 201, :body => '', :headers => {})
|
16
21
|
end
|
17
22
|
|
18
23
|
def stub_mkcol(url)
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: carrierwave-webdav
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Qinix
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-10-09 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: httparty
|
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
|
description: WebDAV support for CarrierWave
|
@@ -45,9 +45,9 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
-
- .coveralls.yml
|
49
|
-
- .gitignore
|
50
|
-
- .travis.yml
|
48
|
+
- ".coveralls.yml"
|
49
|
+
- ".gitignore"
|
50
|
+
- ".travis.yml"
|
51
51
|
- Gemfile
|
52
52
|
- LICENSE
|
53
53
|
- README.md
|
@@ -70,17 +70,17 @@ require_paths:
|
|
70
70
|
- lib
|
71
71
|
required_ruby_version: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
77
|
requirements:
|
78
|
-
- -
|
78
|
+
- - ">="
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '0'
|
81
81
|
requirements: []
|
82
82
|
rubyforge_project:
|
83
|
-
rubygems_version: 2.
|
83
|
+
rubygems_version: 2.2.2
|
84
84
|
signing_key:
|
85
85
|
specification_version: 4
|
86
86
|
summary: WebDAV support for CarrierWave
|