yt 0.16.0 → 0.17.0

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/lib/yt/request.rb CHANGED
@@ -33,12 +33,10 @@ module Yt
33
33
  # @option options [String] :host The host component of the request URI.
34
34
  # @option options [String] :path The path component of the request URI.
35
35
  # @option options [Hash] :params ({}) The params to use as the query
36
- # component of the request URI, for instance the Hash {a: 1, b: 2}
36
+ # component of the request URI, for instance the Hash +{a: 1, b: 2}+
37
37
  # corresponds to the query parameters "a=1&b=2".
38
38
  # @option options [Hash] :camelize_params (true) whether to transform
39
- # each key of params into a camel-case symbol before sending the
40
- # request. For instance, if set to true, the params {aBc: 1, d_e: 2,
41
- # 'f' => 3} would be sent as {aBc: 1, dE: 2, f: 3}.
39
+ # each key of params into a camel-case symbol before sending the request.
42
40
  # @option options [Hash] :request_format (:json) The format of the
43
41
  # requesty body. If a request body is passed, it will be parsed
44
42
  # according to this format before sending it in the request.
data/lib/yt/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Yt
2
- VERSION = '0.16.0'
2
+ VERSION = '0.17.0'
3
3
  end
@@ -42,52 +42,4 @@ describe Yt::ContentDetail do
42
42
  it { expect(content_detail.duration).to eq 51 }
43
43
  end
44
44
  end
45
-
46
- describe '#stereoscopic?' do
47
- context 'given a 3D video' do
48
- let(:data) { {"dimension"=>"3d"} }
49
- it { expect(content_detail).to be_stereoscopic }
50
- end
51
-
52
- context 'given a 2D video' do
53
- let(:data) { {"dimension"=>"2d"} }
54
- it { expect(content_detail).not_to be_stereoscopic }
55
- end
56
- end
57
-
58
- describe '#hd?' do
59
- context 'given a high-definition video' do
60
- let(:data) { {"definition"=>"hd"} }
61
- it { expect(content_detail).to be_hd }
62
- end
63
-
64
- context 'given a standard-definition video' do
65
- let(:data) { {"definition"=>"sd"} }
66
- it { expect(content_detail).not_to be_hd }
67
- end
68
- end
69
-
70
- describe '#captioned?' do
71
- context 'given a video with captions' do
72
- let(:data) { {"caption"=>"true"} }
73
- it { expect(content_detail).to be_captioned }
74
- end
75
-
76
- context 'given a video without captions' do
77
- let(:data) { {"caption"=>"false"} }
78
- it { expect(content_detail).not_to be_captioned }
79
- end
80
- end
81
-
82
- describe '#captioned?' do
83
- context 'given a video with licensed content' do
84
- let(:data) { {"licensedContent"=>true} }
85
- it { expect(content_detail).to be_licensed }
86
- end
87
-
88
- context 'given a video without licensed content' do
89
- let(:data) { {"licensedContent"=>false} }
90
- it { expect(content_detail).not_to be_licensed }
91
- end
92
- end
93
45
  end
@@ -10,25 +10,4 @@ describe Yt::FileDetail do
10
10
  expect(file_detail.data).to eq data
11
11
  end
12
12
  end
13
-
14
- describe '#file_size' do
15
- context 'given a video with fileSize' do
16
- let(:data) { {"fileSize"=>"8000000"} }
17
- it { expect(file_detail.file_size).to be 8_000_000 }
18
- end
19
- end
20
-
21
- describe '#file_type' do
22
- context 'given a video with fileType' do
23
- let(:data) { {"fileType"=>"video"} }
24
- it { expect(file_detail.file_type).to eq 'video' }
25
- end
26
- end
27
-
28
- describe '#container' do
29
- context 'given a video with container' do
30
- let(:data) { {"container"=>"mov"} }
31
- it { expect(file_detail.container).to eq 'mov' }
32
- end
33
- end
34
13
  end
@@ -3,84 +3,4 @@ require 'yt/models/live_streaming_detail'
3
3
 
4
4
  describe Yt::LiveStreamingDetail do
5
5
  subject(:live_streaming_detail) { Yt::LiveStreamingDetail.new data: data }
