deta 0.1.1 → 0.1.2
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 +10 -1
- data/Gemfile.lock +5 -1
- data/README.md +35 -1
- data/deta.gemspec +1 -0
- data/lib/deta/resource.rb +4 -0
- data/lib/deta/resources/drive.rb +43 -0
- data/lib/deta/version.rb +1 -1
- data/lib/deta.rb +1 -0
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f05ca2927027937bee800ea25cc34d867dc8099a9962120cfdb82f7282ee2107
|
4
|
+
data.tar.gz: 8033e175e38944a8b9533ba5e15ea5a5dd19f6e68e5bb6596c91df84be052125
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '091ea79e1bfbdb3b32a41ac7f7feb76f5b0b75584d8fe2340e6946ca8d87ce26aa7de9cbaad176d314239bdedadbdc1e16911a6d3b0f1dc0195e01b1e0e46178'
|
7
|
+
data.tar.gz: 2159e4b1f940e5de4a72f47187db05d80d4ea4add6a2aedb7929a2499ee21f10add8359d47a07ad1fe61a190186d433176872a28d5e137ea3d32cbc1278736a4
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
deta (0.1.
|
4
|
+
deta (0.1.2)
|
5
5
|
faraday (~> 2.1.0)
|
6
|
+
faraday-multipart (~> 1.0.3)
|
6
7
|
|
7
8
|
GEM
|
8
9
|
remote: https://rubygems.org/
|
@@ -10,7 +11,10 @@ GEM
|
|
10
11
|
faraday (2.1.0)
|
11
12
|
faraday-net_http (~> 2.0)
|
12
13
|
ruby2_keywords (>= 0.0.4)
|
14
|
+
faraday-multipart (1.0.3)
|
15
|
+
multipart-post (>= 1.2, < 3)
|
13
16
|
faraday-net_http (2.0.1)
|
17
|
+
multipart-post (2.1.1)
|
14
18
|
rake (13.0.6)
|
15
19
|
ruby2_keywords (0.0.5)
|
16
20
|
|
data/README.md
CHANGED
@@ -91,7 +91,41 @@ detabase.fetch(query: [{hometown: "Boulder"}], limit: 1, last: "8523bdyxlqww")
|
|
91
91
|
|
92
92
|
## Drive
|
93
93
|
|
94
|
-
|
94
|
+
```ruby
|
95
|
+
detadrive = client.drive("drive_name")
|
96
|
+
```
|
97
|
+
|
98
|
+
### Put File
|
99
|
+
|
100
|
+
```ruby
|
101
|
+
detadrive.put("test.jpg", path: "./test.jpg", content_type: "image/jpeg")
|
102
|
+
|
103
|
+
detadrive.put("test.txt", data: "hello")
|
104
|
+
|
105
|
+
detadrive.put("test.json", data: {a: 1}.to_json)
|
106
|
+
```
|
107
|
+
|
108
|
+
### List Files
|
109
|
+
|
110
|
+
```ruby
|
111
|
+
detadrive.list(limit: 1, prefix: "avatar")
|
112
|
+
```
|
113
|
+
|
114
|
+
### Get File
|
115
|
+
|
116
|
+
```ruby
|
117
|
+
detadrive.get("image0.jpg")
|
118
|
+
```
|
119
|
+
|
120
|
+
### Delete Files
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
# single delete
|
124
|
+
detadrive.delete("image0.jpg")
|
125
|
+
|
126
|
+
# multi delete
|
127
|
+
detadrive.delete(["image1.jpg", "image2.jpg"])
|
128
|
+
```
|
95
129
|
|
96
130
|
## Development
|
97
131
|
|
data/deta.gemspec
CHANGED
@@ -37,4 +37,5 @@ Gem::Specification.new do |spec|
|
|
37
37
|
# For more information and examples about making a new gem, check out our
|
38
38
|
# guide at: https://bundler.io/guides/creating_gem.html
|
39
39
|
spec.add_dependency "faraday", "~> 2.1.0"
|
40
|
+
spec.add_dependency "faraday-multipart", "~> 1.0.3"
|
40
41
|
end
|
data/lib/deta/resource.rb
CHANGED
@@ -29,6 +29,10 @@ module Deta
|
|
29
29
|
handle_response client.connection.delete(url, params, headers)
|
30
30
|
end
|
31
31
|
|
32
|
+
def delete_request_with_body(url, body:, headers: {})
|
33
|
+
handle_response client.connection.run_request(:delete, url, body, headers)
|
34
|
+
end
|
35
|
+
|
32
36
|
def handle_response(response)
|
33
37
|
case response.status
|
34
38
|
when 400
|
data/lib/deta/resources/drive.rb
CHANGED
@@ -2,5 +2,48 @@ module Deta
|
|
2
2
|
class DriveResource < Resource
|
3
3
|
@@api_url = "https://drive.deta.sh/v1"
|
4
4
|
|
5
|
+
def put(name = nil, path: nil, data: nil, content_type: "application/octet-stream")
|
6
|
+
payload = nil
|
7
|
+
headers = {"Content-Type": content_type}
|
8
|
+
|
9
|
+
if path
|
10
|
+
payload = Faraday::Multipart::FilePart.new(path, content_type, name)
|
11
|
+
headers["Content-Length"] = payload.size.to_s
|
12
|
+
end
|
13
|
+
|
14
|
+
if data
|
15
|
+
headers["Content-Length"] = data.size.to_s
|
16
|
+
payload = data
|
17
|
+
end
|
18
|
+
|
19
|
+
DriveObject.new post_request([@@api_url, client.project_id, resource_name, "files?name=#{name}"].join("/"), body: payload, headers: headers).body
|
20
|
+
end
|
21
|
+
|
22
|
+
def get(name = nil)
|
23
|
+
params = {}
|
24
|
+
params[:name] = name if name
|
25
|
+
|
26
|
+
get_request([@@api_url, client.project_id, resource_name, "files", "download"].join("/"), params: params).body
|
27
|
+
end
|
28
|
+
|
29
|
+
def list(limit: nil, prefix: nil, last: nil)
|
30
|
+
params = {}
|
31
|
+
params[:limit] = limit if limit
|
32
|
+
params[:prefix] = prefix if prefix
|
33
|
+
params[:last] = last if last
|
34
|
+
|
35
|
+
DriveObject.new get_request([@@api_url, client.project_id, resource_name, "files"].join("/"), params: params).body
|
36
|
+
end
|
37
|
+
|
38
|
+
def delete(attributes)
|
39
|
+
params = {}
|
40
|
+
if attributes.is_a?(Array)
|
41
|
+
params[:names] = attributes
|
42
|
+
else
|
43
|
+
params[:names] = [attributes]
|
44
|
+
end
|
45
|
+
|
46
|
+
DriveObject.new delete_request_with_body([@@api_url, client.project_id, resource_name, "files"].join("/"), body: params).body
|
47
|
+
end
|
5
48
|
end
|
6
49
|
end
|
data/lib/deta/version.rb
CHANGED
data/lib/deta.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dainel Vera
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.1.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faraday-multipart
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.3
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.0.3
|
27
41
|
description: 'Ruby bindings for deta.sh. deta APIs can be found here: https://docs.deta.sh/docs/home'
|
28
42
|
email:
|
29
43
|
- arubinofaux@gmail.com
|