yt 0.8.2 → 0.8.3

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: 3ea681e778798edadb759fbe8e533454b280d1cf
4
- data.tar.gz: 929e6afec24259b7c63fc948e26087ebd969f50c
3
+ metadata.gz: fd5d7adb4f5c9a5cce9d5aa7988594c447bdbbaf
4
+ data.tar.gz: 920b28b819d0d154ef3e5668378ffdfdac0fb53d
5
5
  SHA512:
6
- metadata.gz: 7a13eaef87573b314a7970958206d46c6ec47b435c617e10d5e74a12153d8c9b1857b2012a6eef1fdadf447b7745a9696d6a3c0ac27e2494d7aeb4f61d8583a9
7
- data.tar.gz: 5cb78dd502013771cf64cda608784f2b39c59210ad51e2bf64226bd012b8ed535558b4af86d0d77b283f03ef33ad48f17bd2225aaaf6477d6604549516a4b629
6
+ metadata.gz: f0bbbe167612926e3d0f6be004d54fc97bedc57f315089e27864a421bd839ae908f8af714a1d393e6c69a4a02a8124958f808a41eb94fe9f2850a079875a1e33
7
+ data.tar.gz: fc5be7fdfff6dd49919aba6e18dfdb3893ba81bd9382429949dda92c8a81219bb48b2b6d0ab3547029bbcb048d58220e30004bf5f2622ba25da3dad37c83ab18
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- yt (0.8.2)
4
+ yt (0.8.3)
5
5
  activesupport
6
6
 
7
7
  GEM
data/HISTORY.md CHANGED
@@ -5,6 +5,7 @@ v0.8 - 2014/07/18
5
5
  * Add all the status fields to Video (upload status, failure reason, rejection reason, scheduled time, license, embeddable, public stats viewable)
6
6
  * Add content_owner.claims to list the claims administered by a content owner.
7
7
  * Allow content_owner.claims to be chained with .where, such as in account.videos.where(q: 'query')
8
+ * Add account.content_owners to list content owners associated with an account
8
9
 
9
10
  v0.7 - 2014/06/18
10
11
  -----------------
data/README.md CHANGED
@@ -41,7 +41,7 @@ To install on your system, run
41
41
 
42
42
  To use inside a bundled Ruby project, add this line to the Gemfile:
43
43
 
44
- gem 'yt', '~> 0.8.2'
44
+ gem 'yt', '~> 0.8.3'
45
45
 
