yandex-disk 0.0.7 → 0.0.8
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 +5 -0
- data/lib/yandex/disk/client.rb +6 -0
- data/lib/yandex/disk/client/request.rb +1 -0
- data/lib/yandex/disk/client/request/publication.rb +51 -0
- data/lib/yandex/disk/client/request/space.rb +2 -2
- data/lib/yandex/disk/version.rb +1 -1
- data/yandex-disk.gemspec +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94b6b93fa82493fec724772f534f1e6e5703ea18
|
4
|
+
data.tar.gz: 3e2f77620f4468cdb8d989a70521f090dac10012
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea626f8d1fadb0f37c1e2516d9c1b2971dbd4eb1180224049f93bebed7cc0d429cf8b5578930733fa1283dcf015b216227748d1aba7e96c92ec9561c6de0acc7
|
7
|
+
data.tar.gz: 69ba2c1d51420a294f16ab57e8b0b5c1d1ae9e8e3489e36ba5d26f23536d72763d929da5b994fa36309489abb98fe78e2cde982f3871bab262f4da430d27de4a
|
data/README.md
CHANGED
@@ -46,6 +46,11 @@ disk.move('/path/to/remote/file/or/dir', '/path/to/new/remote/file/or/dir')
|
|
46
46
|
# delete file/dir
|
47
47
|
disk.delete('/path/to/remote/file/or/dir') # returns `true` if everything is ok
|
48
48
|
|
49
|
+
# property update operations:
|
50
|
+
|
51
|
+
# to make folder or file public
|
52
|
+
disk.make_public('/path/to/remote/dir/or/file') # returns hash with public url `=> { :public_url => "https://yadi.sk/i/B98Qjxxx3S5QJc" }` if everything is ok
|
53
|
+
|
49
54
|
# to get quotas
|
50
55
|
disk.space # returns hash like { :quota_available_bytes => 2488943615, :quota_used_bytes => 2488943615 }
|
51
56
|
|
data/lib/yandex/disk/client.rb
CHANGED
@@ -5,6 +5,7 @@ require 'faraday'
|
|
5
5
|
require 'faraday_middleware'
|
6
6
|
|
7
7
|
Faraday::Connection::METHODS << :propfind
|
8
|
+
Faraday::Connection::METHODS << :proppatch
|
8
9
|
|
9
10
|
module Yandex
|
10
11
|
module Disk
|
@@ -63,6 +64,11 @@ module Yandex
|
|
63
64
|
request.perform
|
64
65
|
end
|
65
66
|
|
67
|
+
def make_public path
|
68
|
+
request = Request::Publication.new(@http, path)
|
69
|
+
request.perform
|
70
|
+
end
|
71
|
+
|
66
72
|
alias_method :mkdir, :mkcol
|
67
73
|
|
68
74
|
def mkdir_p path
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
class Yandex::Disk::Client::Request::Publication
|
4
|
+
BODY =
|
5
|
+
'<propertyupdate xmlns="DAV:">
|
6
|
+
<set>
|
7
|
+
<prop>
|
8
|
+
<public_url xmlns="urn:yandex:disk:meta">true</public_url>
|
9
|
+
</prop>
|
10
|
+
</set>
|
11
|
+
</propertyupdate>'
|
12
|
+
HEADERS = {
|
13
|
+
}
|
14
|
+
|
15
|
+
def initialize http, path
|
16
|
+
@http = http
|
17
|
+
@path = path
|
18
|
+
end
|
19
|
+
|
20
|
+
def perform
|
21
|
+
response = @http.run_request :proppatch, @path, BODY, HEADERS
|
22
|
+
parse_result = parse(response.body)
|
23
|
+
{ :public_url => parse_result.public_url }
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
class AttributesParser < Nokogiri::XML::SAX::Document
|
29
|
+
attr_reader :public_url
|
30
|
+
|
31
|
+
def start_element name, attributes = []
|
32
|
+
case name
|
33
|
+
when 'public_url'
|
34
|
+
@public_url = true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def characters string
|
39
|
+
@public_url = string if (@public_url == true)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def parse body
|
44
|
+
attributes_parser = AttributesParser.new
|
45
|
+
|
46
|
+
parser = Nokogiri::XML::SAX::Parser.new(attributes_parser)
|
47
|
+
parser.parse(body)
|
48
|
+
|
49
|
+
attributes_parser
|
50
|
+
end
|
51
|
+
end
|
@@ -27,7 +27,7 @@ class Yandex::Disk::Client::Request::Space
|
|
27
27
|
|
28
28
|
private
|
29
29
|
|
30
|
-
class
|
30
|
+
class AttributesParser < Nokogiri::XML::SAX::Document
|
31
31
|
attr_reader :quota_available_bytes, :quota_used_bytes
|
32
32
|
|
33
33
|
def start_element name, attributes = []
|
@@ -46,7 +46,7 @@ class Yandex::Disk::Client::Request::Space
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def parse body
|
49
|
-
attributes_parser =
|
49
|
+
attributes_parser = AttributesParser.new
|
50
50
|
|
51
51
|
parser = Nokogiri::XML::SAX::Parser.new(attributes_parser)
|
52
52
|
parser.parse(body)
|
data/lib/yandex/disk/version.rb
CHANGED
data/yandex-disk.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency('faraday', '~> 0.8')
|
22
|
-
spec.add_dependency('nokogiri', '
|
22
|
+
spec.add_dependency('nokogiri', '>= 1.6.0')
|
23
23
|
spec.add_dependency('faraday_middleware', '~> 0.9.0')
|
24
24
|
spec.add_dependency('excon', '>= 0.16')
|
25
25
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yandex-disk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yury Korolev
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-02-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -29,14 +29,14 @@ dependencies:
|
|
29
29
|
name: nokogiri
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 1.6.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 1.6.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- lib/yandex/disk/client.rb
|
114
114
|
- lib/yandex/disk/client/request.rb
|
115
115
|
- lib/yandex/disk/client/request/list.rb
|
116
|
+
- lib/yandex/disk/client/request/publication.rb
|
116
117
|
- lib/yandex/disk/client/request/space.rb
|
117
118
|
- lib/yandex/disk/version.rb
|
118
119
|
- test/yandex_dist_test.rb
|
@@ -137,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
138
|
version: '0'
|
138
139
|
requirements: []
|
139
140
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.
|
141
|
+
rubygems_version: 2.5.2
|
141
142
|
signing_key:
|
142
143
|
specification_version: 4
|
143
144
|
summary: Ruby client for Yandex.Disk with backup gem support
|