yt 0.25.32 → 0.25.33

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: 7575ef55d789bc1593546bcf77b7b5848c368b28
4
- data.tar.gz: 5f5ced71d9ecc23625250b485051d3570ca85fc2
3
+ metadata.gz: 6e07affd7b6d4df0e69e0ab16d65a959be125294
4
+ data.tar.gz: f29044dea895dfce5e8dee70f81e7583b84cb5ae
5
5
  SHA512:
6
- metadata.gz: beed739ec7eee33a1eea1cfcce8e23094b2516ebb469ab212b3508f57a2db6b2cbbcbb3f6d8caf90b2b5f6ab35136fa052d947a8c1cbd18e36b82dee5fd9459a
7
- data.tar.gz: d59ecde5eefcfec8e43ec2bbccd130273240ea21b94f8d62e086b61a29f3a3bfbc5b765f4dc3992aa83129dc8ed241d5d26fb68a9617fb19e83694c58f30751d
6
+ metadata.gz: a9c7378a1167c85d6329d8477eead541168cfeeece66cbafbe75eceea23740b3c5ec3b927d95fab7eebe51e70adfcc020a150c67e289e7dbdd720323a244fb4a
7
+ data.tar.gz: c71329c0e58166f21c494028c5da4659a3d2c5dc75e3458d6fc7c7dccbcd8e821998454f1365eda0a68ad02f7952740eca42944582d8603f5b4c8ae70f7159ff
@@ -6,6 +6,11 @@ For more information about changelogs, check
6
6
  [Keep a Changelog](http://keepachangelog.com) and
7
7
  [Vandamme](http://tech-angels.github.io/vandamme).
8
8
 
9
+ ## 0.25.33 - 2016-04-15
10
+
11
+ * [FEATURE] Eager-loading claims from videos will also eager-load assets.
12
+ * [FEATURE] New method - `Claim#source` will return the source of the claim.
13
+
9
14
  ## 0.25.32 - 2016-04-12
10
15
 
11
16
  * [BUGFIX] Fix where videos did not eager load claims or categories in subsequent requests.
@@ -17,6 +17,27 @@ module Yt
17
17
 
18
18
  private
19
19
 
20
+ def attributes_for_new_item(data)
21
+ {}.tap do |attributes|
22
+ attributes[:id] = data['id']
23
+ attributes[:auth] = @auth
24
+ attributes[:data] = data
25
+ attributes[:asset] = data['asset']
26
+ end
27
+ end
28
+
29
+ def eager_load_items_from(items)
30
+ if included_relationships.include? :asset
31
+ asset_ids = items.map { |item| item['assetId'] }.uniq
32
+ conditions = { id: asset_ids.join(','), fetch_metadata: 'effective' }
33
+ assets = @parent.assets.where conditions
34
+ items.each do |item|
35
+ item['asset'] = assets.find { |a| a.id == item['assetId'] }
36
+ end
37
+ end
38
+ super
39
+ end
40
+
20
41
  # @return [Hash] the parameters to submit to YouTube to list claims
21
42
  # administered by the content owner.
22
43
  # @see https://developers.google.com/youtube/partner/docs/v1/claims/list
@@ -59,8 +59,11 @@ module Yt
59
59
 
60
60
  if included_relationships.include? :claim
61
61
  video_ids = items.map{|item| item['id']['videoId']}.uniq
62
- conditions = { video_id: video_ids.join(',') }
63
- claims = @parent.claims.where conditions
62
+ conditions = {
63
+ video_id: video_ids.join(','),
64
+ include_third_party_claims: false
65
+ }
66
+ claims = @parent.claims.includes(:asset).where conditions
64
67
  items.each do |item|
65
68
  claim = claims.find { |c| c.video_id == item['id']['videoId']}
66
69
  item['claim'] = claim
@@ -11,6 +11,7 @@ module Yt
11
11
  @data = options[:data]
12
12
  @id = options[:id]
13
13
  @auth = options[:auth]
14
+ @asset = options[:asset] if options[:asset]
14
15
  end
15
16
 
16
17
  # @!attribute [r] claim_history
@@ -113,6 +114,16 @@ module Yt
113
114
  content_type == 'audiovisual'
114
115
  end
115
116
 
117
+ # @return [String] the source of the claim
118
+ def source
119
+ @data.fetch('origin', {})['source']
120
+ end
121
+
122
+ # @return [Yt::Models::Asset] the asset of the claim
123
+ def asset
124
+ @asset
125
+ end
126
+
116
127
  # @return [Time] the date and time that the claim was created.
117
128
  has_attribute :created_at, type: Time, from: :time_created
118
129
 
@@ -153,4 +164,4 @@ module Yt
153
164
  end
154
165
  end
155
166
  end
156
- end
167
+ end
@@ -1,3 +1,3 @@
1
1
  module Yt
2
- VERSION = '0.25.32'
2
+ VERSION = '0.25.33'
3
3
  end
@@ -208,4 +208,16 @@ describe Yt::Claim do
208
208
  it { expect(claim.third_party?).to be false }
209
209
  end
210
210
  end
211
- end
211
+
212
+ describe '#source' do
213
+ context 'given fetching a claim returns a source' do
214
+ let(:data) { {"origin"=>{"source"=>"webUpload"}} }
215
+ it { expect(claim.source).to eq 'webUpload' }
216
+ end
217
+
218
+ context 'given fetching a claim does not return a source' do
219
+ let(:data) { {"origin"=>{}} }
220
+ it { expect(claim.source).to eq nil }
221
+ end
222
+ end
223
+ end
@@ -54,10 +54,12 @@ describe Yt::ContentOwner, :partner do
54
54
  let(:videos) { $content_owner.videos.includes(:claim) }
55
55
  let(:video_with_claim) { videos.find{|v| v.claim.present?} }
56
56
 
57
- specify 'eager-loads the claim of each video' do
57
+ specify 'eager-loads the claim of each video and its asset' do
58
58
  expect(video_with_claim.claim).to be_a Yt::Claim
59
59
  expect(video_with_claim.claim.id).to be_a String
60
60
  expect(video_with_claim.claim.video_id).to eq video_with_claim.id
61
+ expect(video_with_claim.claim.asset).to be_a Yt::Asset
62
+ expect(video_with_claim.claim.asset.id).to be_a String
61
63
  end
62
64
  end
63
65
  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.25.32
4
+ version: 0.25.33
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claudio Baccigalupo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-12 00:00:00.000000000 Z
11
+ date: 2016-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport