brainzz 0.0.8 → 0.0.9

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +176 -0
  3. data/lib/brainzz.rb +29 -0
  4. data/lib/brainzz/commands/annotations_clickable_by_day_command.rb +7 -0
  5. data/lib/brainzz/commands/annotations_clickable_totals_command.rb +15 -0
  6. data/lib/brainzz/commands/annotations_clicked_by_day_command.rb +7 -0
  7. data/lib/brainzz/commands/annotations_clicked_totals_command.rb +15 -0
  8. data/lib/brainzz/commands/comment_count_by_day_command.rb +7 -0
  9. data/lib/brainzz/commands/comment_totals_command.rb +15 -0
  10. data/lib/brainzz/commands/dislike_count_by_day_command.rb +2 -11
  11. data/lib/brainzz/commands/like_count_by_day_command.rb +2 -11
  12. data/lib/brainzz/commands/share_count_by_day_command.rb +2 -11
  13. data/lib/brainzz/commands/subscribers_gained_by_day_command.rb +7 -0
  14. data/lib/brainzz/commands/subscribers_gained_totals_command.rb +15 -0
  15. data/lib/brainzz/commands/subscribers_lost_by_day_command.rb +7 -0
  16. data/lib/brainzz/commands/subscribers_lost_totals_command.rb +15 -0
  17. data/lib/brainzz/commands/video_stats_by_day_command.rb +12 -0
  18. data/lib/brainzz/commands/view_count_by_day_command.rb +2 -1
  19. data/lib/brainzz/commands/view_duration_totals_command.rb +15 -0
  20. data/lib/brainzz/commands/view_durations_by_day_command.rb +7 -0
  21. data/lib/brainzz/commands/view_percentage_totals_command.rb +15 -0
  22. data/lib/brainzz/commands/view_percentages_by_day_command.rb +7 -0
  23. data/lib/brainzz/core.rb +56 -0
  24. data/lib/brainzz/factories.rb +7 -0
  25. data/lib/brainzz/factories/annotations_clickable_count.rb +15 -0
  26. data/lib/brainzz/factories/annotations_clicked_count.rb +15 -0
  27. data/lib/brainzz/factories/comment_count.rb +14 -0
  28. data/lib/brainzz/factories/dislike_count.rb +2 -2
  29. data/lib/brainzz/factories/like_count.rb +2 -2
  30. data/lib/brainzz/factories/subscribers_gained_count.rb +15 -0
  31. data/lib/brainzz/factories/subscribers_lost_count.rb +15 -0
  32. data/lib/brainzz/factories/view_duration.rb +14 -0
  33. data/lib/brainzz/factories/view_percentage.rb +14 -0
  34. data/lib/brainzz/models/annotations_clickable_count.rb +18 -0
  35. data/lib/brainzz/models/annotations_clicked_count.rb +17 -0
  36. data/lib/brainzz/models/comment_count.rb +17 -0
  37. data/lib/brainzz/models/dislike_count.rb +1 -1
  38. data/lib/brainzz/models/like_count.rb +1 -1
  39. data/lib/brainzz/models/share_count.rb +1 -1
  40. data/lib/brainzz/models/subscribers_gained_count.rb +17 -0
  41. data/lib/brainzz/models/subscribers_lost_count.rb +17 -0
  42. data/lib/brainzz/models/view_duration.rb +18 -0
  43. data/lib/brainzz/models/view_percentage.rb +22 -0
  44. data/lib/brainzz/responses/annotations_clickable_response.rb +5 -0
  45. data/lib/brainzz/responses/annotations_clicked_response.rb +5 -0
  46. data/lib/brainzz/responses/comment_count_response.rb +5 -0
  47. data/lib/brainzz/responses/subscribers_gained_response.rb +5 -0
  48. data/lib/brainzz/responses/subscribers_lost_response.rb +5 -0
  49. data/lib/brainzz/responses/view_duration_response.rb +5 -0
  50. data/lib/brainzz/responses/view_percentage_response.rb +5 -0
  51. metadata +38 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5abb564de2201acc9856620e5c4ca87f8d8882a7
4
- data.tar.gz: 85deabd9d2a738dba856dbdda6197f9ae3391bb8
3
+ metadata.gz: efd20c526d7209efbeeae0f353ea0ab22aaf41ce
4
+ data.tar.gz: af768d8f3504b16fe18b926d3333dd8a5966626b
5
5
  SHA512:
6
- metadata.gz: af246fac3ae9511588b11122d62f6bfa7e7f463cd6435abb707d26b850dfea0e3ddcabb7af27a36605ce4446f7a5f7faec347f53452602d7b5f5fdf839813872
7
- data.tar.gz: bfd0284a5491991d24f556dd1fa80b2cce1b6b1ed1c3de887d5001788e6834a357005d6371e0987507387b6faf679d194a4508cdbadaa5a0f43371c129bd824b
6
+ metadata.gz: eb83f12a28b483bd2f4b4ac4c6382971b110b8c90a9a4e5dd2ddb24574d29d9c7d71e439241dc1e41cc9d19b08630a4c4105104b1d1ccd5247937c201d6d62b5
7
+ data.tar.gz: 705e8be75d0921872871e8c75ee3880145315e7b36df335e278cfa20b1386c962ac2289c54fff1c4beb94dc00de8fb3ed43bd91da9318aefea6aa693409decee
data/README.md CHANGED
@@ -184,6 +184,182 @@ Same as shares_by_day_for except date values are nil.
184
184
 
185
185
  Shares for date range are aggregated.
186
186
 
187
+ ### dislikes_by_day_for
188
+
189
+ #### Parameters
190
+
191
+ * video id (String)
192
+ * start date (DateTime)
193
+ * end date (DateTime)
194
+
195
+ #### Result
196
+
197
+ An array of `Brainzz::DislikeCount` objects ordered by date in ascending order.
198
+
199
+ ### dislike_totals_for
200
+
201
+ #### Parameters
202
+ Same as dislikes_by_day_for.
203
+
204
+ #### Result
205
+ Same as dislikes_by_day_for except date values are nil.
206
+
207
+ Dislikes for date range are aggregated.
208
+
209
+ ### comments_by_day_for
210
+
211
+ #### Parameters
212
+
213
+ * video id (String)
214
+ * start date (DateTime)
215
+ * end date (DateTime)
216
+
217
+ #### Result
218
+
219
+ An array of `Brainzz::CommentCount` objects ordered by date in ascending order.
220
+
221
+ ### comment_totals_for
222
+
223
+ #### Parameters
224
+ Same as comments_by_day_for.
225
+
226
+ #### Result
227
+ Same as comments_by_day_for except date values are nil.
228
+
229
+ Comments for date range are aggregated.
230
+
231
+ ### subscribers_gained_by_day_for
232
+
233
+ #### Parameters
234
+
235
+ * video id (String)
236
+ * start date (DateTime)
237
+ * end date (DateTime)
238
+
239
+ #### Result
240
+
241
+ An array of `Brainzz::SubscribersGainedCount` objects ordered by date in ascending order.
242
+
243
+ ### subscribers_gained_totals_for
244
+
245
+ #### Parameters
246
+ Same as subscribers_gained_by_day_for.
247
+
248
+ #### Result
249
+ Same as subscribers_gained_by_day_for except date values are nil.
250
+
251
+ SubscribersGained for date range are aggregated.
252
+
253
+ ### subscribers_lost_by_day_for
254
+
255
+ #### Parameters
256
+
257
+ * video id (String)
258
+ * start date (DateTime)
259
+ * end date (DateTime)
260
+
261
+ #### Result
262
+
263
+ An array of `Brainzz::SubscribersLostCount` objects ordered by date in ascending order.
264
+
265
+ ### subscribers_lost_totals_for
266
+
267
+ #### Parameters
268
+ Same as subscribers_lost_by_day_for.
269
+
270
+ #### Result
271
+ Same as subscribers_lost_by_day_for except date values are nil.
272
+
273
+ SubscribersLost for date range are aggregated.
274
+
275
+ ### annotations_clickable_by_day_for
276
+
277
+ #### Parameters
278
+
279
+ * video id (String)
280
+ * start date (DateTime)
281
+ * end date (DateTime)
282
+
283
+ #### Result
284
+
285
+ An array of `Brainzz::AnnotationsClickableCount` objects ordered by date in ascending order.
286
+
287
+ ### annotations_clickable_totals_for
288
+
289
+ #### Parameters
290
+ Same as annotations_clickable_by_day_for.
291
+
292
+ #### Result
293
+ Same as annotations_clickable_by_day_for except date values are nil.
294
+
295
+ AnnotationsClickable for date range are aggregated.
296
+
297
+ ### annotations_clicked_by_day_for
298
+
299
+ #### Parameters
300
+
301
+ * video id (String)
302
+ * start date (DateTime)
303
+ * end date (DateTime)
304
+
305
+ #### Result
306
+
307
+ An array of `Brainzz::AnnotationsClickedCount` objects ordered by date in ascending order.
308
+
309
+ ### annotations_clicked_totals_for
310
+
311
+ #### Parameters
312
+ Same as annotations_clicked_by_day_for.
313
+
314
+ #### Result
315
+ Same as annotations_clicked_by_day_for except date values are nil.
316
+
317
+ AnnotationsClicked for date range are aggregated.
318
+
319
+ ### view_percentages_by_day_for
320
+
321
+ #### Parameters
322
+
323
+ * video id (String)
324
+ * start date (DateTime)
325
+ * end date (DateTime)
326
+
327
+ #### Result
328
+
329
+ An array of `Brainzz::ViewPercentage` objects ordered by date in ascending order.
330
+
331
+ ### view_percentage_totals_for
332
+
333
+ #### Parameters
334
+ Same as view_percentages_by_day_for.
335
+
336
+ #### Result
337
+ Same as view_percentages_by_day_for except date values are nil.
338
+
339
+ ViewPercentages for date range are aggregated.
340
+
341
+ ### view_durations_by_day_for
342
+
343
+ #### Parameters
344
+
345
+ * video id (String)
346
+ * start date (DateTime)
347
+ * end date (DateTime)
348
+
349
+ #### Result
350
+
351
+ An array of `Brainzz::ViewDuration` objects ordered by date in ascending order.
352
+
353
+ ### view_duration_totals_for
354
+
355
+ #### Parameters
356
+ Same as view_durations_by_day_for.
357
+
358
+ #### Result
359
+ Same as view_durations_by_day_for except date values are nil.
360
+
361
+ ViewDurations for date range are aggregated.
362
+
187
363
  Factories
188
364
  ---------
189
365
 
data/lib/brainzz.rb CHANGED
@@ -15,6 +15,13 @@ require_relative 'brainzz/models/view_count'
15
15
  require_relative 'brainzz/models/like_count'
16
16
  require_relative 'brainzz/models/share_count'
17
17
  require_relative 'brainzz/models/dislike_count'
18
+ require_relative 'brainzz/models/comment_count'
19
+ require_relative 'brainzz/models/subscribers_gained_count'
20
+ require_relative 'brainzz/models/subscribers_lost_count'
21
+ require_relative 'brainzz/models/annotations_clickable_count'
22
+ require_relative 'brainzz/models/annotations_clicked_count'
23
+ require_relative 'brainzz/models/view_percentage'
24
+ require_relative 'brainzz/models/view_duration'
18
25
  require_relative 'brainzz/models/playlist_item'
19
26
  require_relative 'brainzz/models/playlist_items_wrapper'
20
27
 
@@ -33,6 +40,13 @@ require_relative 'brainzz/responses/view_count_response'
33
40
  require_relative 'brainzz/responses/like_count_response'
34
41
  require_relative 'brainzz/responses/share_count_response'
35
42
  require_relative 'brainzz/responses/dislike_count_response'
43
+ require_relative 'brainzz/responses/comment_count_response'
44
+ require_relative 'brainzz/responses/subscribers_gained_response'
45
+ require_relative 'brainzz/responses/subscribers_lost_response'
46
+ require_relative 'brainzz/responses/annotations_clickable_response'
47
+ require_relative 'brainzz/responses/annotations_clicked_response'
48
+ require_relative 'brainzz/responses/view_percentage_response'
49
+ require_relative 'brainzz/responses/view_duration_response'
36
50
 
37
51
  require_relative 'brainzz/commands/base_command'
38
52
  require_relative 'brainzz/commands/data_command'
@@ -40,6 +54,7 @@ require_relative 'brainzz/commands/playlist_items_command'
40
54
  require_relative 'brainzz/commands/video_details_command'
41
55
  require_relative 'brainzz/commands/analytics_command'
42
56
  require_relative 'brainzz/commands/video_stats_command'
57
+ require_relative 'brainzz/commands/video_stats_by_day_command'
43
58
  require_relative 'brainzz/commands/view_totals_command'
44
59
  require_relative 'brainzz/commands/view_count_by_day_command'
45
60
  require_relative 'brainzz/commands/like_totals_command'
@@ -48,6 +63,20 @@ require_relative 'brainzz/commands/share_totals_command'
48
63
  require_relative 'brainzz/commands/share_count_by_day_command'
49
64
  require_relative 'brainzz/commands/dislike_totals_command'
50
65
  require_relative 'brainzz/commands/dislike_count_by_day_command'
66
+ require_relative 'brainzz/commands/comment_totals_command'
67
+ require_relative 'brainzz/commands/comment_count_by_day_command'
68
+ require_relative 'brainzz/commands/subscribers_gained_totals_command'
69
+ require_relative 'brainzz/commands/subscribers_gained_by_day_command'
70
+ require_relative 'brainzz/commands/subscribers_lost_totals_command'
71
+ require_relative 'brainzz/commands/subscribers_lost_by_day_command'
72
+ require_relative 'brainzz/commands/annotations_clickable_totals_command'
73
+ require_relative 'brainzz/commands/annotations_clickable_by_day_command'
74
+ require_relative 'brainzz/commands/annotations_clicked_totals_command'
75
+ require_relative 'brainzz/commands/annotations_clicked_by_day_command'
76
+ require_relative 'brainzz/commands/view_percentage_totals_command'
77
+ require_relative 'brainzz/commands/view_percentages_by_day_command'
78
+ require_relative 'brainzz/commands/view_duration_totals_command'
79
+ require_relative 'brainzz/commands/view_durations_by_day_command'
51
80
 
52
81
  require_relative 'brainzz/core'
53
82
 
@@ -0,0 +1,7 @@
1
+ module Brainzz
2
+ class AnnotationsClickableByDayCommand < AnnotationsClickableTotalsCommand
3
+ extend VideoStatsByDayCommand
4
+
5
+ make_with_response AnnotationsClickableResponse
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ module Brainzz
2
+ class AnnotationsClickableTotalsCommand < VideoStatsCommand
3
+ make_with_response AnnotationsClickableResponse
4
+
5
+ class << self
6
+ private
7
+
8
+ def params(video_stats_params)
9
+ super.merge({
10
+ 'metrics' => 'annotationClickableImpressions',
11
+ })
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,7 @@
1
+ module Brainzz
2
+ class AnnotationsClickedByDayCommand < AnnotationsClickedTotalsCommand
3
+ extend VideoStatsByDayCommand
4
+
5
+ make_with_response AnnotationsClickedResponse
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ module Brainzz
2
+ class AnnotationsClickedTotalsCommand < VideoStatsCommand
3
+ make_with_response AnnotationsClickedResponse
4
+
5
+ class << self
6
+ private
7
+
8
+ def params(video_stats_params)
9
+ super.merge({
10
+ 'metrics' => 'annotationClicks',
11
+ })
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,7 @@
1
+ module Brainzz
2
+ class CommentCountByDayCommand < CommentTotalsCommand
3
+ extend VideoStatsByDayCommand
4
+
5
+ make_with_response CommentCountResponse
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ module Brainzz
2
+ class CommentTotalsCommand < VideoStatsCommand
3
+ make_with_response CommentCountResponse
4
+
5
+ class << self
6
+ private
7
+
8
+ def params(video_stats_params)
9
+ super.merge({
10
+ 'metrics' => 'comments',
11
+ })
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,16 +1,7 @@
1
1
  module Brainzz
2
2
  class DislikeCountByDayCommand < DislikeTotalsCommand
3
- make_with_response DislikeCountResponse
4
-
5
- class << self
6
- private
3
+ extend VideoStatsByDayCommand
7
4
 
8
- def params(video_stats_params)
9
- super.merge({
10
- 'dimensions' => 'day',
11
- 'sort' => 'day',
12
- })
13
- end
14
- end
5
+ make_with_response DislikeCountResponse
15
6
  end
16
7
  end
@@ -1,16 +1,7 @@
1
1
  module Brainzz
2
2
  class LikeCountByDayCommand < LikeTotalsCommand
3
- make_with_response LikeCountResponse
4
-
5
- class << self
6
- private
3
+ extend VideoStatsByDayCommand
7
4
 
8
- def params(video_stats_params)
9
- super.merge({
10
- 'dimensions' => 'day',
11
- 'sort' => 'day',
12
- })
13
- end
14
- end
5
+ make_with_response LikeCountResponse
15
6
  end
16
7
  end
@@ -1,16 +1,7 @@
1
1
  module Brainzz
2
2
  class ShareCountByDayCommand < ShareTotalsCommand
3
- make_with_response ShareCountResponse
4
-
5
- class << self
6
- private
3
+ extend VideoStatsByDayCommand
7
4
 
8
- def params(video_stats_params)
9
- super.merge({
10
- 'dimensions' => 'day',
11
- 'sort' => 'day',
12
- })
13
- end
14
- end
5
+ make_with_response ShareCountResponse
15
6
  end
16
7
  end
@@ -0,0 +1,7 @@
1
+ module Brainzz
2
+ class SubscribersGainedByDayCommand < SubscribersGainedTotalsCommand
3
+ extend VideoStatsByDayCommand
4
+
5
+ make_with_response SubscribersGainedResponse
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ module Brainzz
2
+ class SubscribersGainedTotalsCommand < VideoStatsCommand
3
+ make_with_response SubscribersGainedResponse
4
+
5
+ class << self
6
+ private
7
+
8
+ def params(video_stats_params)
9
+ super.merge({
10
+ 'metrics' => 'subscribersGained',
11
+ })
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,7 @@
1
+ module Brainzz
2
+ class SubscribersLostByDayCommand < SubscribersLostTotalsCommand
3
+ extend VideoStatsByDayCommand
4
+
5
+ make_with_response SubscribersLostResponse
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ module Brainzz
2
+ class SubscribersLostTotalsCommand < VideoStatsCommand
3
+ make_with_response SubscribersLostResponse
4
+
5
+ class << self
6
+ private
7
+
8
+ def params(video_stats_params)
9
+ super.merge({
10
+ 'metrics' => 'subscribersLost',
11
+ })
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ module Brainzz
2
+ module VideoStatsByDayCommand
3
+ private
4
+
5
+ def params(video_stats_params)
6
+ super.merge({
7
+ 'dimensions' => 'day',
8
+ 'sort' => 'day',
9
+ })
10
+ end
11
+ end
12
+ end
@@ -1,5 +1,7 @@
1
1
  module Brainzz
2
2
  class ViewCountByDayCommand < ViewTotalsCommand
3
+ extend VideoStatsByDayCommand
4
+
3
5
  make_with_response ViewCountResponse
4
6
 
5
7
  class << self
@@ -8,7 +10,6 @@ module Brainzz
8
10
  def params(video_stats_params)
9
11
  super.merge({
10
12
  'dimensions' => 'day,insightTrafficSourceType',
11
- 'sort' => 'day',
12
13
  })
13
14
  end
14
15
  end
@@ -0,0 +1,15 @@
1
+ module Brainzz
2
+ class ViewDurationTotalsCommand < VideoStatsCommand
3
+ make_with_response ViewDurationResponse
4
+
5
+ class << self
6
+ private
7
+
8
+ def params(video_stats_params)
9
+ super.merge({
10
+ 'metrics' => 'averageViewDuration',
11
+ })
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,7 @@
1
+ module Brainzz
2
+ class ViewDurationsByDayCommand < ViewDurationTotalsCommand
3
+ extend VideoStatsByDayCommand
4
+
5
+ make_with_response ViewDurationResponse
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ module Brainzz
2
+ class ViewPercentageTotalsCommand < VideoStatsCommand
3
+ make_with_response ViewPercentageResponse
4
+
5
+ class << self
6
+ private
7
+
8
+ def params(video_stats_params)
9
+ super.merge({
10
+ 'metrics' => 'averageViewPercentage',
11
+ })
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,7 @@
1
+ module Brainzz
2
+ class ViewPercentagesByDayCommand < ViewPercentageTotalsCommand
3
+ extend VideoStatsByDayCommand
4
+
5
+ make_with_response ViewPercentageResponse
6
+ end
7
+ end
data/lib/brainzz/core.rb CHANGED
@@ -41,5 +41,61 @@ module Brainzz
41
41
  def dislike_totals_for(video_id, start_date, end_date)
42
42
  DislikeTotalsCommand.execute video_id, start_date, end_date
43
43
  end
44
+
45
+ def comments_by_day_for(video_id, start_date, end_date)
46
+ CommentCountByDayCommand.execute video_id, start_date, end_date
47
+ end
48
+
49
+ def comment_totals_for(video_id, start_date, end_date)
50
+ CommentTotalsCommand.execute video_id, start_date, end_date
51
+ end
52
+
53
+ def subscribers_gained_by_day_for(video_id, start_date, end_date)
54
+ SubscribersGainedByDayCommand.execute video_id, start_date, end_date
55
+ end
56
+
57
+ def subscribers_gained_totals_for(video_id, start_date, end_date)
58
+ SubscribersGainedTotalsCommand.execute video_id, start_date, end_date
59
+ end
60
+
61
+ def subscribers_lost_by_day_for(video_id, start_date, end_date)
62
+ SubscribersLostByDayCommand.execute video_id, start_date, end_date
63
+ end
64
+
65
+ def subscribers_lost_totals_for(video_id, start_date, end_date)
66
+ SubscribersLostTotalsCommand.execute video_id, start_date, end_date
67
+ end
68
+
69
+ def annotations_clickable_by_day_for(video_id, start_date, end_date)
70
+ AnnotationsClickableByDayCommand.execute video_id, start_date, end_date
71
+ end
72
+
73
+ def annotations_clickable_totals_for(video_id, start_date, end_date)
74
+ AnnotationsClickableTotalsCommand.execute video_id, start_date, end_date
75
+ end
76
+
77
+ def annotations_clicked_by_day_for(video_id, start_date, end_date)
78
+ AnnotationsClickedByDayCommand.execute video_id, start_date, end_date
79
+ end
80
+
81
+ def annotations_clicked_totals_for(video_id, start_date, end_date)
82
+ AnnotationsClickedTotalsCommand.execute video_id, start_date, end_date
83
+ end
84
+
85
+ def view_percentages_by_day_for(video_id, start_date, end_date)
86
+ ViewPercentagesByDayCommand.execute video_id, start_date, end_date
87
+ end
88
+
89
+ def view_percentage_totals_for(video_id, start_date, end_date)
90
+ ViewPercentageTotalsCommand.execute video_id, start_date, end_date
91
+ end
92
+
93
+ def view_durations_by_day_for(video_id, start_date, end_date)
94
+ ViewDurationsByDayCommand.execute video_id, start_date, end_date
95
+ end
96
+
97
+ def view_duration_totals_for(video_id, start_date, end_date)
98
+ ViewDurationTotalsCommand.execute video_id, start_date, end_date
99
+ end
44
100
  end
45
101
  end
@@ -6,3 +6,10 @@ require_relative 'factories/view_count'
6
6
  require_relative 'factories/like_count'
7
7
  require_relative 'factories/share_count'
8
8
  require_relative 'factories/dislike_count'
9
+ require_relative 'factories/comment_count'
10
+ require_relative 'factories/subscribers_gained_count'
11
+ require_relative 'factories/subscribers_lost_count'
12
+ require_relative 'factories/annotations_clickable_count'
13
+ require_relative 'factories/annotations_clicked_count'
14
+ require_relative 'factories/view_percentage'
15
+ require_relative 'factories/view_duration'
@@ -0,0 +1,15 @@
1
+ FactoryGirl.define do
2
+ factory :brainzz_annotations_clickable_count,
3
+ :class => Brainzz::AnnotationsClickableCount do
4
+ annotations_clickable { rand(1_000_000) + 1 }
5
+ day { Time.parse (DateTime.now - rand(100)).strftime('%F') }
6
+
7
+ factory :brainzz_aggregate_annotations_clickable_count do
8
+ day nil
9
+ end
10
+
11
+ initialize_with do
12
+ Brainzz::AnnotationsClickableCount.new({})
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ FactoryGirl.define do
2
+ factory :brainzz_annotations_clicked_count,
3
+ :class => Brainzz::AnnotationsClickedCount do
4
+ annotations_clicked { rand(1_000_000) + 1 }
5
+ day { Time.parse (DateTime.now - rand(100)).strftime('%F') }
6
+
7
+ factory :brainzz_aggregate_annotations_clicked_count do
8
+ day nil
9
+ end
10
+
11
+ initialize_with do
12
+ Brainzz::AnnotationsClickedCount.new({})
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ FactoryGirl.define do
2
+ factory :brainzz_comment_count, :class => Brainzz::CommentCount do
3
+ comments { rand(1_000_000) + 1 }
4
+ day { Time.parse (DateTime.now - rand(100)).strftime('%F') }
5
+
6
+ factory :brainzz_aggregate_comment_count do
7
+ day nil
8
+ end
9
+
10
+ initialize_with do
11
+ Brainzz::CommentCount.new({})
12
+ end
13
+ end
14
+ end
@@ -1,7 +1,7 @@
1
1
  FactoryGirl.define do
2
2
  factory :brainzz_dislike_count, :class => Brainzz::DislikeCount do
3
- dislikes { rand(1_000_000) + 1 }
4
- day { Time.parse (DateTime.now - rand(100)).strftime('%F') }
3
+ dislikes { rand(1_000_000) + 1 }
4
+ day { Time.parse (DateTime.now - rand(100)).strftime('%F') }
5
5
 
6
6
  factory :brainzz_aggregate_dislike_count do
7
7
  day nil
@@ -1,7 +1,7 @@
1
1
  FactoryGirl.define do
2
2
  factory :brainzz_like_count, :class => Brainzz::LikeCount do
3
- likes { rand(1_000_000) + 1 }
4
- day { Time.parse (DateTime.now - rand(100)).strftime('%F') }
3
+ likes { rand(1_000_000) + 1 }
4
+ day { Time.parse (DateTime.now - rand(100)).strftime('%F') }
5
5
 
6
6
  factory :brainzz_aggregate_like_count do
7
7
  day nil
@@ -0,0 +1,15 @@
1
+ FactoryGirl.define do
2
+ factory :brainzz_subscribers_gained_count,
3
+ :class => Brainzz::SubscribersGainedCount do
4
+ subscribers_gained { rand(1_000_000) + 1 }
5
+ day { Time.parse (DateTime.now - rand(100)).strftime('%F') }
6
+
7
+ factory :brainzz_aggregate_subscribers_gained_count do
8
+ day nil
9
+ end
10
+
11
+ initialize_with do
12
+ Brainzz::SubscribersGainedCount.new({})
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ FactoryGirl.define do
2
+ factory :brainzz_subscribers_lost_count,
3
+ :class => Brainzz::SubscribersLostCount do
4
+ subscribers_lost { rand(1_000_000) + 1 }
5
+ day { Time.parse (DateTime.now - rand(100)).strftime('%F') }
6
+
7
+ factory :brainzz_aggregate_subscribers_lost_count do
8
+ day nil
9
+ end
10
+
11
+ initialize_with do
12
+ Brainzz::SubscribersLostCount.new({})
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ FactoryGirl.define do
2
+ factory :brainzz_view_duration, :class => Brainzz::ViewDuration do
3
+ duration { rand(1_000_000) + 1 }
4
+ day { Time.parse (DateTime.now - rand(100)).strftime('%F') }
5
+
6
+ factory :brainzz_aggregate_view_duration do
7
+ day nil
8
+ end
9
+
10
+ initialize_with do
11
+ Brainzz::ViewDuration.new({})
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ FactoryGirl.define do
2
+ factory :brainzz_view_percentage, :class => Brainzz::ViewPercentage do
3
+ percentage { rand(1_000_000) / 10000.0 }
4
+ day { Time.parse (DateTime.now - rand(100)).strftime('%F') }
5
+
6
+ factory :brainzz_aggregate_view_percentage do
7
+ day nil
8
+ end
9
+
10
+ initialize_with do
11
+ Brainzz::ViewPercentage.new({})
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ module Brainzz
2
+ class AnnotationsClickableCount < VideoStat
3
+ attr_accessor :annotations_clickable
4
+
5
+ def initialize(hash)
6
+ super
7
+
8
+ @annotations_clickable = normalize_stat(annotations_clickable_data)
9
+ end
10
+
11
+ private
12
+
13
+ def annotations_clickable_data
14
+ data && keys['annotationClickableImpressions'] &&
15
+ data[keys['annotationClickableImpressions']]
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ module Brainzz
2
+ class AnnotationsClickedCount < VideoStat
3
+ attr_accessor :annotations_clicked
4
+
5
+ def initialize(hash)
6
+ super
7
+
8
+ @annotations_clicked = normalize_stat(annotations_clicked_data)
9
+ end
10
+
11
+ private
12
+
13
+ def annotations_clicked_data
14
+ data && keys['annotationClicks'] && data[keys['annotationClicks']]
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Brainzz
2
+ class CommentCount < VideoStat
3
+ attr_accessor :comments
4
+
5
+ def initialize(hash)
6
+ super
7
+
8
+ @comments = normalize_stat(comment_data)
9
+ end
10
+
11
+ private
12
+
13
+ def comment_data
14
+ data && keys['comments'] && data[keys['comments']]
15
+ end
16
+ end
17
+ end
@@ -5,7 +5,7 @@ module Brainzz
5
5
  def initialize(hash)
