yt 0.8.4 → 0.8.5

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: 7d824701c27d2369e03c760e042cfe19dbd39470
4
- data.tar.gz: 63ff1fa70040d3d8500e04505816d5ceb2bc0779
3
+ metadata.gz: c17db6aef4c0edb7def2fd1e9ed2df2a62875997
4
+ data.tar.gz: 2d635557654f38100344a7c965e249cf1d6249f3
5
5
  SHA512:
6
- metadata.gz: 9168b327cc1dbb9a37f14eb764c0311a2b42b21c23eac6b08b3e8deede02de23105778f1f36e9cf454b00ae3ab759963db53b8b7f47733ca28582ae838330947
7
- data.tar.gz: 047a62222b0f27367bf2287afed2c5d69908497d03245e1fbce64705268e74161239af4ebf131640c8f587e06af8674c3eb88d1f463ddb4e949567f04ef7748f
6
+ metadata.gz: 35c16b3ac604255ee93caac360b58e47574188d0b08815793e20c3d6af39334a20f632cdab2b95e2713d0dcb8218ac67791fbc4edc1c2e35196593b3e2dfc9aa
7
+ data.tar.gz: 4ebcbb074447f0fa7e8d5dc71795a7787e0b5643f6dd6a4134133bbaf7d93fcc6fded89c51918fdeb039c54d3198529602e9121aec37ae879eecc3d7f0d24737
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- yt (0.8.4)
4
+ yt (0.8.5)
5
5
  activesupport
6
6
 
7
7
  GEM
data/HISTORY.md CHANGED
@@ -6,6 +6,7 @@ v0.8 - 2014/07/18
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
8
  * Add account.content_owners to list content owners associated with an account
9
+ * Add video.delete
9
10
 
10
11
  v0.7 - 2014/06/18
11
12
  -----------------
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.4'
44
+ gem 'yt', '~> 0.8.5'
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*)
@@ -203,6 +203,7 @@ Use [Yt::Video](http://rubydoc.info/github/Fullscreen/yt/master/Yt/Models/Video)
203
203
  * read the attributes of a video
204
204
  * update the attributes of a video
205
205
  * access the annotations of a video
206
+ * delete a video
206
207
  * like and dislike a video
207
208
  * retrieve the daily earnings, views, comments, likes, dislikes, shares and impressions of a video
208
209
  * retrieve the viewer percentage of a video by gender and age group
@@ -286,6 +287,8 @@ video.shares since: 7.days.ago, until: 7.days.ago #=> {Wed, 28 May 2014 => 3.0}
286
287
 
287
288
  video.viewer_percentages #=> {female: {'18-24' => 12.12, '25-34' => 16.16,…}…}
288
289
  video.viewer_percentage(gender: :female) #=> 49.12
290
+
291
+ video.delete #=> true
289
292
  ```
290
293
 
291
294
  *The methods above require to be authenticated as the video’s owner (see below).*
@@ -61,6 +61,22 @@ module Yt
61
61
  delegate :view_count, :like_count, :dislike_count, :favorite_count,
62
62
  :comment_count, to: :statistics_set
63
63
 
64
+ # Deletes the video.
65
+ #
66
+ # This method requires {Resource#auth auth} to return an authenticated
67
+ # instance of {Yt::Account} with permissions to delete the video.
68
+ # @raise [Yt::Errors::Unauthorized] if {Resource#auth auth} does not
69
+ # return an account with permissions to delete the video.
70
+ # @return [Boolean] whether the video does not exist anymore.
71
+ def delete(options = {})
72
+ do_delete {@id = nil}
73
+ !exists?
74
+ end
75
+
76
+ def exists?
77
+ !@id.nil?
78
+ end
79
+
64
80
  # @todo Update the status, not just the snippet. This requires some
65
81
  # caution, as the whole status object needs to be updated, not just
66
82
  # privacyStatus, but also embeddable, license, publicStatsViewable,
@@ -1,3 +1,3 @@
1
1
  module Yt
2
- VERSION = '0.8.4'
2
+ VERSION = '0.8.5'
3
3
  end
@@ -18,4 +18,15 @@ describe Yt::Video do
18
18
  it { expect(video.update title: 'new').to be true }
19
19
  it { expect{video.update title: 'new'}.to change{video.title} }
20
20
  end
21
+
22
+ describe '#delete' do
23
+ let(:attrs) { {id: 'video-id'} }
24
+
25
+ context 'given an existing video' do
26
+ before { expect(video).to receive(:do_delete).and_yield }
27
+
28
+ it { expect(video.delete).to be true }
29
+ it { expect{video.delete}.to change{video.exists?} }
30
+ end
31
+ end
21
32
  end
@@ -32,6 +32,7 @@ describe Yt::Account, :device_app do
32
32
  describe '.upload_video' do
33
33
  let(:video_params) { {title: 'Test Yt upload', privacy_status: 'private'} }
34
34
  let(:video) { $account.upload_video path_or_url, video_params }
35
+ after { video.delete }
35
36
 
36
37
  context 'given the path to a local video file' do
37
38
  let(:path_or_url) { File.expand_path '../video.mp4', __FILE__ }
@@ -61,6 +61,7 @@ describe Yt::Video, :device_app do
61
61
  end
62
62
 
63
63
  it { expect{video.update}.to fail }
64
+ it { expect{video.delete}.to fail.with 'forbidden' }
64
65
 
65
66
  context 'that I like' do
66
67
  before { video.like }
@@ -91,7 +92,14 @@ describe Yt::Video, :device_app do
91
92
  it { expect{video.statistics_set}.to raise_error Yt::Errors::NoItems }
92
93
  end
93
94
 
94
- context 'given one of my own videos' do
95
+ context 'given one of my own videos that I want to delete' do
96
+ before(:all) { @tmp_video = $account.upload_video 'https://bit.ly/yt_test', title: "Yt Test Delete Video #{rand}" }
97
+ let(:id) { @tmp_video.id }
98
+
99
+ it { expect(video.delete).to be true }
100
+ end
101
+
102
+ context 'given one of my own videos that I want to update' do
95
103
  let(:id) { $account.videos.first.id }
96
104
 
97
105
  describe 'updates the attributes that I specify explicitly' do
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.4
4
+ version: 0.8.5
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-24 00:00:00.000000000 Z
11
+ date: 2014-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport