skydrive 0.0.1 → 0.0.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.
- data/README.md +1 -1
- data/lib/skydrive/album.rb +1 -1
- data/lib/skydrive/audio.rb +14 -7
- data/lib/skydrive/client.rb +2 -2
- data/lib/skydrive/file.rb +14 -6
- data/lib/skydrive/folder.rb +41 -2
- data/lib/skydrive/notebook.rb +1 -0
- data/lib/skydrive/object.rb +6 -0
- data/lib/skydrive/operations.rb +92 -5
- data/lib/skydrive/photo.rb +13 -1
- data/lib/skydrive/user.rb +1 -1
- data/lib/skydrive/version.rb +1 -1
- data/lib/skydrive/video.rb +13 -1
- data/skydrive.gemspec +1 -1
- metadata +4 -4
data/README.md
CHANGED
data/lib/skydrive/album.rb
CHANGED
data/lib/skydrive/audio.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Skydrive
|
2
2
|
# A user's audio file in SkyDrive.
|
3
|
-
class Audio < Skydrive::
|
3
|
+
class Audio < Skydrive::File
|
4
4
|
|
5
5
|
# The size, in bytes, of the audio
|
6
6
|
# @return [Integer]
|
@@ -20,12 +20,6 @@ module Skydrive
|
|
20
20
|
object["comments_enabled"]
|
21
21
|
end
|
22
22
|
|
23
|
-
# A value that indicates whether this audio can be embedded
|
24
|
-
# @return [Boolean]
|
25
|
-
def is_embeddable
|
26
|
-
object["is_embeddable"]
|
27
|
-
end
|
28
|
-
|
29
23
|
# The URL to use to download the audio from SkyDrive
|
30
24
|
# @return [String]
|
31
25
|
def source
|
@@ -74,5 +68,18 @@ module Skydrive
|
|
74
68
|
object["picture"]
|
75
69
|
end
|
76
70
|
|
71
|
+
# The link that can be used to download the audio file
|
72
|
+
# @return [String]
|
73
|
+
def download_link
|
74
|
+
url = client.get("/#{id}/content", :download => true, :suppress_redirects => true)["location"]
|
75
|
+
end
|
76
|
+
|
77
|
+
# Download the audio file
|
78
|
+
def download
|
79
|
+
uri = URI(download_link)
|
80
|
+
response = HTTParty.get("http://#{uri.host}#{uri.path}?#{uri.query}")
|
81
|
+
response.parsed_response
|
82
|
+
end
|
83
|
+
|
77
84
|
end
|
78
85
|
end
|
data/lib/skydrive/client.rb
CHANGED
@@ -72,6 +72,8 @@ module Skydrive
|
|
72
72
|
raise Skydrive::Error.new(filtered_response["error"]) if filtered_response["error"]
|
73
73
|
if filtered_response["data"]
|
74
74
|
return Skydrive::Collection.new(self, filtered_response["data"])
|
75
|
+
elsif filtered_response["location"]
|
76
|
+
return filtered_response
|
75
77
|
elsif filtered_response["id"].match /^comment\..+/
|
76
78
|
return Skydrive::Comment.new(self, filtered_response)
|
77
79
|
else
|
@@ -83,8 +85,6 @@ module Skydrive
|
|
83
85
|
else
|
84
86
|
raise Skydrive::Error.new("code" => "http_error_#{response.response.code}", "message" => response.response.message)
|
85
87
|
end
|
86
|
-
|
87
|
-
|
88
88
|
end
|
89
89
|
|
90
90
|
end
|
data/lib/skydrive/file.rb
CHANGED
@@ -20,16 +20,24 @@ module Skydrive
|
|
20
20
|
object["comments_enabled"]
|
21
21
|
end
|
22
22
|
|
23
|
-
# A value that indicates whether this file can be embedded
|
24
|
-
# @return [Boolean]
|
25
|
-
def is_embeddable
|
26
|
-
object["is_embeddable"]
|
27
|
-
end
|
28
|
-
|
29
23
|
# The URL to use to download the file from SkyDrive
|
30
24
|
# @return [String]
|
31
25
|
def source
|
32
26
|
object["source"]
|
33
27
|
end
|
28
|
+
|
29
|
+
# The link that can be used to download the file
|
30
|
+
# @return [String]
|
31
|
+
def download_link
|
32
|
+
url = client.get("/#{id}/content", :download => true, :suppress_redirects => true)["location"]
|
33
|
+
end
|
34
|
+
|
35
|
+
# Download the file
|
36
|
+
def download
|
37
|
+
uri = URI(download_link)
|
38
|
+
response = HTTParty.get("http://#{uri.host}#{uri.path}?#{uri.query}")
|
39
|
+
response.parsed_response
|
40
|
+
end
|
41
|
+
|
34
42
|
end
|
35
43
|
end
|
data/lib/skydrive/folder.rb
CHANGED
@@ -3,11 +3,50 @@ module Skydrive
|
|
3
3
|
class Folder < Skydrive::Object
|
4
4
|
|
5
5
|
# Items in the folder
|
6
|
+
# @param [Hash] options Additional parameters
|
7
|
+
# @option options [Integer] :limit the maximum number of results to return
|
8
|
+
# @option options [Integer] :offset the index of the first item to get
|
9
|
+
# @option options [String] :sort_by set the item's sort criteria. Can be 'created, updated, name, size, or default'
|
10
|
+
# @option options [String] :sort_order set the item's sort order. Can be 'ascending or descending'
|
6
11
|
# @return [Skydrive::Collection]
|
7
|
-
def files
|
12
|
+
def files options={}
|
8
13
|
response = client.get("/#{id}/files")
|
9
14
|
end
|
10
15
|
|
11
|
-
|
16
|
+
# Get all the photos in the folder
|
17
|
+
# @param [Hash] options Additional parameters
|
18
|
+
# @option options [Integer] :limit the maximum number of results to return
|
19
|
+
# @option options [Integer] :offset the index of the first item to get
|
20
|
+
# @option options [String] :sort_by set the item's sort criteria. Can be 'created, updated, name, size, or default'
|
21
|
+
# @option options [String] :sort_order set the item's sort order. Can be 'ascending or descending'
|
22
|
+
# @return [Skydrive::Collection]
|
23
|
+
def photos options={}
|
24
|
+
response = client.get("/#{id}/photos", options)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Get all the videos in the folder
|
28
|
+
# @param [Hash] options Additional parameters
|
29
|
+
# @option options [Integer] :limit the maximum number of results to return
|
30
|
+
# @option options [Integer] :offset the index of the first item to get
|
31
|
+
# @option options [String] :sort_by set the item's sort criteria. Can be 'created, updated, name, size, or default'
|
32
|
+
# @option options [String] :sort_order set the item's sort order. Can be 'ascending or descending'
|
33
|
+
# @return [Skydrive::Collection]
|
34
|
+
def videos options={}
|
35
|
+
response = client.get("/#{id}/videos", options)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Delete the folder
|
39
|
+
def delete
|
40
|
+
client.delete("/#{id}")
|
41
|
+
end
|
42
|
+
|
43
|
+
# Update the folder properties
|
44
|
+
# @param [Hash] options
|
45
|
+
# @option options [String] :name New name of the folder
|
46
|
+
# @option options [String] :description Description for the folder
|
47
|
+
# @return [Skydrive::Folder] the updated folder object
|
48
|
+
def update options={}
|
49
|
+
client.put("/#{id}", options)
|
50
|
+
end
|
12
51
|
end
|
13
52
|
end
|
data/lib/skydrive/notebook.rb
CHANGED
data/lib/skydrive/object.rb
CHANGED
data/lib/skydrive/operations.rb
CHANGED
@@ -8,56 +8,134 @@ module Skydrive
|
|
8
8
|
response = get("/me/skydrive")
|
9
9
|
end
|
10
10
|
|
11
|
+
# Get the home folder of a particular user
|
12
|
+
# @param [String] user_id ID of the user
|
13
|
+
# @return [Skydrive::Folder]
|
14
|
+
def user_skydrive user_id
|
15
|
+
response = get("/#{user_id}/skydrive")
|
16
|
+
end
|
17
|
+
|
11
18
|
# Your camera_roll folder
|
12
19
|
# @return [Skydrive::Folder]
|
13
20
|
def my_camera_roll
|
14
21
|
response = get("/me/skydrive/camera_roll")
|
15
22
|
end
|
16
23
|
|
24
|
+
# Get the camera_roll folder of a particular user
|
25
|
+
# @param [String] user_id ID of the user
|
26
|
+
# @return [Skydrive::Folder]
|
27
|
+
def user_camera_roll user_id
|
28
|
+
response = get("/#{user_id}/camera_roll")
|
29
|
+
end
|
30
|
+
|
17
31
|
# Your documents
|
18
32
|
# @return [Skydrive::Folder]
|
19
33
|
def my_documents
|
20
34
|
response = get("/me/skydrive/my_documents")
|
21
35
|
end
|
22
36
|
|
37
|
+
# User's documents
|
38
|
+
# @param [String] user_id ID of the user
|
39
|
+
# @return [Skydrive::Folder]
|
40
|
+
def user_documents user_id
|
41
|
+
response = get("/#{user_id}/skydrive/my_documents")
|
42
|
+
end
|
43
|
+
|
23
44
|
# Your default album
|
24
|
-
# @return [Skydrive::
|
45
|
+
# @return [Skydrive::Album]
|
25
46
|
def my_photos
|
26
47
|
response = get("/me/skydrive/my_photos")
|
27
48
|
end
|
28
49
|
|
50
|
+
# User's photos
|
51
|
+
# @param [String] user_id ID of the user
|
52
|
+
# @return [Skydrive::Folder]
|
53
|
+
def user_photos user_id
|
54
|
+
response = get("/#{user_id}/skydrive/my_photos")
|
55
|
+
end
|
56
|
+
|
29
57
|
# Your public documents
|
30
58
|
# @return [Skydrive::Folder]
|
31
59
|
def my_public_documents
|
32
60
|
response = get("/me/skydrive/public_documents")
|
33
61
|
end
|
34
62
|
|
63
|
+
# User's public documents
|
64
|
+
# @param [String] user_id ID of the user
|
65
|
+
# @return [Skydrive::Folder]
|
66
|
+
def user_public_documents user_id
|
67
|
+
response = get("/#{user_id}/skydrive/public_documents")
|
68
|
+
end
|
69
|
+
|
35
70
|
# Your shared items
|
36
71
|
# @return [Skydrive::Collection]
|
37
72
|
def my_shared_stuff
|
38
73
|
response = get("/me/skydrive/shared")
|
39
74
|
end
|
40
75
|
|
76
|
+
# User's shared items
|
77
|
+
# @return [Skydrive::Collection]
|
78
|
+
def user_shared_stuff
|
79
|
+
response = get("/#{id}/skydrive/shared")
|
80
|
+
end
|
81
|
+
|
41
82
|
# Your recent documents
|
83
|
+
# @param [String] user_id ID of the user
|
42
84
|
# @return [Skydrive::Collection]
|
43
|
-
def
|
85
|
+
def my_recent_documents
|
44
86
|
response = get("/me/skydrive/recent_docs")
|
45
87
|
end
|
46
88
|
|
89
|
+
# User's recent documents
|
90
|
+
# @param [String] user_id ID of the user
|
91
|
+
# @return [Skydrive::Collection]
|
92
|
+
def user_recent_documents user_id
|
93
|
+
response = get("/#{user_id}/skydrive/recent_docs")
|
94
|
+
end
|
95
|
+
|
47
96
|
# Your total and remaining storage quota
|
48
97
|
# @return [Hash] contains keys quota and available
|
49
|
-
def
|
98
|
+
def my_storage_quota
|
99
|
+
response = get("/me/skydrive/quota")
|
100
|
+
end
|
101
|
+
|
102
|
+
# User's total and remaining storage quota
|
103
|
+
# @return [Hash] contains keys quota and available
|
104
|
+
def user_storage_quota
|
50
105
|
response = get("/me/skydrive/quota")
|
51
106
|
end
|
52
107
|
|
53
108
|
# Delete an object with given id
|
54
|
-
|
109
|
+
# @param [String] object_id the id of the object to be deleted
|
110
|
+
def delete_skydrive_object object_id
|
55
111
|
response = delete("/#{object_id}")
|
56
112
|
end
|
57
113
|
|
114
|
+
# Update a skydrive object
|
115
|
+
# @param [String] object_id the id of the object to be updated
|
116
|
+
# @param [Hash] options The properties to be updated
|
117
|
+
# @option options [String] :name The friendly name of the object
|
118
|
+
# @option options [String] :description The description text about the object
|
119
|
+
def update_skydrive_object object_id, options={}
|
120
|
+
response = put("/#{object_id}", options)
|
121
|
+
end
|
122
|
+
|
123
|
+
alias :update_folder :update_skydrive_object
|
124
|
+
alias :update_album :update_skydrive_object
|
125
|
+
alias :update_file :update_skydrive_object
|
126
|
+
alias :update_video :update_skydrive_object
|
127
|
+
alias :update_audio :update_skydrive_object
|
128
|
+
alias :update_photo :update_skydrive_object
|
129
|
+
|
130
|
+
alias :delete_folder :delete_skydrive_object
|
131
|
+
alias :delete_album :delete_skydrive_object
|
132
|
+
alias :delete_file :delete_skydrive_object
|
133
|
+
alias :delete_video :delete_skydrive_object
|
134
|
+
alias :delete_audio :delete_skydrive_object
|
135
|
+
alias :delete_photo :delete_skydrive_object
|
58
136
|
# Create a new folder
|
59
137
|
# @param [String] path the path where the new folder should be created
|
60
|
-
# @param [Hash] options the
|
138
|
+
# @param [Hash] options the details of the new folder
|
61
139
|
# @option options [String] :name required, the name of the new folder
|
62
140
|
# @option options [String] :description the description about the folder
|
63
141
|
# @return [Skydrive::Folder] the new folder
|
@@ -65,5 +143,14 @@ module Skydrive
|
|
65
143
|
response = post("/#{path}", options)
|
66
144
|
end
|
67
145
|
|
146
|
+
# Create a new album. Albums can only be created in the path '/me/albums', so no need to pass the path as a parameter
|
147
|
+
# @param [Hash] options the details of the new album
|
148
|
+
# @option options [String] :name required, the name of the new album
|
149
|
+
# @option options [String] :description the description about the album
|
150
|
+
# @return [Skydrive::Album] the new album
|
151
|
+
def create_album options={}
|
152
|
+
response = post("/me/albums", options)
|
153
|
+
end
|
154
|
+
|
68
155
|
end
|
69
156
|
end
|
data/lib/skydrive/photo.rb
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
module Skydrive
|
2
2
|
# A user's photo in SkyDrive.
|
3
|
-
class Photo < Skydrive::
|
3
|
+
class Photo < Skydrive::File
|
4
|
+
# The link that can be used to download the photo
|
5
|
+
# @return [String]
|
6
|
+
def download_link
|
7
|
+
url = client.get("/#{id}/content", :download => true, :suppress_redirects => true)["location"]
|
8
|
+
end
|
9
|
+
|
10
|
+
# Download the photo
|
11
|
+
def download
|
12
|
+
uri = URI(download_link)
|
13
|
+
response = HTTParty.get("http://#{uri.host}#{uri.path}?#{uri.query}")
|
14
|
+
response.parsed_response
|
15
|
+
end
|
4
16
|
end
|
5
17
|
end
|
data/lib/skydrive/user.rb
CHANGED
data/lib/skydrive/version.rb
CHANGED
data/lib/skydrive/video.rb
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
module Skydrive
|
2
2
|
# A user's video in SkyDrive.
|
3
|
-
class Video < Skydrive::
|
3
|
+
class Video < Skydrive::File
|
4
|
+
# The link that can be used to download the video file
|
5
|
+
# @return [String]
|
6
|
+
def download_link
|
7
|
+
url = client.get("/#{id}/content", :download => true, :suppress_redirects => true)["location"]
|
8
|
+
end
|
9
|
+
|
10
|
+
# Download the video file
|
11
|
+
def download
|
12
|
+
uri = URI(download_link)
|
13
|
+
response = HTTParty.get("http://#{uri.host}#{uri.path}?#{uri.query}")
|
14
|
+
response.parsed_response
|
15
|
+
end
|
4
16
|
end
|
5
17
|
end
|
data/skydrive.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.name = "skydrive"
|
17
17
|
gem.require_paths = ["lib"]
|
18
18
|
gem.version = Skydrive::VERSION
|
19
|
-
gem.add_dependency 'httparty', '>= 0.
|
19
|
+
gem.add_dependency 'httparty', '>= 0.11.0'
|
20
20
|
gem.add_dependency 'activesupport'
|
21
21
|
gem.add_dependency 'httmultiparty'
|
22
22
|
gem.add_dependency 'oauth2'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skydrive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.11.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
29
|
+
version: 0.11.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: activesupport
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|