6
6
  super
7
7
 
8
- @dislikes = normalize_stat(dislikes_data)
8
+ @dislikes = normalize_stat(dislikes_data)
9
9
  end
10
10
 
11
11
  private
@@ -5,7 +5,7 @@ module Brainzz
5
5
  def initialize(hash)
6
6
  super
7
7
 
8
- @likes = normalize_stat(likes_data)
8
+ @likes = normalize_stat(likes_data)
9
9
  end
10
10
 
11
11
  private
@@ -5,7 +5,7 @@ module Brainzz
5
5
  def initialize(hash)
6
6
  super
7
7
 
8
- @shares = normalize_stat(shares_data)
8
+ @shares = normalize_stat(shares_data)
9
9
  end
10
10
 
11
11
  private
@@ -0,0 +1,17 @@
1
+ module Brainzz
2
+ class SubscribersGainedCount < VideoStat
3
+ attr_accessor :subscribers_gained
4
+
5
+ def initialize(hash)
6
+ super
7
+
8
+ @subscribers_gained = normalize_stat(subscribers_gained_data)
9
+ end
10
+
11
+ private
12
+
13
+ def subscribers_gained_data
14
+ data && keys['subscribersGained'] && data[keys['subscribersGained']]
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Brainzz
2
+ class SubscribersLostCount < VideoStat
3
+ attr_accessor :subscribers_lost
4
+
5
+ def initialize(hash)
6
+ super
7
+
8
+ @subscribers_lost = normalize_stat(subscribers_lost_data)
9
+ end
10
+
11
+ private
12
+
13
+ def subscribers_lost_data
14
+ data && keys['subscribersLost'] && data[keys['subscribersLost']]
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ module Brainzz
2
+ class ViewDuration < VideoStat
3
+ attr_accessor :duration
4
+
5
+ def initialize(hash)
6
+ super
7
+
8
+ @duration = normalize_stat(duration_data)
9
+ end
10
+
11
+ private
12
+
13
+ def duration_data
14
+ data && keys['averageViewDuration'] &&
15
+ data[keys['averageViewDuration']]
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ module Brainzz
2
+ class ViewPercentage < VideoStat
3
+ attr_accessor :percentage
4
+
5
+ def initialize(hash)
6
+ super
7
+
8
+ @percentage = normalize_stat(percentage_data)
9
+ end
10
+
11
+ private
12
+
13
+ def normalize_stat(stat)
14
+ stat.to_f if stat
15
+ end
16
+
17
+ def percentage_data
18
+ data && keys['averageViewPercentage'] &&
19
+ data[keys['averageViewPercentage']]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,5 @@
1
+ module Brainzz
2
+ class AnnotationsClickableResponse < VideoStatsResponse
3
+ make_with_model AnnotationsClickableCount
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Brainzz
2
+ class AnnotationsClickedResponse < VideoStatsResponse
3
+ make_with_model AnnotationsClickedCount
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Brainzz
2
+ class CommentCountResponse < VideoStatsResponse
3
+ make_with_model CommentCount
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Brainzz
2
+ class SubscribersGainedResponse < VideoStatsResponse
3
+ make_with_model SubscribersGainedCount
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Brainzz
2
+ class SubscribersLostResponse < VideoStatsResponse
3
+ make_with_model SubscribersLostCount
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Brainzz
2
+ class ViewDurationResponse < VideoStatsResponse
3
+ make_with_model ViewDuration
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Brainzz
2
+ class ViewPercentageResponse < VideoStatsResponse
3
+ make_with_model ViewPercentage
4
+ end
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brainzz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Travis Herrick
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-04-28 00:00:00.000000000 Z
13
+ date: 2015-05-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday
@@ -179,7 +179,13 @@ files:
179
179
  - README.md
180
180
  - lib/brainzz.rb
181
181
  - lib/brainzz/commands/analytics_command.rb
182
+ - lib/brainzz/commands/annotations_clickable_by_day_command.rb
183
+ - lib/brainzz/commands/annotations_clickable_totals_command.rb
184
+ - lib/brainzz/commands/annotations_clicked_by_day_command.rb
185
+ - lib/brainzz/commands/annotations_clicked_totals_command.rb
182
186
  - lib/brainzz/commands/base_command.rb
187
+ - lib/brainzz/commands/comment_count_by_day_command.rb
188
+ - lib/brainzz/commands/comment_totals_command.rb
183
189
  - lib/brainzz/commands/data_command.rb
