dropbox_api 0.1.8 → 0.1.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a62250d1f36ff29c61f2afcd4090bf14413e96f1
4
- data.tar.gz: 5e7ada2b458307e520178183156239dc3a65647f
3
+ metadata.gz: 0a9b3e0abcd48bf5bc5749072c91438d30958141
4
+ data.tar.gz: 92d7370854daa2516b81956e72d855ab5014f59d
5
5
  SHA512:
6
- metadata.gz: 7b092abd284615e06589ebecadb8858f2cbb5b8bc0507a42a01b477fe90d07d6be89550b31ff30f5b626622c1ea12cf868d70ad1743d89e0ef45a23cfbc8fd1d
7
- data.tar.gz: dfd330a56e1773929a6121947ef48f29974b134daf112fb7195cb74e3846a9c808066e4e436a3483f737c43c145fc3dc4e3ac52673a11201984da4f33aa504b3
6
+ metadata.gz: a9c558222a39bff0a3a54e22d3d26b27f8b93b7fe64798b0ca07f44495fa9a834e4d88ee88051bacebf688a73326fb4d3f9a848b31144b461e3ebcea81949018
7
+ data.tar.gz: 4d04b472af2aa318f5538d853c71a02e4fc5a1be844ae37c7da4d614ba5d1235c54c0643a18ebdeea623a98274a1d9fbb5b7f00c9d962d83fb4b454ab875895c
data/TODO.md CHANGED
@@ -1,55 +1,11 @@
1
- # TODO now!
2
-
3
- - Rebuild spec fixtures for `list_folder`.
4
- - Add documentation on how to rebuild spec fixtures.
5
- - Chunked downloads, issue #8.
6
- - Chunked uploads, issue #18.
7
-
8
- # Upcoming
9
-
10
- TOKEN: f0QNQhb3tLAAAAAAAAAACtK5eS9DgRPDzDSLcrIrkbY07buAw-sMRP9tjZeoOP08
11
- Old token: VofXAX8DO1sAAAAAAAAEEyqrmzbYmFVaDQKj48yVUfhyhfOomXiG8emqP1xQGRnJ
12
-
13
- - Create website with comparison with other libraries.
14
- - Implement PermissionDeniedReason
15
- - list_shared_folders
16
- - continue_list_shared_folders
17
- - share_folder
18
- - add_folder_member
19
- - mount_folder
20
- - list_folder_members
21
- - relinquish_folder_membership
22
- - transfer_folder
23
- - get_file_metadata
24
- - get_folder_metadata
25
- - get_shared_link_file
26
- - get_shared_link_metadata
27
-
28
- # Mid-term goals
1
+ # Short term goals
29
2
 
30
3
  - Remove dependency on faraday.
31
4
  - Complete full [API coverage](api_coverage.md).
32
5
 
33
6
  # Further on
34
7
 
8
+ - Improve the API reference page, help here:
9
+ http://gnuu.org/2009/11/18/customizing-yard-templates/
35
10
  - Supporting streams would be great.
36
11
  - Add a layer to handle pagination, use `Enumerable`.
37
-
38
- # Release guide
39
-
40
- Previous checks:
41
- - CI passing?
42
-
43
- Release process:
44
- 1. Bump version in `version.rb`.
45
- 2. Create tag and write release notes in Github.com.
46
- 3. `git fetch`
47
- 4. `gem build dropbox_api.gemspec`
48
- 5. `gem push dropbox_api-version.gem`
49
-
50
- ## Publish doc
51
-
52
- 1. `yardoc`
53
- 2. Change dir to dropbox_api_doc, where branch gh-pages is checked out.
54
- 3. Replace files with the updated ones.
55
- 4. `git commit` & `git push origin gh-pages`.
@@ -14,6 +14,11 @@ module DropboxApi::Endpoints
14
14
  'Dropbox-API-Arg' => JSON.dump(params),
15
15
  'Content-Type' => 'application/octet-stream'
16
16
  }
17
+ if body.respond_to?(:length)
18
+ headers['Content-Length'] = body.length.to_s
19
+ elsif body.respond_to?(:stat)
20
+ headers['Content-Length'] = body.stat.size.to_s
21
+ end
17
22
 
18
23
  return body, headers
19
24
  end
@@ -0,0 +1,6 @@
1
+ module DropboxApi::Metadata
2
+ class Dimensions < Base
3
+ field :height, Integer
4
+ field :width, Integer
5
+ end
6
+ end
@@ -21,6 +21,8 @@ module DropboxApi::Metadata
21
21
  Time.parse(object)
22
22
  elsif @type == Integer
23
23
  object.to_i
24
+ elsif @type == Float
25
+ object.to_f
24
26
  elsif @type == Symbol
25
27
  object[".tag"].to_sym
26
28
  elsif @type == :boolean
@@ -26,6 +26,7 @@ module DropboxApi::Metadata
26
26
  field :rev, String
27
27
  field :size, Integer
28
28
  field :content_hash, String, :optional
29
+ field :media_info, DropboxApi::Metadata::MediaInfo, :optional
29
30
 
30
31
  def to_hash
31
32
  super.merge(".tag" => "file")
