yandex_client 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|