6
-
7
- describe '#actual_start_time' do
8
- context 'given a non-live streaming video' do
9
- let(:data) { {} }
10
- it { expect(live_streaming_detail.actual_start_time).to be_nil }
11
- end
12
-
13
- context 'given a live streaming video that has not started yet' do
14
- let(:data) { {"scheduledStartTime"=>"2017-07-10T00:00:00.000Z"} }
15
- it { expect(live_streaming_detail.actual_start_time).to be_nil }
16
- end
17
-
18
- context 'given a live streaming video that has started' do
19
- let(:data) { {"actualStartTime"=>"2014-08-01T17:48:40.678Z"} }
20
- it { expect(live_streaming_detail.actual_start_time.year).to be 2014 }
21
- end
22
- end
23
-
24
- describe '#actual_end_time' do
25
- context 'given a non-live streaming video' do
26
- let(:data) { {} }
27
- it { expect(live_streaming_detail.actual_end_time).to be_nil }
28
- end
29
-
30
- context 'given a live streaming video that has not ended yet' do
31
- let(:data) { {"scheduledStartTime"=>"2017-07-10T00:00:00.000Z"} }
32
- it { expect(live_streaming_detail.actual_end_time).to be_nil }
33
- end
34
-
35
- context 'given a live streaming video that has ended' do
36
- let(:data) { {"actualEndTime"=>"2014-08-01T17:48:40.678Z"} }
37
- it { expect(live_streaming_detail.actual_end_time.year).to be 2014 }
38
- end
39
- end
40
-
41
- describe '#scheduled_start_time' do
42
- context 'given a non-live streaming video' do
43
- let(:data) { {} }
44
- it { expect(live_streaming_detail.scheduled_start_time).to be_nil }
45
- end
46
-
47
- context 'given a live streaming video' do
48
- let(:data) { {"scheduledStartTime"=>"2017-07-10T00:00:00.000Z"} }
49
- it { expect(live_streaming_detail.scheduled_start_time.year).to be 2017 }
50
- end
51
- end
52
-
53
- describe '#scheduled_end_time' do
54
- context 'given a non-live streaming video' do
55
- let(:data) { {} }
56
- it { expect(live_streaming_detail.scheduled_end_time).to be_nil }
57
- end
58
-
59
- context 'given a live streaming video that broadcasts indefinitely' do
60
- let(:data) { {"scheduledStartTime"=>"2017-07-10T00:00:00.000Z"} }
61
- it { expect(live_streaming_detail.scheduled_end_time).to be_nil }
62
- end
63
-
64
- context 'given a live streaming video with a scheduled ednd' do
65
- let(:data) { {"scheduledEndTime"=>"2014-08-01T17:48:40.678Z"} }
66
- it { expect(live_streaming_detail.scheduled_end_time.year).to be 2014 }
67
- end
68
- end
69
-
70
- describe '#concurrent_viewers' do
71
- context 'given a non-live streaming video' do
72
- let(:data) { {} }
73
- it { expect(live_streaming_detail.concurrent_viewers).to be_nil }
74
- end
75
-
76
- context 'given a current live streaming video with viewers' do
77
- let(:data) { {"concurrentViewers"=>"1"} }
78
- it { expect(live_streaming_detail.concurrent_viewers).to be 1 }
79
- end
80
-
81
- context 'given a past live streaming video' do
82
- let(:data) { {"actualEndTime"=>"2013-08-01T17:48:40.678Z"} }
83
- it { expect(live_streaming_detail.concurrent_viewers).to be_nil }
84
- end
85
- end
86
6
  end
@@ -3,7 +3,6 @@ require 'yt/models/player'
3
3
 
4
4
  describe Yt::Player do
5
5
  subject(:player) { Yt::Player.new data: data }
6
- let(:value) { "<iframe type='text/html' src='http://www.youtube.com/embed/BPNYv0vd78A' width='640' height='360' frameborder='0' allowfullscreen='true'/>" }
7
6
 
8
7
  describe '#data' do
9
8
  let(:data) { {"key"=>"value"} }
@@ -11,11 +10,4 @@ describe Yt::Player do
11
10
  expect(player.data).to eq data
12
11
  end
13
12
  end
14
-
15
- describe '#embed_html' do
16
- context 'given a video with embedHtml' do
17
- let(:data) { {"embedHtml"=>value} }
18
- it { expect(player.embed_html).to be value }
19
- end
20
- end
21
13
  end
@@ -12,6 +12,7 @@ describe Yt::StatisticsSet do
12
12
  end
13
13
  end
14
14
 
15
+ # TODO: Remove these specs when these methods are tested in video, channel, ..
15
16
  describe '#view_count' do
16
17
  context 'given a video with views' do
17
18
  let(:data) { {"viewCount"=>value} }