46
46
  Since the gem follows [Semantic Versioning](http://semver.org),
47
47
  indicating the full version in your Gemfile (~> *major*.*minor*.*patch*)
@@ -76,7 +76,16 @@ account.upload_video 'my_video.mp4', title: 'My new video', privacy_status: 'pri
76
76
  account.upload_video 'http://example.com/remote.m4v', title: 'My other video', tags: ['music']
77
77
  ```
78
78
 
79
- *All the above methods require authentication (see below).*
79
+ *The methods above require to be authenticated as a YouTube account (see below).*
80
+
81
+ ```ruby
82
+ account = Yt::Account.new access_token: 'ya29.1.ABCDEFGHIJ'
83
+
84
+ account.content_owners.count #=> 3
85
+ account.content_owners.first #=> #<Yt::Models::ContentOwner @id=...>
86
+ ```
87
+
88
+ *The methods above require to be authenticated as a YouTube Content Partner account (see below).*
80
89
 
81
90
  Yt::ContentOwner
82
91
  ----------------
@@ -27,6 +27,7 @@ module Yt
27
27
  @authorization_code = options[:authorization_code]
28
28
  @redirect_uri = options[:redirect_uri]
29
29
  @scopes = options[:scopes]
30
+ @authentication = options[:authentication]
30
31
  end
31
32
 
32
33
  def auth
@@ -0,0 +1,32 @@
1
+ require 'yt/collections/base'
2
+ require 'yt/models/content_owner'
3
+
4
+ module Yt
5
+ module Collections
6
+ # Provides methods to interact with a collection of Content Owners.
7
+ #
8
+ # Resources with content_owners are: {Yt::Models::Account accounts}.
9
+ class ContentOwners < Base
10
+
11
+ private
12
+
13
+ def new_item(data)
14
+ Yt::ContentOwner.new owner_name: data['id'], authentication: @auth.authentication
15
+ end
16
+
17
+ # @return [Hash] the parameters to submit to YouTube to list content
18
+ # owners administered by the account.
19
+ # @see https://developers.google.com/youtube/partner/docs/v1/contentOwners/list
20
+ def list_params
21
+ super.tap do |params|
22
+ params[:params] = content_owners_params
23
+ params[:path] = '/youtube/partner/v1/contentOwners'
24
+ end
25
+ end
26
+
27
+ def content_owners_params
28
+ {fetchMine: true}
29
+ end
30
+ end
31
+ end
32
+ end
@@ -32,6 +32,11 @@ module Yt
32
32
  # upload videos using the resumable upload protocol.
33
33
  has_many :resumable_sessions
34
34
 
35
+ # @!attribute [r] content_owners
36
+ # @return [Yt::Collections::ContentOwners] the content_owners accessible
37
+ # by the account.
38
+ has_many :content_owners
39
+
35
40
  # Uploads a video
36
41
  # @param [String] path_or_url the video to upload. Can either be the
37
42
  # path of a local file or the URL of a remote file.
data/lib/yt/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Yt
2
- VERSION = '0.8.2'
2
+ VERSION = '0.8.3'
3
3
  end
@@ -0,0 +1,25 @@
1
+ # encoding: UTF-8
2
+ require 'spec_helper'
3
+ require 'yt/models/account'
4
+
5
+ describe Yt::Account, :partner do
6
+ subject(:account) { Yt::Account.new id: id, authentication: $content_owner.authentication }
7
+
8
+ describe '.content_owners' do
9
+ let(:content_owners) { account.content_owners }
10
+
11
+ context 'given a partenered account with content owners', :partner do
12
+ let(:id) { $content_owner.id }
13
+
14
+ specify 'returns the associated content owners' do
15
+ expect(content_owners.size).to be > 0
16
+ expect(content_owners.first).to be_a Yt::ContentOwner
17
+ end
18
+
19
+ specify 'ensures the content owners have the same credentials as the account' do
20
+ expect(content_owners.first.access_token).to eq account.access_token
21
+ expect(content_owners.first.refresh_token).to eq account.refresh_token
22
+ end
23
+ end
24
+ end
25
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claudio Baccigalupo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-23 00:00:00.000000000 Z
11
+ date: 2014-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -134,6 +134,7 @@ files:
134
134
  - lib/yt/collections/channels.rb
135
135
  - lib/yt/collections/claims.rb
136
136
  - lib/yt/collections/content_details.rb
137
+ - lib/yt/collections/content_owners.rb
137
138
  - lib/yt/collections/device_flows.rb
138
139
  - lib/yt/collections/ids.rb
139
140
  - lib/yt/collections/partnered_channels.rb
@@ -224,6 +225,7 @@ files:
224
225
  - spec/requests/as_account/resource_spec.rb
225
226
  - spec/requests/as_account/video.mp4
226
227
  - spec/requests/as_account/video_spec.rb
228
+ - spec/requests/as_content_owner/account_spec.rb
227
229
  - spec/requests/as_content_owner/channel_spec.rb
228
230
  - spec/requests/as_content_owner/content_owner_spec.rb
229
231
  - spec/requests/as_content_owner/video_spec.rb
@@ -304,6 +306,7 @@ test_files:
304
306
  - spec/requests/as_account/resource_spec.rb
305
307
  - spec/requests/as_account/video.mp4
306
308
  - spec/requests/as_account/video_spec.rb
309
+ - spec/requests/as_content_owner/account_spec.rb
307
310
  - spec/requests/as_content_owner/channel_spec.rb
308
311
  - spec/requests/as_content_owner/content_owner_spec.rb
309
312
  - spec/requests/as_content_owner/video_spec.rb