184
190
  - lib/brainzz/commands/dislike_count_by_day_command.rb
185
191
  - lib/brainzz/commands/dislike_totals_command.rb
@@ -188,42 +194,72 @@ files:
188
194
  - lib/brainzz/commands/playlist_items_command.rb
189
195
  - lib/brainzz/commands/share_count_by_day_command.rb
190
196
  - lib/brainzz/commands/share_totals_command.rb
197
+ - lib/brainzz/commands/subscribers_gained_by_day_command.rb
198
+ - lib/brainzz/commands/subscribers_gained_totals_command.rb
199
+ - lib/brainzz/commands/subscribers_lost_by_day_command.rb
200
+ - lib/brainzz/commands/subscribers_lost_totals_command.rb
191
201
  - lib/brainzz/commands/video_details_command.rb
202
+ - lib/brainzz/commands/video_stats_by_day_command.rb
192
203
  - lib/brainzz/commands/video_stats_command.rb
193
204
  - lib/brainzz/commands/view_count_by_day_command.rb
205
+ - lib/brainzz/commands/view_duration_totals_command.rb
206
+ - lib/brainzz/commands/view_durations_by_day_command.rb
207
+ - lib/brainzz/commands/view_percentage_totals_command.rb
208
+ - lib/brainzz/commands/view_percentages_by_day_command.rb
194
209
  - lib/brainzz/commands/view_totals_command.rb
195
210
  - lib/brainzz/core.rb
196
211
  - lib/brainzz/enums/view_source_enum.rb
197
212
  - lib/brainzz/factories.rb
213
+ - lib/brainzz/factories/annotations_clickable_count.rb
214
+ - lib/brainzz/factories/annotations_clicked_count.rb
215
+ - lib/brainzz/factories/comment_count.rb
198
216
  - lib/brainzz/factories/dislike_count.rb
199
217
  - lib/brainzz/factories/like_count.rb
200
218
  - lib/brainzz/factories/playlist_item.rb
201
219
  - lib/brainzz/factories/playlist_items_wrapper.rb
202
220
  - lib/brainzz/factories/sequences.rb
203
221
  - lib/brainzz/factories/share_count.rb
222
+ - lib/brainzz/factories/subscribers_gained_count.rb
223
+ - lib/brainzz/factories/subscribers_lost_count.rb
204
224
  - lib/brainzz/factories/video.rb
205
225
  - lib/brainzz/factories/view_count.rb
226
+ - lib/brainzz/factories/view_duration.rb
227
+ - lib/brainzz/factories/view_percentage.rb
228
+ - lib/brainzz/models/annotations_clickable_count.rb
229
+ - lib/brainzz/models/annotations_clicked_count.rb
206
230
  - lib/brainzz/models/base_model.rb
231
+ - lib/brainzz/models/comment_count.rb
207
232
  - lib/brainzz/models/dislike_count.rb
208
233
  - lib/brainzz/models/like_count.rb
209
234
  - lib/brainzz/models/playlist_item.rb
210
235
  - lib/brainzz/models/playlist_items_wrapper.rb
211
236
  - lib/brainzz/models/share_count.rb
237
+ - lib/brainzz/models/subscribers_gained_count.rb
238
+ - lib/brainzz/models/subscribers_lost_count.rb
212
239
  - lib/brainzz/models/video.rb
213
240
  - lib/brainzz/models/video_stat.rb
214
241
  - lib/brainzz/models/view_count.rb
242
+ - lib/brainzz/models/view_duration.rb
243
+ - lib/brainzz/models/view_percentage.rb
215
244
  - lib/brainzz/params/analytics_params.rb
216
245
  - lib/brainzz/params/base_params.rb
217
246
  - lib/brainzz/params/playlist_items_params.rb
218
247
  - lib/brainzz/params/video_details_params.rb
219
248
  - lib/brainzz/params/video_stats_params.rb
249
+ - lib/brainzz/responses/annotations_clickable_response.rb
250
+ - lib/brainzz/responses/annotations_clicked_response.rb
251
+ - lib/brainzz/responses/comment_count_response.rb
220
252
  - lib/brainzz/responses/dislike_count_response.rb
221
253
  - lib/brainzz/responses/like_count_response.rb
222
254
  - lib/brainzz/responses/playlist_items_response.rb
223
255
  - lib/brainzz/responses/share_count_response.rb
256
+ - lib/brainzz/responses/subscribers_gained_response.rb
257
+ - lib/brainzz/responses/subscribers_lost_response.rb
224
258
  - lib/brainzz/responses/video_details_response.rb
225
259
  - lib/brainzz/responses/video_stats_response.rb
226
260
  - lib/brainzz/responses/view_count_response.rb
261
+ - lib/brainzz/responses/view_duration_response.rb
262
+ - lib/brainzz/responses/view_percentage_response.rb
227
263
  - lib/brainzz/services/access_token_service.rb
228
264
  - license/gplv3.md
229
265
  - license/lgplv3.md