@@ -0,0 +1,6 @@
1
+ module DropboxApi::Metadata
2
+ class Location < Base
3
+ field :latitude, Float
4
+ field :longitude, Float
5
+ end
6
+ end
@@ -0,0 +1,40 @@
1
+ module DropboxApi::Metadata
2
+ # Example of a serialized {MediaInfo} object:
3
+ # {
4
+ # ".tag": "metadata",
5
+ # "metadata": {
6
+ # ".tag": "video",
7
+ # "dimensions": {
8
+ # "height": 1500,
9
+ # "width": 1500
10
+ # },
11
+ # "location": {
12
+ # "latitude": 10.123456,
13
+ # "longitude": 5.123456
14
+ # }
15
+ # "time_taken": "2016-09-04T17:00:27Z",
16
+ # "duration": 6000
17
+ # }
18
+ # }
19
+ class MediaInfo < Base
20
+ class << self
21
+ def new(data)
22
+ tag = data['metadata']['.tag']
23
+ class_for(tag.to_sym).new(data['metadata'])
24
+ end
25
+
26
+ private
27
+
28
+ def class_for(tag)
29
+ case tag
30
+ when :photo
31
+ DropboxApi::Metadata::PhotoMetadata
32
+ when :video
33
+ DropboxApi::Metadata::VideoMetadata
34
+ else
35
+ raise ArgumentError, "Unable to build individual result with `#{tag}`"
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,20 @@
1
+ module DropboxApi::Metadata
2
+ # Example of a serialized {PhotoMetadata} object:
3
+ # {
4
+ # ".tag": "photo",
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
+ # }
15
+ class PhotoMetadata < Base
16
+ field :dimensions, DropboxApi::Metadata::Dimensions, :optional
17
+ field :location, DropboxApi::Metadata::Location, :optional
18
+ field :time_taken, Time, :optional
19
+ end
20
+ end
@@ -0,0 +1,22 @@
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
+ class VideoMetadata < Base
17
+ field :dimensions, DropboxApi::Metadata::Dimensions, :optional
18
+ field :location, DropboxApi::Metadata::Location, :optional
19
+ field :time_taken, Time, :optional
20
+ field :duration, Integer, :optional
21
+ end
22
+ end
@@ -1,3 +1,3 @@
1
1
  module DropboxApi
2
- VERSION = '0.1.8'.freeze
2
+ VERSION = '0.1.9'.freeze
3
3
  end
data/lib/dropbox_api.rb CHANGED
@@ -15,6 +15,11 @@ require 'dropbox_api/metadata/symbol'
15
15
  require 'dropbox_api/metadata/access_level'
16
16
  require 'dropbox_api/metadata/member_action'
17
17
 
18
+ require 'dropbox_api/metadata/dimensions.rb'
19
+ require 'dropbox_api/metadata/location.rb'
20
+ require 'dropbox_api/metadata/photo_metadata.rb'
21
+ require 'dropbox_api/metadata/video_metadata.rb'
22
+ require 'dropbox_api/metadata/media_info.rb'
18
23
  require 'dropbox_api/metadata/member'
19
24
  require 'dropbox_api/metadata/add_member'
20
25
  require 'dropbox_api/metadata/name'
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.8
4
+ version: 0.1.9
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-07-09 00:00:00.000000000 Z
11
+ date: 2017-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -229,6 +229,7 @@ files:
229
229
  - lib/dropbox_api/metadata/basic_account.rb
230
230
  - lib/dropbox_api/metadata/commit_info.rb
231
231
  - lib/dropbox_api/metadata/deleted.rb
232
+ - lib/dropbox_api/metadata/dimensions.rb
232
233
  - lib/dropbox_api/metadata/field.rb
233
234
  - lib/dropbox_api/metadata/file.rb
234
235
  - lib/dropbox_api/metadata/file_link.rb
@@ -237,6 +238,8 @@ files:
237
238
  - lib/dropbox_api/metadata/folder_link.rb
238
239
  - lib/dropbox_api/metadata/folder_sharing_info.rb
239
240
  - lib/dropbox_api/metadata/link_permissions.rb
241
+ - lib/dropbox_api/metadata/location.rb
242
+ - lib/dropbox_api/metadata/media_info.rb
240
243
  - lib/dropbox_api/metadata/member.rb
241
244
  - lib/dropbox_api/metadata/member_action.rb
242
245
  - lib/dropbox_api/metadata/member_action_list.rb
@@ -244,6 +247,7 @@ files:
244
247
  - lib/dropbox_api/metadata/member_permission_list.rb
245
248
  - lib/dropbox_api/metadata/name.rb
246
249
  - lib/dropbox_api/metadata/parent_folder_access_info.rb
250
+ - lib/dropbox_api/metadata/photo_metadata.rb
247
251
  - lib/dropbox_api/metadata/resource.rb
248
252
  - lib/dropbox_api/metadata/shared_folder.rb
249
253
  - lib/dropbox_api/metadata/shared_folder_policy.rb
@@ -254,6 +258,7 @@ files:
254
258
  - lib/dropbox_api/metadata/team.rb
255
259
  - lib/dropbox_api/metadata/team_member_info.rb
256
260
  - lib/dropbox_api/metadata/upload_session_cursor.rb
261
+ - lib/dropbox_api/metadata/video_metadata.rb
257
262
  - lib/dropbox_api/metadata/write_mode.rb
258
263
  - lib/dropbox_api/middleware/decode_result.rb
259
264
  - lib/dropbox_api/result_builder.rb