pcloud 0.1.0 → 0.3.0
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/CHANGELOG.md +63 -4
- data/README.md +62 -37
- data/lib/pcloud/client.rb +33 -20
- data/lib/pcloud/files/file_handler.rb +32 -16
- data/lib/pcloud/request.rb +34 -37
- data/lib/pcloud/version.rb +1 -1
- data/lib/pcloud.rb +9 -11
- metadata +4 -5
- data/lib/pcloud/resource.rb +0 -29
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f947200228e5097393b62dfec894cb23446ab98aa6a5cae771df06f7aa857157
|
|
4
|
+
data.tar.gz: a112e53a402bf4ff3712d97c4ebf6bab0a1d45344c3cec64c7166c530cec2d4d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f9268db7b79edd81d07ab7e4e6f927749dd862ec4de3ebb1abcaf32198c2dcf1844e28a6b3c884ccf0776df3e2cd2024ae0593a093bd9c92b2f296d8e08886ab
|
|
7
|
+
data.tar.gz: e21f80afd09d7e397835c2ab2d6e88bb76f30999b5e2da60f53ed942bf11976bba044554b2c74c97659803b5a8e7215302d2f4d0290940678d934c5cb64749eb
|
data/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,73 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
### [0.3.1](https://www.github.com/7urkm3n/pcloud/compare/v0.3.0...v0.3.1) (2021-09-04)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* version update ([9bf5268](https://www.github.com/7urkm3n/pcloud/commit/9bf52681a94e6b17ec721778bfaeee39c1750a36))
|
|
9
|
+
|
|
10
|
+
## [0.3.0](https://www.github.com/7urkm3n/pcloud/compare/v0.2.0...v0.3.0) (2021-09-04)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### ⚠ BREAKING CHANGES
|
|
4
14
|
|
|
15
|
+
* initialization
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* initialization ([6dc7735](https://www.github.com/7urkm3n/pcloud/commit/6dc77359c4bd3003ad05ed54705bfa70a6a95e62))
|
|
20
|
+
|
|
21
|
+
## [0.2.0](https://www.github.com/7urkm3n/pcloud/compare/v0.1.0...v0.2.0) (2021-09-04)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### ⚠ BREAKING CHANGES
|
|
25
|
+
|
|
26
|
+
* major update
|
|
5
27
|
|
|
6
28
|
### Features
|
|
7
29
|
|
|
8
|
-
*
|
|
30
|
+
* major update ([3c1a191](https://www.github.com/7urkm3n/pcloud/commit/3c1a1914606391739f08e29c264528ba3d02d112))
|
|
9
31
|
|
|
32
|
+
## 0.1.0 (2021-08-19)
|
|
33
|
+
|
|
34
|
+
### Features
|
|
35
|
+
|
|
36
|
+
- version 0.1.0 ([bafbe4b](https://www.github.com/7urkm3n/pcloud/commit/bafbe4b1d0301eb99446c703176eb35d6dc41336))
|
|
10
37
|
|
|
11
38
|
### Bug Fixes
|
|
12
39
|
|
|
13
|
-
|
|
14
|
-
|
|
40
|
+
- fixing workflow ([858cab4](https://www.github.com/7urkm3n/pcloud/commit/858cab495be548013c3e61756e626ce17cd38db3))
|
|
41
|
+
- workflows works, testing version auto bump ([9de8276](https://www.github.com/7urkm3n/pcloud/commit/9de82767c31c1ae003e268910b23108bba4f2e8c))
|
|
42
|
+
|
|
43
|
+
#### v0.0.4
|
|
44
|
+
|
|
45
|
+
##### Updates
|
|
46
|
+
|
|
47
|
+
- Minor changes
|
|
48
|
+
- Upload and Download added and avilable now
|
|
49
|
+
- Post method is avilable now.
|
|
50
|
+
- Upload/Download async version is on work.
|
|
51
|
+
|
|
52
|
+
#### v0.0.3
|
|
53
|
+
|
|
54
|
+
##### Updates
|
|
55
|
+
|
|
56
|
+
- Minor updates
|
|
57
|
+
- Upload and Download added - needs maintain
|
|
58
|
+
- Post method fixed and added back
|
|
59
|
+
|
|
60
|
+
#### v0.0.2
|
|
61
|
+
|
|
62
|
+
##### Updates
|
|
63
|
+
|
|
64
|
+
- Minor updates
|
|
65
|
+
- Test files added
|
|
66
|
+
- Removed `Post` method temporarily
|
|
67
|
+
|
|
68
|
+
#### v0.0.1
|
|
69
|
+
|
|
70
|
+
##### Publish
|
|
71
|
+
|
|
72
|
+
- Available get Method
|
|
73
|
+
- Incoming {Upload|Download} files
|
data/README.md
CHANGED
|
@@ -2,25 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
This Gem provides a Ruby interface to [Pcloud.com](https://docs.pcloud.com).
|
|
4
4
|
|
|
5
|
-
[](https://github.com/7urkm3n/pcloud/actions?query=workflow%3Arelease) [](https://rubygems.org/gems/pcloud) [](https://badge.fury.io/rb/pcloud)
|
|
6
6
|
|
|
7
7
|
<!-- [](https://rubygems.org/gems/pcloud) -->
|
|
8
8
|
|
|
9
|
+
##### Want to contribute? [Doc Link](https://github.com/7urkm3n/pcloud/CONTRIBUTE.md)
|
|
10
|
+
|
|
9
11
|
## Installation and Configuration
|
|
10
12
|
|
|
11
13
|
Add `pcloud` to your Gemfile, and then run `bundle install`
|
|
12
14
|
|
|
13
|
-
```
|
|
15
|
+
```ruby
|
|
14
16
|
gem 'pcloud'
|
|
15
17
|
```
|
|
16
18
|
|
|
17
19
|
or install via gem
|
|
18
20
|
|
|
19
|
-
```
|
|
21
|
+
```bash
|
|
20
22
|
gem install pcloud
|
|
21
23
|
```
|
|
22
24
|
|
|
23
25
|
###### Rails
|
|
26
|
+
|
|
24
27
|
to generate `Rails` initializer file
|
|
25
28
|
|
|
26
29
|
```bash
|
|
@@ -35,87 +38,109 @@ config/initializers/pcloud.rb
|
|
|
35
38
|
|
|
36
39
|
### Instantiating a client
|
|
37
40
|
|
|
38
|
-
```
|
|
41
|
+
```ruby
|
|
39
42
|
require 'pcloud'
|
|
40
43
|
|
|
41
44
|
pcloud = Pcloud::Client.new(
|
|
42
45
|
username: 'email',
|
|
43
46
|
password: 'password',
|
|
44
|
-
)
|
|
45
|
-
```
|
|
47
|
+
).authenticate
|
|
46
48
|
|
|
49
|
+
pcloud.get("listfolder", folderid: 0)
|
|
50
|
+
```
|
|
47
51
|
|
|
48
52
|
### Global configuration
|
|
49
53
|
|
|
50
54
|
The library can also be configured globally on the `Pcloud` class.
|
|
51
55
|
|
|
52
|
-
```
|
|
56
|
+
```ruby
|
|
53
57
|
Pcloud.username = 'email'
|
|
54
58
|
Pcloud.password = 'password'
|
|
59
|
+
Pcloud.authenticate
|
|
60
|
+
|
|
61
|
+
Pcloud.get("listfolder", folderid: 0)
|
|
55
62
|
```
|
|
56
63
|
|
|
57
|
-
|
|
64
|
+
### Logging
|
|
58
65
|
|
|
59
66
|
By default errors are logged in STDOUT level, also `Rails.logger` available.
|
|
60
67
|
|
|
61
|
-
```
|
|
68
|
+
```ruby
|
|
62
69
|
Pcloud.logger = Rails.logger
|
|
63
|
-
```
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Working with methods
|
|
64
73
|
|
|
65
|
-
|
|
74
|
+
Available methods:
|
|
66
75
|
|
|
67
|
-
|
|
76
|
+
- <b> Get </b>
|
|
77
|
+
- <b> Post </b>
|
|
78
|
+
- <b> File handling </b>
|
|
68
79
|
|
|
69
|
-
|
|
80
|
+
###### addition!
|
|
70
81
|
|
|
82
|
+
> Some apis need to be `raw` format, just add `raw` in params. `params: {fileid: ..987, raw: true}`
|
|
83
|
+
> For example `gettextfile` https://docs.pcloud.com/methods/streaming/gettextfile.html
|
|
71
84
|
|
|
72
|
-
#### Get
|
|
85
|
+
#### Get method
|
|
73
86
|
|
|
74
|
-
```
|
|
87
|
+
```ruby
|
|
75
88
|
Pcloud.get("getip")
|
|
76
89
|
Pcloud.get("getdigest")
|
|
77
90
|
|
|
78
91
|
# with params
|
|
79
|
-
|
|
92
|
+
params = {folderid: 0}
|
|
93
|
+
Pcloud.get("listfolder", params)
|
|
80
94
|
```
|
|
81
|
-
<!-- Pcloud.get("createfolder", folderid: 0, name: "new folder name", ...) -->
|
|
82
|
-
|
|
83
|
-
#### Post methods
|
|
84
95
|
|
|
85
|
-
|
|
86
|
-
# if any of pcloud endpoints requires payload on POST request, please create an issue.
|
|
96
|
+
#### Post method
|
|
87
97
|
|
|
88
|
-
|
|
89
|
-
|
|
98
|
+
```ruby
|
|
99
|
+
payload = {}
|
|
100
|
+
params = {folderid: 0, name: "new folder name"}
|
|
101
|
+
Pcloud.post("createfolder", payload, params)
|
|
90
102
|
```
|
|
91
103
|
|
|
92
|
-
|
|
104
|
+
### [File methods](https://docs.pcloud.com/methods/file/)
|
|
105
|
+
|
|
93
106
|
##### [Download File](https://docs.pcloud.com/methods/file/downloadfile.html)
|
|
94
107
|
|
|
95
|
-
```
|
|
96
|
-
#
|
|
108
|
+
```ruby
|
|
109
|
+
# optional params: filename, destination
|
|
110
|
+
# destination by default current_path
|
|
111
|
+
Pcloud.file.download({fileid: 987532135})
|
|
97
112
|
|
|
98
113
|
Pcloud.file.download(
|
|
99
|
-
|
|
100
|
-
destination: "#{Dir.pwd}/Downloads",
|
|
101
|
-
filename: "hehe.txt"
|
|
114
|
+
fileid: 987532135, #required
|
|
115
|
+
destination: "#{Dir.pwd}/Downloads", #optional
|
|
116
|
+
filename: "hehe.txt" #optional
|
|
102
117
|
)
|
|
103
118
|
```
|
|
104
119
|
|
|
105
|
-
##### [
|
|
120
|
+
##### [Download Folder](#)
|
|
106
121
|
|
|
107
|
-
```
|
|
108
|
-
#
|
|
109
|
-
#
|
|
122
|
+
```ruby
|
|
123
|
+
# optional params: filename, destination
|
|
124
|
+
# destination by default current_path
|
|
125
|
+
Pcloud.file.download_folder({folderid: 123456789})
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
##### [Upload File](https://docs.pcloud.com/methods/file/uploadfile.html)
|
|
110
129
|
|
|
111
|
-
|
|
130
|
+
```ruby
|
|
112
131
|
params = {
|
|
113
|
-
folderid: 0,
|
|
114
|
-
|
|
132
|
+
folderid: 0, #required
|
|
133
|
+
nopartial: 1,
|
|
115
134
|
}
|
|
116
|
-
|
|
135
|
+
# multiple uploads
|
|
136
|
+
file1 = File.open("./Rakefile")
|
|
137
|
+
file2 = File.open("./README.md")
|
|
138
|
+
file3 = File.open("./Gemfile")
|
|
139
|
+
payload = { files: [file1,file2,file3] }
|
|
140
|
+
|
|
117
141
|
Pcloud.file.upload(params, payload)
|
|
118
142
|
```
|
|
119
143
|
|
|
120
144
|
### Supported Ruby versions
|
|
145
|
+
|
|
121
146
|
2.2+
|
data/lib/pcloud/client.rb
CHANGED
|
@@ -1,51 +1,64 @@
|
|
|
1
1
|
require 'json'
|
|
2
2
|
require 'rest-client'
|
|
3
|
+
require_relative './request'
|
|
4
|
+
require_relative "./files/file_handler"
|
|
3
5
|
|
|
4
6
|
module Pcloud
|
|
5
7
|
class Client
|
|
6
8
|
attr_writer :username, :password
|
|
9
|
+
attr_accessor :auth_token
|
|
7
10
|
|
|
8
11
|
def initialize(options = {})
|
|
9
12
|
@username, @password = options.values_at(:username, :password)
|
|
13
|
+
@auth_token = options[:auth_token]
|
|
10
14
|
end
|
|
11
15
|
|
|
12
|
-
def get(path, params
|
|
13
|
-
|
|
16
|
+
def get(path, params={})
|
|
17
|
+
request(:get, path, params)
|
|
14
18
|
end
|
|
15
19
|
|
|
16
|
-
def post(path, params
|
|
17
|
-
|
|
20
|
+
def post(path, payload={}, params={})
|
|
21
|
+
request(:post, path, params, payload)
|
|
18
22
|
end
|
|
19
23
|
|
|
20
24
|
def file
|
|
21
|
-
|
|
25
|
+
@file ||= FileHandler.new(self)
|
|
22
26
|
end
|
|
23
27
|
|
|
24
28
|
def http_client
|
|
25
|
-
@
|
|
29
|
+
@http_client ||= RestClient::Resource.new(BASE_URL)
|
|
26
30
|
end
|
|
27
31
|
|
|
28
|
-
def
|
|
29
|
-
@
|
|
30
|
-
|
|
31
|
-
raise ConfigurationError, :password unless @password
|
|
32
|
-
digest = JSON.parse(RestClient.get("#{BASE_URL}/getdigest"))['digest']
|
|
33
|
-
passworddigest = digest_data(@password + digest_data( @username.downcase ) + digest)
|
|
34
|
-
JSON.parse(
|
|
35
|
-
RestClient.get("#{BASE_URL}/userinfo?getauth=1&logout=1",
|
|
36
|
-
{params: {username: @username, digest: digest, passworddigest: passworddigest}})
|
|
37
|
-
)['auth']
|
|
38
|
-
end
|
|
32
|
+
def authenticate(options = {})
|
|
33
|
+
@auth_token = authorize(options)['auth']
|
|
34
|
+
self
|
|
39
35
|
end
|
|
40
36
|
|
|
41
|
-
|
|
37
|
+
private
|
|
42
38
|
|
|
43
|
-
def
|
|
44
|
-
|
|
39
|
+
def request(verb, path, params, payload = {})
|
|
40
|
+
Pcloud::Request.call(self, verb, path, params, payload)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def authorize(options)
|
|
44
|
+
raise ConfigurationError, :username unless @username
|
|
45
|
+
raise ConfigurationError, :password unless @password
|
|
46
|
+
digest = JSON.parse(RestClient.get("#{BASE_URL}/getdigest"))['digest']
|
|
47
|
+
passworddigest = digest_data(@password + digest_data( @username.downcase ) + digest)
|
|
48
|
+
[:username, :digest, :passworddigest, :password].each { |k| options.delete(k) }
|
|
49
|
+
params = {params: {
|
|
50
|
+
username: @username,
|
|
51
|
+
digest: digest,
|
|
52
|
+
passworddigest: passworddigest,
|
|
53
|
+
device: "pcloud-ruby",
|
|
54
|
+
getauth: 1
|
|
55
|
+
}.merge!(options)}
|
|
56
|
+
JSON.parse(RestClient.get("#{BASE_URL}/userinfo", params)) #['auth']
|
|
45
57
|
end
|
|
46
58
|
|
|
47
59
|
def digest_data text
|
|
48
60
|
Digest::SHA1.hexdigest(text)
|
|
49
61
|
end
|
|
62
|
+
|
|
50
63
|
end
|
|
51
64
|
end
|
|
@@ -1,35 +1,51 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'open-uri'
|
|
2
|
+
require 'zip'
|
|
2
3
|
|
|
3
4
|
module Pcloud
|
|
4
5
|
class FileHandler
|
|
6
|
+
|
|
5
7
|
def initialize(client)
|
|
6
8
|
@client = client
|
|
7
9
|
end
|
|
8
10
|
|
|
9
11
|
def upload(params, payload)
|
|
10
|
-
|
|
12
|
+
request(:post, 'uploadfile', params, payload)
|
|
11
13
|
end
|
|
12
14
|
|
|
13
15
|
def download(params)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
# destination = params[:destination] ? params[:destination] : '.'
|
|
17
|
+
# data = request(:get, "getfilelink", {fileid: params[:fileid], forcedownload: 1})
|
|
18
|
+
# url = "https://#{data[:hosts][0]+data[:path]}"
|
|
19
|
+
# IO.copy_stream(URI.open(url), "#{destination}/#{url.split("/").last}")
|
|
20
|
+
# File.write("#{destination}/#{url.split("/").last}", URI.open(url).read)
|
|
21
|
+
|
|
22
|
+
destination = params[:destination] || '.'
|
|
23
|
+
filename = params[:filename] || nil
|
|
24
|
+
if !filename
|
|
25
|
+
stat = request(:get, "stat", {fileid: params[:fileid]})
|
|
26
|
+
filename = stat[:metadata][:name]
|
|
19
27
|
end
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
File.write("#{destination}/#{filename}", request(:get, "gettextfile", {fileid: params[:fileid], raw: true}))
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def download_folder(params)
|
|
32
|
+
data = request(:get, "listfolder", {folderid: params[:folderid]})
|
|
33
|
+
destination = params[:destination] || '.'
|
|
34
|
+
folder_name = params[:filename] || data[:metadata][:name] << ".zip"
|
|
35
|
+
stringio = Zip::OutputStream::write_buffer do |zio|
|
|
36
|
+
data[:metadata][:contents].each do |content|
|
|
37
|
+
zio.put_next_entry(content[:name])
|
|
38
|
+
zio.write(request(:get, "gettextfile", {fileid: content[:fileid], raw: true}))
|
|
39
|
+
end
|
|
24
40
|
end
|
|
25
|
-
|
|
41
|
+
stringio.rewind #reposition buffer pointer to the beginning
|
|
42
|
+
File.new("#{destination}/#{folder_name}","wb").write(stringio.sysread) #write buffer to zipfile
|
|
26
43
|
end
|
|
27
44
|
|
|
28
|
-
|
|
45
|
+
private
|
|
29
46
|
|
|
30
|
-
def
|
|
31
|
-
Request.
|
|
47
|
+
def request(verb, path, params, payload = {})
|
|
48
|
+
Pcloud::Request.call(@client, verb, path, params, payload)
|
|
32
49
|
end
|
|
33
|
-
|
|
34
50
|
end
|
|
35
51
|
end
|
data/lib/pcloud/request.rb
CHANGED
|
@@ -1,46 +1,43 @@
|
|
|
1
1
|
module Pcloud
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
handle_response(e.http_code, e.message)
|
|
2
|
+
module Request
|
|
3
|
+
class << self
|
|
4
|
+
def call(client, verb, path, params, payload={})
|
|
5
|
+
params = {params: {}.merge!(params, {auth: client.auth_token})}
|
|
6
|
+
http = client.http_client
|
|
7
|
+
res = case verb
|
|
8
|
+
when :get
|
|
9
|
+
begin
|
|
10
|
+
http[path].get(params)
|
|
11
|
+
rescue => e
|
|
12
|
+
handle_response(e.http_code, e.message)
|
|
13
|
+
end
|
|
14
|
+
when :post
|
|
15
|
+
begin
|
|
16
|
+
http[path].post(payload, params)
|
|
17
|
+
rescue => e
|
|
18
|
+
handle_response(e.http_code, e.message)
|
|
19
|
+
end
|
|
20
|
+
else
|
|
21
|
+
raise "Unsupported verb (get and post available): #{verb}"
|
|
23
22
|
end
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
JSON.parse(res.body, { symbolize_names: true })
|
|
28
|
-
end
|
|
23
|
+
return res.body if params[:params][:raw]
|
|
24
|
+
JSON.parse(res.body, { symbolize_names: true })
|
|
25
|
+
end
|
|
29
26
|
|
|
30
27
|
private
|
|
31
28
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
def handle_response(status_code, body)
|
|
30
|
+
case status_code
|
|
31
|
+
when 400
|
|
32
|
+
raise HTTPError.new(:HTTPError, body)
|
|
33
|
+
when 401
|
|
34
|
+
raise AuthenticationError, body
|
|
35
|
+
when 404
|
|
36
|
+
raise HTTPError.new(:HTTPError, body)
|
|
37
|
+
else
|
|
38
|
+
raise Error, "Unknown error (status code #{status_code}): #{body}"
|
|
39
|
+
end
|
|
42
40
|
end
|
|
43
41
|
end
|
|
44
|
-
|
|
45
42
|
end
|
|
46
43
|
end
|
data/lib/pcloud/version.rb
CHANGED
data/lib/pcloud.rb
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
autoload 'Logger', 'logger'
|
|
2
2
|
require 'forwardable'
|
|
3
|
-
|
|
3
|
+
require_relative 'pcloud/client'
|
|
4
4
|
|
|
5
5
|
module Pcloud
|
|
6
6
|
BASE_URL = 'https://api.pcloud.com'.freeze
|
|
7
7
|
|
|
8
8
|
class << self
|
|
9
9
|
extend Forwardable
|
|
10
|
-
def_delegators :
|
|
11
|
-
def_delegators :
|
|
12
|
-
def_delegators :default_client, :file
|
|
10
|
+
def_delegators :client, :auth_token=, :username=, :password=
|
|
11
|
+
def_delegators :client, :get, :post, :file, :authenticate
|
|
13
12
|
|
|
14
13
|
attr_writer :logger
|
|
15
14
|
|
|
15
|
+
def client
|
|
16
|
+
@client ||= Pcloud::Client.new
|
|
17
|
+
end
|
|
18
|
+
|
|
16
19
|
def logger
|
|
17
20
|
@logger ||= begin
|
|
18
21
|
log = Logger.new($stdout)
|
|
@@ -21,13 +24,8 @@ module Pcloud
|
|
|
21
24
|
end
|
|
22
25
|
end
|
|
23
26
|
|
|
24
|
-
def default_client
|
|
25
|
-
@default_client ||= Pcloud::Client.new
|
|
26
|
-
end
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
require 'pcloud/resource'
|
|
33
|
-
require 'pcloud/exceptions'
|
|
30
|
+
require_relative './pcloud/version'
|
|
31
|
+
require_relative './pcloud/exceptions'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pcloud
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rovshen Gurdov
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-09-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rest-client
|
|
@@ -44,14 +44,14 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 1.2
|
|
47
|
+
version: 1.3.2
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 1.2
|
|
54
|
+
version: 1.3.2
|
|
55
55
|
description: Pcloud is cloud storage upload/download/share from pcloud.com. Please,
|
|
56
56
|
check available methods in Github Doc...
|
|
57
57
|
email:
|
|
@@ -70,7 +70,6 @@ files:
|
|
|
70
70
|
- lib/pcloud/exceptions.rb
|
|
71
71
|
- lib/pcloud/files/file_handler.rb
|
|
72
72
|
- lib/pcloud/request.rb
|
|
73
|
-
- lib/pcloud/resource.rb
|
|
74
73
|
- lib/pcloud/version.rb
|
|
75
74
|
homepage: https://github.com/7urkm3n/pcloud
|
|
76
75
|
licenses:
|
data/lib/pcloud/resource.rb
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
require "pcloud/files/file_handler"
|
|
2
|
-
|
|
3
|
-
module Pcloud
|
|
4
|
-
class Resource
|
|
5
|
-
|
|
6
|
-
def initialize(client, path = "")
|
|
7
|
-
@client, @path = client, path
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def get(params)
|
|
11
|
-
create_request(:get, params).call
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def post(params, payload = {})
|
|
15
|
-
create_request(:post, params, payload).call
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def file
|
|
19
|
-
@file ||= FileHandler.new(@client)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
private
|
|
23
|
-
|
|
24
|
-
def create_request(verb, params, payload = {})
|
|
25
|
-
Request.new(@client, verb, @path, params, payload)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
end
|
|
29
|
-
end
|