yandex_client 0.1.0 → 0.1.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/.travis.yml +1 -1
- data/Gemfile +4 -3
- data/Rakefile +5 -3
- data/dip.yml +1 -1
- data/docker/Dockerfile.2.6 +8 -4
- data/lib/yandex_client.rb +2 -0
- data/lib/yandex_client/api_request_error.rb +2 -0
- data/lib/yandex_client/auth/client.rb +3 -1
- data/lib/yandex_client/client.rb +7 -6
- data/lib/yandex_client/dav/client.rb +5 -3
- data/lib/yandex_client/dav/propfind_parser.rb +5 -2
- data/lib/yandex_client/not_found_error.rb +2 -0
- data/lib/yandex_client/passport/client.rb +3 -1
- data/lib/yandex_client/version.rb +3 -1
- data/yandex_client.gemspec +7 -5
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec95accc04a86127c16f61ad3f438ec9b42c9cb5eaa03c7589191d7a4223402f
|
4
|
+
data.tar.gz: b1a50d5dd827ab178ec54cf6d7a6613d89e97065f5117d5669583e12678c4811
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5cef57682df43d60b7f666bf7df6f77d51aeb41a96579048c0c5e84b616cdadc78f4d4efae2f0c006fa1df421179b857a312c4cac37250b5c7273c7f5a56fdd1
|
7
|
+
data.tar.gz: 00376bc7e7e6185bf797655630ac93509cacc567100e44f26902abfb3abd8b70e0775148ec06ff79961b8a7ea36e6be28e060b18a287acd688c7baefd1400c20
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
4
6
|
|
5
7
|
gem 'pry-byebug'
|
6
8
|
|
7
|
-
# Specify your gem's dependencies in yandex_client.gemspec
|
8
9
|
gemspec
|
data/Rakefile
CHANGED
data/dip.yml
CHANGED
data/docker/Dockerfile.2.6
CHANGED
@@ -1,9 +1,13 @@
|
|
1
|
-
FROM ruby:2.6.
|
1
|
+
FROM ruby:2.6.5-alpine
|
2
2
|
|
3
|
-
RUN
|
4
|
-
|
3
|
+
RUN apk add --update --no-cache tzdata openssh-client less git build-base
|
4
|
+
RUN cp /usr/share/zoneinfo/Asia/Yekaterinburg /etc/localtime && echo 'Asia/Yekaterinburg' > /etc/timezone
|
5
|
+
|
6
|
+
RUN ssh-keyscan -H github.com >> /etc/ssh/ssh_known_hosts
|
7
|
+
|
8
|
+
ENV BUNDLE_APP_CONFIG /app/.bundle
|
5
9
|
|
6
10
|
RUN echo 'gem: --no-rdoc --no-ri --no-document' > /root/.gemrc
|
7
|
-
RUN gem install bundler
|
11
|
+
RUN gem install bundler -v '2.0.2'
|
8
12
|
|
9
13
|
WORKDIR /app
|
data/lib/yandex_client.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'uri'
|
2
4
|
|
3
5
|
module YandexClient
|
@@ -14,7 +16,7 @@ module YandexClient
|
|
14
16
|
# client.create_token(code: '9388894')
|
15
17
|
# client.refresh_token(refresh_token: token.refresh_token)
|
16
18
|
class Client < ::YandexClient::Client
|
17
|
-
AUTH_ACTION_URL = 'https://oauth.yandex.ru/token'
|
19
|
+
AUTH_ACTION_URL = 'https://oauth.yandex.ru/token'
|
18
20
|
|
19
21
|
ACTIONS = {
|
20
22
|
create_token: 'authorization_code',
|
data/lib/yandex_client/client.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'oj'
|
2
4
|
require 'net/http'
|
3
5
|
|
4
6
|
module YandexClient
|
5
7
|
# Base api client
|
6
8
|
class Client
|
7
|
-
|
8
|
-
METHOD_GET = 'Get'
|
9
|
-
METHOD_POST = 'Post'
|
9
|
+
DEFAULT_TIMEOUT = 10
|
10
|
+
METHOD_GET = 'Get'
|
11
|
+
METHOD_POST = 'Post'
|
10
12
|
|
11
13
|
ERRORS_BY_CODES = {
|
12
14
|
404 => NotFoundError
|
@@ -34,8 +36,8 @@ module YandexClient
|
|
34
36
|
def http(request_uri)
|
35
37
|
Net::HTTP.new(request_uri.host, request_uri.port).tap do |http|
|
36
38
|
http.use_ssl = true
|
37
|
-
http.read_timeout =
|
38
|
-
http.continue_timeout =
|
39
|
+
http.read_timeout = DEFAULT_TIMEOUT
|
40
|
+
http.continue_timeout = DEFAULT_TIMEOUT
|
39
41
|
end
|
40
42
|
end
|
41
43
|
|
@@ -83,7 +85,6 @@ module YandexClient
|
|
83
85
|
end
|
84
86
|
|
85
87
|
def request_body(_params)
|
86
|
-
|
87
88
|
end
|
88
89
|
|
89
90
|
def request_headers(_params)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'digest'
|
2
4
|
|
3
5
|
module YandexClient
|
@@ -14,9 +16,9 @@ module YandexClient
|
|
14
16
|
# cli.propfind(name: '/a', depth: 1)
|
15
17
|
# cli.propfind(name: '/', quota: true)
|
16
18
|
class Client < ::YandexClient::Client
|
17
|
-
ACTION_URL = 'https://webdav.yandex.ru'
|
18
|
-
PROPFIND_QUERY = '<?xml version="1.0" encoding="utf-8"?><propfind xmlns="DAV:"></propfind>'
|
19
|
-
PROPFIND_QUOTA_QUERY = <<~XML
|
19
|
+
ACTION_URL = 'https://webdav.yandex.ru'
|
20
|
+
PROPFIND_QUERY = '<?xml version="1.0" encoding="utf-8"?><propfind xmlns="DAV:"></propfind>'
|
21
|
+
PROPFIND_QUOTA_QUERY = <<~XML
|
20
22
|
<D:propfind xmlns:D="DAV:">
|
21
23
|
<D:prop>
|
22
24
|
<D:quota-available-bytes/>
|
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'ox'
|
2
4
|
require 'cgi'
|
3
5
|
|
4
6
|
module YandexClient
|
5
7
|
module Dav
|
6
8
|
class PropfindParser
|
7
|
-
SUCCESS_STATUS = 'HTTP/1.1 200 OK'
|
9
|
+
SUCCESS_STATUS = 'HTTP/1.1 200 OK'
|
8
10
|
|
9
11
|
PROCESSORS = {
|
10
12
|
getcontentlength: ->(value) { value.to_i },
|
@@ -15,7 +17,8 @@ module YandexClient
|
|
15
17
|
end
|
16
18
|
|
17
19
|
def initialize(xml)
|
18
|
-
|
20
|
+
# FIXME: dup?
|
21
|
+
@document = Ox.load(xml.dup.force_encoding('UTF-8'), mode: :hash)
|
19
22
|
end
|
20
23
|
|
21
24
|
def call
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module YandexClient
|
2
4
|
module Passport
|
3
5
|
# https://tech.yandex.ru/passport/doc/dg/reference/request-docpage/
|
@@ -6,7 +8,7 @@ module YandexClient
|
|
6
8
|
# client = YandexClient::Passport::Client.new(access_token: Token.first.access_token)
|
7
9
|
# client.info
|
8
10
|
class Client < ::YandexClient::Client
|
9
|
-
ACTION_URL = 'https://login.yandex.ru/info'
|
11
|
+
ACTION_URL = 'https://login.yandex.ru/info'
|
10
12
|
ACTIONS = %i[info].freeze
|
11
13
|
|
12
14
|
# action - info
|
data/yandex_client.gemspec
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
5
|
require 'yandex_client/version'
|
4
6
|
|
@@ -8,12 +10,12 @@ Gem::Specification.new do |spec|
|
|
8
10
|
spec.authors = ['Maxim Tretyakov']
|
9
11
|
spec.email = ['max@tretyakov-ma.ru']
|
10
12
|
|
11
|
-
spec.summary =
|
12
|
-
spec.description =
|
13
|
+
spec.summary = 'Yandex Client'
|
14
|
+
spec.description = 'Allows to use yandex disk as webdav nodes'
|
13
15
|
spec.homepage = 'https://github.com/yamax2/yandex_client'
|
14
16
|
spec.license = 'MIT'
|
15
17
|
|
16
|
-
spec.files = Dir.chdir(File.expand_path(
|
18
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
17
19
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
20
|
end
|
19
21
|
|
@@ -30,5 +32,5 @@ Gem::Specification.new do |spec|
|
|
30
32
|
spec.add_development_dependency 'vcr'
|
31
33
|
spec.add_development_dependency 'webmock'
|
32
34
|
|
33
|
-
spec.required_ruby_version = '>= 2.
|
35
|
+
spec.required_ruby_version = '>= 2.4'
|
34
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yandex_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maxim Tretyakov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oj
|
@@ -150,14 +150,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
150
150
|
requirements:
|
151
151
|
- - ">="
|
152
152
|
- !ruby/object:Gem::Version
|
153
|
-
version: '2.
|
153
|
+
version: '2.4'
|
154
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
156
|
- - ">="
|
157
157
|
- !ruby/object:Gem::Version
|
158
158
|
version: '0'
|
159
159
|
requirements: []
|
160
|
-
rubygems_version: 3.0.
|
160
|
+
rubygems_version: 3.0.6
|
161
161
|
signing_key:
|
162
162
|
specification_version: 4
|
163
163
|
summary: Yandex Client
|