dropbox_api 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
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