dropbox_api 0.1.9 → 0.1.10
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/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
|