dropbox_api 0.1.9 → 0.1.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dropbox_api.rb +7 -5
- data/lib/dropbox_api/client.rb +4 -0
- data/lib/dropbox_api/connection_builder.rb +9 -5
- data/lib/dropbox_api/endpoints/files/get_metadata.rb +3 -0
- data/lib/dropbox_api/metadata/media_info.rb +17 -20
- data/lib/dropbox_api/metadata/media_metadata.rb +38 -0
- data/lib/dropbox_api/middleware/stack.rb +28 -0
- data/lib/dropbox_api/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2801013459cdb9c5a71f72f07e5967cc09452625
|
4
|
+
data.tar.gz: d99d873e573f87879f2b0acb8f215eda78ba5182
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c968a2f558de87f21e1428786ed34c021ffe092df8975f7904c93013a27a57a36f2f8bb0bc6e291cdaf8d7a025c7cd9b82637308ea49da88e1701b42ec0618f4
|
7
|
+
data.tar.gz: a7659b676c8df3cd23df8679723d2716cd21bfd0280a3f1de6480a8c46fd769bc8d75d8adf7c6f9074dfc34caba3baba14563fe1dd07c9adf02d145872cfad72
|
data/lib/dropbox_api.rb
CHANGED
@@ -7,6 +7,7 @@ require 'faraday'
|
|
7
7
|
require 'dropbox_api/authenticator'
|
8
8
|
|
9
9
|
require 'dropbox_api/middleware/decode_result'
|
10
|
+
require 'dropbox_api/middleware/stack'
|
10
11
|
|
11
12
|
require 'dropbox_api/metadata/field'
|
12
13
|
require 'dropbox_api/metadata/base'
|
@@ -15,11 +16,12 @@ require 'dropbox_api/metadata/symbol'
|
|
15
16
|
require 'dropbox_api/metadata/access_level'
|
16
17
|
require 'dropbox_api/metadata/member_action'
|
17
18
|
|
18
|
-
require 'dropbox_api/metadata/dimensions
|
19
|
-
require 'dropbox_api/metadata/location
|
20
|
-
require 'dropbox_api/metadata/photo_metadata
|
21
|
-
require 'dropbox_api/metadata/video_metadata
|
22
|
-
require 'dropbox_api/metadata/media_info
|
19
|
+
require 'dropbox_api/metadata/dimensions'
|
20
|
+
require 'dropbox_api/metadata/location'
|
21
|
+
require 'dropbox_api/metadata/photo_metadata'
|
22
|
+
require 'dropbox_api/metadata/video_metadata'
|
23
|
+
require 'dropbox_api/metadata/media_info'
|
24
|
+
require 'dropbox_api/metadata/media_metadata'
|
23
25
|
require 'dropbox_api/metadata/member'
|
24
26
|
require 'dropbox_api/metadata/add_member'
|
25
27
|
require 'dropbox_api/metadata/name'
|
data/lib/dropbox_api/client.rb
CHANGED
@@ -4,13 +4,17 @@ module DropboxApi
|
|
4
4
|
@oauth_bearer = oauth_bearer
|
5
5
|
end
|
6
6
|
|
7
|
-
def
|
8
|
-
|
9
|
-
|
7
|
+
def middleware
|
8
|
+
@middleware ||= MiddleWare::Stack.new
|
9
|
+
end
|
10
10
|
|
11
|
-
|
11
|
+
def build(url)
|
12
|
+
Faraday.new(url) do |connection|
|
13
|
+
middleware.apply(connection) do
|
14
|
+
connection.authorization :Bearer, @oauth_bearer
|
12
15
|
|
13
|
-
|
16
|
+
yield connection
|
17
|
+
end
|
14
18
|
end
|
15
19
|
end
|
16
20
|
end
|
@@ -11,6 +11,9 @@ module DropboxApi::Endpoints::Files
|
|
11
11
|
#
|
12
12
|
# Note: Metadata for the root folder is unsupported.
|
13
13
|
#
|
14
|
+
# If you request the `media_info` attribute, note that it could be set to
|
15
|
+
# `:pending` or `nil`.
|
16
|
+
#
|
14
17
|
# @param path [String] The path of a file or folder on Dropbox.
|
15
18
|
# @option include_media_info [Boolean] If `true`, FileMetadata.media_info
|
16
19
|
# is set for photo and video. The default for this field is `false`.
|
@@ -2,37 +2,34 @@ module DropboxApi::Metadata
|
|
2
2
|
# Example of a serialized {MediaInfo} object:
|
3
3
|
# {
|
4
4
|
# ".tag": "metadata",
|
5
|
-
# "metadata": {
|
6
|
-
#
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# },
|
11
|
-
# "location": {
|
12
|
-
# "latitude": 10.123456,
|
13
|
-
# "longitude": 5.123456
|
14
|
-
# }
|
15
|
-
# "time_taken": "2016-09-04T17:00:27Z",
|
16
|
-
# "duration": 6000
|
17
|
-
# }
|
5
|
+
# "metadata": {...}
|
6
|
+
# }
|
7
|
+
# or:
|
8
|
+
# {
|
9
|
+
# ".tag": "pending"
|
18
10
|
# }
|
19
11
|
class MediaInfo < Base
|
20
12
|
class << self
|
21
13
|
def new(data)
|
22
|
-
|
23
|
-
|
14
|
+
klass = class_for(data['.tag'].to_sym)
|
15
|
+
|
16
|
+
if klass == :pending
|
17
|
+
:pending
|
18
|
+
else
|
19
|
+
klass.new(data['metadata'])
|
20
|
+
end
|
24
21
|
end
|
25
22
|
|
26
23
|
private
|
27
24
|
|
28
25
|
def class_for(tag)
|
29
26
|
case tag
|
30
|
-
when :
|
31
|
-
|
32
|
-
when :
|
33
|
-
DropboxApi::Metadata::
|
27
|
+
when :pending
|
28
|
+
:pending
|
29
|
+
when :metadata
|
30
|
+
DropboxApi::Metadata::MediaMetadata
|
34
31
|
else
|
35
|
-
raise ArgumentError, "Unable to build individual result with `#{tag}`"
|
32
|
+
raise ArgumentError, "Unable to build individual result with `#{tag.inspect}`"
|
36
33
|
end
|
37
34
|
end
|
38
35
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module DropboxApi::Metadata
|
2
|
+
# Example of a serialized {MediaInfo} object:
|
3
|
+
# {
|
4
|
+
# ".tag": "video",
|
5
|
+
# "dimensions": {
|
6
|
+
# "height": 1500,
|
7
|
+
# "width": 1500
|
8
|
+
# },
|
9
|
+
# "location": {
|
10
|
+
# "latitude": 10.123456,
|
11
|
+
# "longitude": 5.123456
|
12
|
+
# }
|
13
|
+
# "time_taken": "2016-09-04T17:00:27Z",
|
14
|
+
# "duration": 6000
|
15
|
+
# }
|
16
|
+
# }
|
17
|
+
class MediaMetadata < Base
|
18
|
+
class << self
|
19
|
+
def new(data)
|
20
|
+
tag = data['.tag']
|
21
|
+
class_for(tag.to_sym).new(data)
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def class_for(tag)
|
27
|
+
case tag
|
28
|
+
when :photo
|
29
|
+
DropboxApi::Metadata::PhotoMetadata
|
30
|
+
when :video
|
31
|
+
DropboxApi::Metadata::VideoMetadata
|
32
|
+
else
|
33
|
+
raise ArgumentError, "Unable to build individual result with `#{tag}`"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module DropboxApi::MiddleWare
|
2
|
+
class Stack
|
3
|
+
def initialize
|
4
|
+
@prependable, @appendable = [], []
|
5
|
+
end
|
6
|
+
|
7
|
+
def prepend(&block)
|
8
|
+
@prependable << block
|
9
|
+
end
|
10
|
+
|
11
|
+
def append(&block)
|
12
|
+
@appendable << block
|
13
|
+
end
|
14
|
+
|
15
|
+
def adapter=(value)
|
16
|
+
@adapter = value
|
17
|
+
end
|
18
|
+
|
19
|
+
def apply(connection)
|
20
|
+
@prependable.each { |block| block.yield(connection) }
|
21
|
+
yield connection
|
22
|
+
@appendable.each { |block| block.yield(connection) }
|
23
|
+
|
24
|
+
# Adapter must be the last middleware configured
|
25
|
+
connection.adapter(@adapter || Faraday.default_adapter)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/dropbox_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dropbox_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesús Burgos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -240,6 +240,7 @@ files:
|
|
240
240
|
- lib/dropbox_api/metadata/link_permissions.rb
|
241
241
|
- lib/dropbox_api/metadata/location.rb
|
242
242
|
- lib/dropbox_api/metadata/media_info.rb
|
243
|
+
- lib/dropbox_api/metadata/media_metadata.rb
|
243
244
|
- lib/dropbox_api/metadata/member.rb
|
244
245
|
- lib/dropbox_api/metadata/member_action.rb
|
245
246
|
- lib/dropbox_api/metadata/member_action_list.rb
|
@@ -261,6 +262,7 @@ files:
|
|
261
262
|
- lib/dropbox_api/metadata/video_metadata.rb
|
262
263
|
- lib/dropbox_api/metadata/write_mode.rb
|
263
264
|
- lib/dropbox_api/middleware/decode_result.rb
|
265
|
+
- lib/dropbox_api/middleware/stack.rb
|
264
266
|
- lib/dropbox_api/result_builder.rb
|
265
267
|
- lib/dropbox_api/results/add_file_member_result_list.rb
|
266
268
|
- lib/dropbox_api/results/base.rb
|