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
         
     |