@@ -46,306 +46,4 @@ describe Yt::Status do
46
46
  it { expect(status).not_to be_unlisted }
47
47
  end
48
48
  end
49
-
50
- describe '#deleted?' do
51
- context 'given fetching a status returns uploadStatus "deleted"' do
52
- let(:data) { {"uploadStatus"=>"deleted"} }
53
- it { expect(status).to be_deleted }
54
- end
55
-
56
- context 'given fetching a status does not return uploadStatus "deleted"' do
57
- let(:data) { {"uploadStatus"=>"uploaded"} }
58
- it { expect(status).not_to be_deleted }
59
- end
60
- end
61
-
62
- describe '#failed?' do
63
- context 'given fetching a status returns uploadStatus "failed"' do
64
- let(:data) { {"uploadStatus"=>"failed"} }
65
- it { expect(status).to be_failed }
66
- end
67
-
68
- context 'given fetching a status does not return uploadStatus "failed"' do
69
- let(:data) { {"uploadStatus"=>"uploaded"} }
70
- it { expect(status).not_to be_failed }
71
- end
72
- end
73
-
74
- describe '#processed?' do
75
- context 'given fetching a status returns uploadStatus "processed"' do
76
- let(:data) { {"uploadStatus"=>"processed"} }
77
- it { expect(status).to be_processed }
78
- end
79
-
80
- context 'given fetching a status does not return uploadStatus "processed"' do
81
- let(:data) { {"uploadStatus"=>"uploaded"} }
82
- it { expect(status).not_to be_processed }
83
- end
84
- end
85
-
86
- describe '#rejected?' do
87
- context 'given fetching a status returns uploadStatus "rejected"' do
88
- let(:data) { {"uploadStatus"=>"rejected"} }
89
- it { expect(status).to be_rejected }
90
- end
91
-
92
- context 'given fetching a status does not return uploadStatus "rejected"' do
93
- let(:data) { {"uploadStatus"=>"uploaded"} }
94
- it { expect(status).not_to be_rejected }
95
- end
96
- end
97
-
98
- describe '#uploaded?' do
99
- context 'given fetching a status returns uploadStatus "uploaded"' do
100
- let(:data) { {"uploadStatus"=>"uploaded"} }
101
- it { expect(status).to be_uploading }
102
- end
103
-
104
- context 'given fetching a status does not return uploadStatus "uploaded"' do
105
- let(:data) { {"uploadStatus"=>"failed"} }
106
- it { expect(status).not_to be_uploading }
107
- end
108
- end
109
-
110
- describe '#uses_unsupported_codec?' do
111
- context 'given fetching a status returns failureReason "codec"' do
112
- let(:data) { {"uploadStatus"=>"failed", "failureReason"=>"codec"} }
113
- it { expect(status.uses_unsupported_codec?).to be true }
114
- end
115
-
116
- context 'given fetching a status does not return failureReason "codec"' do
117
- let(:data) { {"uploadStatus"=>"failed"} }
118
- it { expect(status.uses_unsupported_codec?).to be false }
119
- end
120
- end
121
-
122
- describe '#conversion_failed?' do
123
- context 'given fetching a status returns failureReason "conversion"' do
124
- let(:data) { {"uploadStatus"=>"failed", "failureReason"=>"conversion"} }
125
- it { expect(status).to have_failed_conversion }
126
- end
127
-
128
- context 'given fetching a status does not return failureReason "conversion"' do
129
- let(:data) { {"uploadStatus"=>"failed"} }
130
- it { expect(status).not_to have_failed_conversion }
131
- end
132
- end
133
-
134
- describe '#empty_file?' do
135
- context 'given fetching a status returns failureReason "emptyFile"' do
136
- let(:data) { {"uploadStatus"=>"failed", "failureReason"=>"emptyFile"} }
137
- it { expect(status).to be_empty }
138
- end
139
-
140
- context 'given fetching a status does not return failureReason "emptyFile"' do
141
- let(:data) { {"uploadStatus"=>"failed"} }
142
- it { expect(status).not_to be_empty }
143
- end
144
- end
145
-
146
- describe '#invalid_file?' do
147
- context 'given fetching a status returns failureReason "invalidFile"' do
148
- let(:data) { {"uploadStatus"=>"failed", "failureReason"=>"invalidFile"} }
149
- it { expect(status).to be_invalid }
150
- end
151
-
152
- context 'given fetching a status does not return failureReason "invalidFile"' do
153
- let(:data) { {"uploadStatus"=>"failed"} }
154
- it { expect(status).not_to be_invalid }
155
- end
156
- end
157
-
158
- describe '#too_small?' do
159
- context 'given fetching a status returns failureReason "tooSmall"' do
160
- let(:data) { {"uploadStatus"=>"failed", "failureReason"=>"tooSmall"} }
161
- it { expect(status).to be_too_small }
162
- end
163
-
164
- context 'given fetching a status does not return failureReason "tooSmall"' do
165
- let(:data) { {"uploadStatus"=>"failed"} }
166
- it { expect(status).not_to be_too_small }
167
- end
168
- end
169
-
170
- describe '#upload_aborted?' do
171
- context 'given fetching a status returns failureReason "uploadAborted"' do
172
- let(:data) { {"uploadStatus"=>"failed", "failureReason"=>"uploadAborted"} }
173
- it { expect(status).to be_aborted }
174
- end
175
-
176
- context 'given fetching a status does not return failureReason "uploadAborted"' do
177
- let(:data) { {"uploadStatus"=>"failed"} }
178
- it { expect(status).not_to be_aborted }
179
- end
180
- end
181
-
182
- describe '#claimed?' do
183
- context 'given fetching a status returns rejectionReason "claim"' do
184
- let(:data) { {"uploadStatus"=>"rejected", "rejectionReason"=>"claim"} }
185
- it { expect(status).to be_claimed }
186
- end
187
-
188
- context 'given fetching a status does not return rejectionReason "claim"' do
189
- let(:data) { {"uploadStatus"=>"rejected"} }
190
- it { expect(status).not_to be_claimed }
191
- end
192
- end
193
-
194
- describe '#infringes_copyright?' do
195
- context 'given fetching a status returns rejectionReason "copyright"' do
196
- let(:data) { {"uploadStatus"=>"rejected", "rejectionReason"=>"copyright"} }
197
- it { expect(status.infringes_copyright?).to be true }
198
- end
199
-
200
- context 'given fetching a status does not return rejectionReason "copyright"' do
201
- let(:data) { {"uploadStatus"=>"rejected"} }
202
- it { expect(status.infringes_copyright?).to be false }
203
- end
204
- end
205
-
206
- describe '#duplicate?' do
207
- context 'given fetching a status returns rejectionReason "duplicate"' do
208
- let(:data) { {"uploadStatus"=>"rejected", "rejectionReason"=>"duplicate"} }
209
- it { expect(status).to be_duplicate }
210
- end
211
-
212
- context 'given fetching a status does not return rejectionReason "duplicate"' do
213
- let(:data) { {"uploadStatus"=>"rejected"} }
214
- it { expect(status).not_to be_duplicate }
215
- end
216
- end
217
-
218
- describe '#inappropriate?' do
219
- context 'given fetching a status returns rejectionReason "inappropriate"' do
220
- let(:data) { {"uploadStatus"=>"rejected", "rejectionReason"=>"inappropriate"} }
221
- it { expect(status).to be_inappropriate }
222
- end
223
-
224
- context 'given fetching a status does not return rejectionReason "inappropriate"' do
225
- let(:data) { {"uploadStatus"=>"rejected"} }
226
- it { expect(status).not_to be_inappropriate }
227
- end
228
- end
229
-
230
- describe '#too_long?' do
231
- context 'given fetching a status returns rejectionReason "length"' do
232
- let(:data) { {"uploadStatus"=>"rejected", "rejectionReason"=>"length"} }
233
- it { expect(status).to be_too_long }
234
- end
235
-
236
- context 'given fetching a status does not return rejectionReason "length"' do
237
- let(:data) { {"uploadStatus"=>"rejected"} }
238
- it { expect(status).not_to be_too_long }
239
- end
240
- end
241
-
242
- describe '#violates_terms_of_use?' do
243
- context 'given fetching a status returns rejectionReason "termsOfUse"' do
244
- let(:data) { {"uploadStatus"=>"rejected", "rejectionReason"=>"termsOfUse"} }
245
- it { expect(status.violates_terms_of_use?).to be true }
246
- end
247
-
248
- context 'given fetching a status does not return rejectionReason "termsOfUse"' do
249
- let(:data) { {"uploadStatus"=>"rejected"} }
250
- it { expect(status.violates_terms_of_use?).to be false }
251
- end
252
- end
253
-
254
- describe '#infringes_trademark?' do
255
- context 'given fetching a status returns rejectionReason "trademark"' do
256
- let(:data) { {"uploadStatus"=>"rejected", "rejectionReason"=>"trademark"} }
257
- it { expect(status.infringes_trademark?).to be true }
258
- end
259
-
260
- context 'given fetching a status does not return rejectionReason "trademark"' do
261
- let(:data) { {"uploadStatus"=>"rejected"} }
262
- it { expect(status.infringes_trademark?).to be false }
263
- end
264
- end
265
-
266
- describe '#belongs_to_closed_account?' do
267
- context 'given fetching a status returns rejectionReason "uploaderAccountClosed"' do
268
- let(:data) { {"uploadStatus"=>"rejected", "rejectionReason"=>"uploaderAccountClosed"} }
269
- it { expect(status.belongs_to_closed_account?).to be true }
270
- end
271
-
272
- context 'given fetching a status does not return rejectionReason "uploaderAccountClosed"' do
273
- let(:data) { {"uploadStatus"=>"rejected"} }
274
- it { expect(status.belongs_to_closed_account?).to be false }
275
- end
276
- end
277
-
278
- describe '#belongs_to_suspended_account?' do
279
- context 'given fetching a status returns rejectionReason "uploaderAccountSuspended"' do
280
- let(:data) { {"uploadStatus"=>"rejected", "rejectionReason"=>"uploaderAccountSuspended"} }
281
- it { expect(status.belongs_to_suspended_account?).to be true }
282
- end
283
-
284
- context 'given fetching a status does not return rejectionReason "uploaderAccountSuspended"' do
285
- let(:data) { {"uploadStatus"=>"rejected"} }
286
- it { expect(status.belongs_to_suspended_account?).to be false }
287
- end
288
- end
289
-
290
- describe '#scheduled_at and #scheduled' do
291
- context 'given fetching a status returns "publishAt"' do
292
- let(:data) { {"uploadStatus"=>"uploaded", "privacyStatus"=>"private", "publishAt"=>"2014-04-22T19:14:49.000Z"} }
293
- it { expect(status).to be_scheduled }
294
- it { expect(status.scheduled_at.year).to be 2014 }
295
- end
296
-
297
- context 'given fetching a status does not returns "publishAt"' do
298
- let(:data) { {"uploadStatus"=>"uploaded", "privacyStatus"=>"private"} }
299
- it { expect(status).not_to be_scheduled }
300
- it { expect(status.scheduled_at).not_to be }
301
- end
302
- end
303
-
304
- describe '#licensed_as_creative_commons?' do
305
- context 'given fetching a status returns license "creativeCommon"' do
306
- let(:data) { {"uploadStatus"=>"uploaded", "license"=>"creativeCommon"} }
307
- it { expect(status).to be_licensed_as_creative_commons }
308
- end
309
-
310
- context 'given fetching a status does not return license "creativeCommon"' do
311
- let(:data) { {"uploadStatus"=>"uploaded"} }
312
- it { expect(status).not_to be_licensed_as_creative_commons }
313
- end
314
- end
315
-
316
- describe '#licensed_as_standard_youtube?' do
317
- context 'given fetching a status returns license "youtube"' do
318
- let(:data) { {"uploadStatus"=>"uploaded", "license"=>"youtube"} }
319
- it { expect(status).to be_licensed_as_standard_youtube }
320
- end
321
-
322
- context 'given fetching a status does not return license "youtube"' do
323
- let(:data) { {"uploadStatus"=>"uploaded"} }
324
- it { expect(status).not_to be_licensed_as_standard_youtube }
325
- end
326
- end
327
-
328
- describe '#embeddable?' do
329
- context 'given fetching a status returns "embeddable" true' do
330
- let(:data) { {"uploadStatus"=>"uploaded", "embeddable"=>true} }
331
- it { expect(status).to be_embeddable }
332
- end
333
-
334
- context 'given fetching a status returns "embeddable" false' do
335
- let(:data) { {"uploadStatus"=>"uploaded", "embeddable"=>false} }
336
- it { expect(status).not_to be_embeddable }
337
- end
338
- end
339
-
340
- describe '#has_public_stats_viewable?' do
341
- context 'given fetching a status returns "publicStatsViewable" true' do
342
- let(:data) { {"publicStatsViewable"=>true} }
343
- it { expect(status).to have_public_stats_viewable }
344
- end
345
-
346
- context 'given fetching a status returns "publicStatsViewable" false' do
347
- let(:data) { {"publicStatsViewable"=>false} }
348
- it { expect(status).not_to have_public_stats_viewable }
349
- end
350
- end
351
49
  end