yt 0.0.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +24 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +10 -0
  5. data/.yardopts +1 -0
  6. data/Gemfile +9 -0
  7. data/Gemfile.lock +78 -0
  8. data/HISTORY.md +37 -0
  9. data/MIT-LICENSE +20 -0
  10. data/README.md +325 -0
  11. data/Rakefile +1 -0
  12. data/TODO.md +11 -0
  13. data/bin/yt +31 -0
  14. data/lib/yt.rb +2 -0
  15. data/lib/yt/actions/delete.rb +27 -0
  16. data/lib/yt/actions/delete_all.rb +28 -0
  17. data/lib/yt/actions/insert.rb +29 -0
  18. data/lib/yt/actions/list.rb +65 -0
  19. data/lib/yt/actions/update.rb +25 -0
  20. data/lib/yt/associations.rb +33 -0
  21. data/lib/yt/associations/annotations.rb +15 -0
  22. data/lib/yt/associations/channels.rb +20 -0
  23. data/lib/yt/associations/details_sets.rb +20 -0
  24. data/lib/yt/associations/playlist_items.rb +26 -0
  25. data/lib/yt/associations/playlists.rb +22 -0
  26. data/lib/yt/associations/ratings.rb +39 -0
  27. data/lib/yt/associations/snippets.rb +20 -0
  28. data/lib/yt/associations/statuses.rb +14 -0
  29. data/lib/yt/associations/subscriptions.rb +38 -0
  30. data/lib/yt/associations/user_infos.rb +21 -0
  31. data/lib/yt/associations/videos.rb +14 -0
  32. data/lib/yt/collections/annotations.rb +43 -0
  33. data/lib/yt/collections/base.rb +13 -0
  34. data/lib/yt/collections/channels.rb +32 -0
  35. data/lib/yt/collections/details_sets.rb +32 -0
  36. data/lib/yt/collections/playlist_items.rb +50 -0
  37. data/lib/yt/collections/playlists.rb +56 -0
  38. data/lib/yt/collections/ratings.rb +32 -0
  39. data/lib/yt/collections/snippets.rb +38 -0
  40. data/lib/yt/collections/subscriptions.rb +67 -0
  41. data/lib/yt/collections/user_infos.rb +41 -0
  42. data/lib/yt/collections/videos.rb +32 -0
  43. data/lib/yt/config.rb +55 -0
  44. data/lib/yt/models/account.rb +68 -0
  45. data/lib/yt/models/annotation.rb +137 -0
  46. data/lib/yt/models/base.rb +11 -0
  47. data/lib/yt/models/channel.rb +17 -0
  48. data/lib/yt/models/configuration.rb +29 -0
  49. data/lib/yt/models/description.rb +98 -0
  50. data/lib/yt/models/details_set.rb +31 -0
  51. data/lib/yt/models/playlist.rb +65 -0
  52. data/lib/yt/models/playlist_item.rb +42 -0
  53. data/lib/yt/models/rating.rb +28 -0
  54. data/lib/yt/models/snippet.rb +48 -0
  55. data/lib/yt/models/status.rb +26 -0
  56. data/lib/yt/models/subscription.rb +35 -0
  57. data/lib/yt/models/user_info.rb +66 -0
  58. data/lib/yt/models/video.rb +16 -0
  59. data/lib/yt/utils/request.rb +85 -0
  60. data/lib/yt/version.rb +3 -0
  61. data/spec/associations/device_auth/channels_spec.rb +10 -0
  62. data/spec/associations/device_auth/details_sets_spec.rb +19 -0
  63. data/spec/associations/device_auth/playlist_items_spec.rb +42 -0
  64. data/spec/associations/device_auth/playlists_spec.rb +42 -0
  65. data/spec/associations/device_auth/ratings_spec.rb +30 -0
  66. data/spec/associations/device_auth/snippets_spec.rb +30 -0
  67. data/spec/associations/device_auth/subscriptions_spec.rb +27 -0
  68. data/spec/associations/device_auth/user_infos_spec.rb +10 -0
  69. data/spec/associations/device_auth/videos_spec.rb +22 -0
  70. data/spec/associations/no_auth/annotations_spec.rb +15 -0
  71. data/spec/associations/server_auth/channels_spec.rb +2 -0
  72. data/spec/associations/server_auth/details_sets_spec.rb +18 -0
  73. data/spec/associations/server_auth/playlist_items_spec.rb +17 -0
  74. data/spec/associations/server_auth/playlists_spec.rb +17 -0
  75. data/spec/associations/server_auth/ratings_spec.rb +2 -0
  76. data/spec/associations/server_auth/snippets_spec.rb +28 -0
  77. data/spec/associations/server_auth/subscriptions_spec.rb +2 -0
  78. data/spec/associations/server_auth/user_infos_spec.rb +2 -0
  79. data/spec/associations/server_auth/videos_spec.rb +20 -0
  80. data/spec/collections/annotations_spec.rb +6 -0
  81. data/spec/collections/channels_spec.rb +6 -0
  82. data/spec/collections/details_sets_spec.rb +6 -0
  83. data/spec/collections/playlist_items_spec.rb +23 -0
  84. data/spec/collections/playlists_spec.rb +26 -0
  85. data/spec/collections/ratings_spec.rb +6 -0
  86. data/spec/collections/snippets_spec.rb +6 -0
  87. data/spec/collections/subscriptions_spec.rb +30 -0
  88. data/spec/collections/user_infos_spec.rb +6 -0
  89. data/spec/collections/videos_spec.rb +6 -0
  90. data/spec/models/annotation_spec.rb +131 -0
  91. data/spec/models/channel_spec.rb +13 -0
  92. data/spec/models/description_spec.rb +94 -0
  93. data/spec/models/details_set_spec.rb +23 -0
  94. data/spec/models/playlist_item_spec.rb +32 -0
  95. data/spec/models/playlist_spec.rb +52 -0
  96. data/spec/models/rating_spec.rb +13 -0
  97. data/spec/models/snippet_spec.rb +66 -0
  98. data/spec/models/status_spec.rb +42 -0
  99. data/spec/models/subscription_spec.rb +37 -0
  100. data/spec/models/user_info_spec.rb +69 -0
  101. data/spec/models/video_spec.rb +13 -0
  102. data/spec/spec_helper.rb +15 -0
  103. data/spec/support/device_app.rb +16 -0
  104. data/spec/support/server_app.rb +10 -0
  105. data/yt.gemspec +30 -0
  106. metadata +209 -17
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+ require 'yt/models/status'
3
+
4
+ describe Yt::Status do
5
+ subject(:status) { Yt::Status.new data: data }
6
+
7
+ describe '#public?' do
8
+ context 'given fetching a status returns privacyStatus "public"' do
9
+ let(:data) { {"privacyStatus"=>"public"} }
10
+ it { expect(status).to be_public }
11
+ end
12
+
13
+ context 'given fetching a status does not returns privacyStatus "public"' do
14
+ let(:data) { {} }
15
+ it { expect(status).not_to be_public }
16
+ end
17
+ end
18
+
19
+ describe '#private?' do
20
+ context 'given fetching a status returns privacyStatus "private"' do
21
+ let(:data) { {"privacyStatus"=>"private"} }
22
+ it { expect(status).to be_private }
23
+ end
24
+
25
+ context 'given fetching a status does not returns privacyStatus "private"' do
26
+ let(:data) { {} }
27
+ it { expect(status).not_to be_private }
28
+ end
29
+ end
30
+
31
+ describe '#unlisted?' do
32
+ context 'given fetching a status returns privacyStatus "unlisted"' do
33
+ let(:data) { {"privacyStatus"=>"unlisted"} }
34
+ it { expect(status).to be_unlisted }
35
+ end
36
+
37
+ context 'given fetching a status does not returns privacyStatus "unlisted"' do
38
+ let(:data) { {} }
39
+ it { expect(status).not_to be_unlisted }
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+ require 'yt/models/subscription'
3
+
4
+ describe Yt::Subscription do
5
+ subject(:subscription) { Yt::Subscription.new id: id }
6
+
7
+ describe '#exists?' do
8
+ context 'given a subscription with an id' do
9
+ let(:id) { 'CBl6OoF0BpiV' }
10
+ it { expect(subscription).to exist }
11
+ end
12
+
13
+ context 'given a subscription without an id' do
14
+ let(:id) { nil }
15
+ it { expect(subscription).not_to exist }
16
+ end
17
+ end
18
+
19
+ describe '#delete' do
20
+ let(:id) { 'CBl6OoF0BpiV' }
21
+
22
+ context 'given an existing subscription' do
23
+ before { subscription.stub(:do_delete).and_yield }
24
+
25
+ it { expect(subscription.delete).to be_true }
26
+ it { expect{subscription.delete}.to change{subscription.exists?} }
27
+ end
28
+
29
+ context 'given an unknown subscription' do
30
+ let(:msg) { '{"error"=>{"errors"=>[{"reason"=>"subscriptionNotFound"}]}}' }
31
+ before { subscription.stub(:do_delete).and_raise Yt::RequestError, msg }
32
+
33
+ it { expect{subscription.delete}.to raise_error Yt::RequestError, msg }
34
+ it { expect{subscription.delete ignore_not_found: true}.not_to raise_error }
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+ require 'yt/models/user_info'
3
+ require 'yt/models/account'
4
+
5
+ describe Yt::UserInfo do
6
+ describe 'given fetching a user info returns' do
7
+ subject(:user_info) { Yt::UserInfo.new data: data }
8
+
9
+ context 'an id' do
10
+ let(:data) { {"id"=>"103024385"} }
11
+ it { expect(user_info.id).to eq '103024385' }
12
+ end
13
+
14
+ context 'an email' do
15
+ let(:data) { {"email"=>"user@example.com"} }
16
+ it { expect(user_info.email).to eq 'user@example.com' }
17
+ end
18
+
19
+ context 'a verified email field set to true' do
20
+ let(:data) { {"verified_email"=>true} }
21
+ it { expect(user_info).to have_verified_email }
22
+ end
23
+
24
+ context 'a verified email field set to false' do
25
+ let(:data) { {"verified_email"=>false} }
26
+ it { expect(user_info).not_to have_verified_email }
27
+ end
28
+
29
+ context 'a name' do
30
+ let(:data) { {"name"=>"User Example"} }
31
+ it { expect(user_info.name).to eq 'User Example'}
32
+ end
33
+
34
+ context 'a given name' do
35
+ let(:data) { {"given_name"=>"User"} }
36
+ it { expect(user_info.given_name).to eq 'User' }
37
+ end
38
+
39
+ context 'a family name' do
40
+ let(:data) { {"family_name"=>"Example"} }
41
+ it { expect(user_info.family_name).to eq 'Example' }
42
+ end
43
+
44
+ context 'a link' do
45
+ let(:data) { {"link"=>"https://plus.google.com/1234"} }
46
+ it { expect(user_info.profile_url).to eq 'https://plus.google.com/1234' }
47
+ end
48
+
49
+ context 'a picture' do
50
+ let(:data) { {"picture"=>"https://lh3.googleusercontent.com/photo.jpg"} }
51
+ it { expect(user_info.avatar_url).to eq 'https://lh3.googleusercontent.com/photo.jpg' }
52
+ end
53
+
54
+ context 'a gender' do
55
+ let(:data) { {"gender"=>"male"} }
56
+ it { expect(user_info.gender).to eq 'male' }
57
+ end
58
+
59
+ context 'a locale' do
60
+ let(:data) { {"locale"=>"en"} }
61
+ it { expect(user_info.locale).to eq 'en' }
62
+ end
63
+
64
+ context 'a Google App domain' do
65
+ let(:data) { {"hd"=>"example.com"} }
66
+ it { expect(user_info.hd).to eq 'example.com' }
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+ require 'yt/models/video'
3
+
4
+ describe Yt::Video do
5
+ subject(:video) { Yt::Video.new attrs }
6
+
7
+ describe '#snippet' do
8
+ context 'given fetching a video returns a snippet' do
9
+ let(:attrs) { {snippet: {"title"=>"Fullscreen Creator Platform"}} }
10
+ it { expect(video.snippet).to be_a Yt::Snippet }
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+
4
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
5
+ SimpleCov::Formatter::HTMLFormatter,
6
+ Coveralls::SimpleCov::Formatter
7
+ ]
8
+ SimpleCov.start
9
+
10
+ Dir['./spec/support/**/*'].each {|f| require f}
11
+
12
+ RSpec.configure do |config|
13
+ config.order = 'random'
14
+ config.treat_symbols_as_metadata_keys_with_true_values = true
15
+ end
@@ -0,0 +1,16 @@
1
+ require 'yt/config'
2
+ require 'yt/models/account'
3
+
4
+ RSpec.configure do |config|
5
+ config.before :all, scenario: :device_app do
6
+ unless Yt.configuration.scenario == :device_app
7
+ Yt.configure do |config|
8
+ config.scenario = :device_app
9
+ config.client_id = ENV['YT_TEST_APP_DEVICE_CLIENT_ID']
10
+ config.client_secret = ENV['YT_TEST_APP_DEVICE_CLIENT_SECRET']
11
+ # Note: makes sure ALL the scopes are authorized in YT_TEST_DEVICE_REFRESH_TOKEN
12
+ config.account = Yt::Account.new refresh_token: ENV['YT_TEST_DEVICE_REFRESH_TOKEN']
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,10 @@
1
+ require 'yt/config'
2
+
3
+ RSpec.configure do |config|
4
+ config.before :all, scenario: :server_app do
5
+ Yt.configure do |config|
6
+ config.scenario = :server_app
7
+ config.api_key = ENV['YT_TEST_APP_SERVER_API_KEY']
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'yt/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "yt"
8
+ spec.version = Yt::VERSION
9
+ spec.authors = ["Claudio Baccigalupo"]
10
+ spec.email = ["claudio@fullscreen.net"]
11
+ spec.description = %q{Youtube V3 API client.}
12
+ spec.summary = %q{Yt makes it easy to interact with Youtube V3 API by
13
+ providing a modular, intuitive and tested Ruby-style API.}
14
+ spec.homepage = "http://github.com/fullscreeninc/yt"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files`.split($/)
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_dependency 'activesupport' # For Hash.from_xml, String.classify ...
23
+
24
+ # For development / Code coverage / Documentation
25
+ spec.add_development_dependency 'bundler', '~> 1.3'
26
+ spec.add_development_dependency 'rspec'
27
+ spec.add_development_dependency 'rake'
28
+ spec.add_development_dependency 'yard'
29
+ spec.add_development_dependency 'coveralls'
30
+ end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
- - claudiob
7
+ - Claudio Baccigalupo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-23 00:00:00.000000000 Z
11
+ date: 2014-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: yajl-ruby
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.2'
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.2'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,28 +38,175 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
61
  version: '0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: yard
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: coveralls
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
53
95
  - !ruby/object:Gem::Version
54
96
  version: '0'
55
- description: Campfire Bot
97
+ description: Youtube V3 API client.
56
98
  email:
57
- - claudiob@gmail.com
58
- executables: []
99
+ - claudio@fullscreen.net
100
+ executables:
101
+ - yt
59
102
  extensions: []
60
103
  extra_rdoc_files: []
61
- files: []
62
- homepage: http://github.com/claudiob
104
+ files:
105
+ - ".gitignore"
106
+ - ".rspec"
107
+ - ".travis.yml"
108
+ - ".yardopts"
109
+ - Gemfile
110
+ - Gemfile.lock
111
+ - HISTORY.md
112
+ - MIT-LICENSE
113
+ - README.md
114
+ - Rakefile
115
+ - TODO.md
116
+ - bin/yt
117
+ - lib/yt.rb
118
+ - lib/yt/actions/delete.rb
119
+ - lib/yt/actions/delete_all.rb
120
+ - lib/yt/actions/insert.rb
121
+ - lib/yt/actions/list.rb
122
+ - lib/yt/actions/update.rb
123
+ - lib/yt/associations.rb
124
+ - lib/yt/associations/annotations.rb
125
+ - lib/yt/associations/channels.rb
126
+ - lib/yt/associations/details_sets.rb
127
+ - lib/yt/associations/playlist_items.rb
128
+ - lib/yt/associations/playlists.rb
129
+ - lib/yt/associations/ratings.rb
130
+ - lib/yt/associations/snippets.rb
131
+ - lib/yt/associations/statuses.rb
132
+ - lib/yt/associations/subscriptions.rb
133
+ - lib/yt/associations/user_infos.rb
134
+ - lib/yt/associations/videos.rb
135
+ - lib/yt/collections/annotations.rb
136
+ - lib/yt/collections/base.rb
137
+ - lib/yt/collections/channels.rb
138
+ - lib/yt/collections/details_sets.rb
139
+ - lib/yt/collections/playlist_items.rb
140
+ - lib/yt/collections/playlists.rb
141
+ - lib/yt/collections/ratings.rb
142
+ - lib/yt/collections/snippets.rb
143
+ - lib/yt/collections/subscriptions.rb
144
+ - lib/yt/collections/user_infos.rb
145
+ - lib/yt/collections/videos.rb
146
+ - lib/yt/config.rb
147
+ - lib/yt/models/account.rb
148
+ - lib/yt/models/annotation.rb
149
+ - lib/yt/models/base.rb
150
+ - lib/yt/models/channel.rb
151
+ - lib/yt/models/configuration.rb
152
+ - lib/yt/models/description.rb
153
+ - lib/yt/models/details_set.rb
154
+ - lib/yt/models/playlist.rb
155
+ - lib/yt/models/playlist_item.rb
156
+ - lib/yt/models/rating.rb
157
+ - lib/yt/models/snippet.rb
158
+ - lib/yt/models/status.rb
159
+ - lib/yt/models/subscription.rb
160
+ - lib/yt/models/user_info.rb
161
+ - lib/yt/models/video.rb
162
+ - lib/yt/utils/request.rb
163
+ - lib/yt/version.rb
164
+ - spec/associations/device_auth/channels_spec.rb
165
+ - spec/associations/device_auth/details_sets_spec.rb
166
+ - spec/associations/device_auth/playlist_items_spec.rb
167
+ - spec/associations/device_auth/playlists_spec.rb
168
+ - spec/associations/device_auth/ratings_spec.rb
169
+ - spec/associations/device_auth/snippets_spec.rb
170
+ - spec/associations/device_auth/subscriptions_spec.rb
171
+ - spec/associations/device_auth/user_infos_spec.rb
172
+ - spec/associations/device_auth/videos_spec.rb
173
+ - spec/associations/no_auth/annotations_spec.rb
174
+ - spec/associations/server_auth/channels_spec.rb
175
+ - spec/associations/server_auth/details_sets_spec.rb
176
+ - spec/associations/server_auth/playlist_items_spec.rb
177
+ - spec/associations/server_auth/playlists_spec.rb
178
+ - spec/associations/server_auth/ratings_spec.rb
179
+ - spec/associations/server_auth/snippets_spec.rb
180
+ - spec/associations/server_auth/subscriptions_spec.rb
181
+ - spec/associations/server_auth/user_infos_spec.rb
182
+ - spec/associations/server_auth/videos_spec.rb
183
+ - spec/collections/annotations_spec.rb
184
+ - spec/collections/channels_spec.rb
185
+ - spec/collections/details_sets_spec.rb
186
+ - spec/collections/playlist_items_spec.rb
187
+ - spec/collections/playlists_spec.rb
188
+ - spec/collections/ratings_spec.rb
189
+ - spec/collections/snippets_spec.rb
190
+ - spec/collections/subscriptions_spec.rb
191
+ - spec/collections/user_infos_spec.rb
192
+ - spec/collections/videos_spec.rb
193
+ - spec/models/annotation_spec.rb
194
+ - spec/models/channel_spec.rb
195
+ - spec/models/description_spec.rb
196
+ - spec/models/details_set_spec.rb
197
+ - spec/models/playlist_item_spec.rb
198
+ - spec/models/playlist_spec.rb
199
+ - spec/models/rating_spec.rb
200
+ - spec/models/snippet_spec.rb
201
+ - spec/models/status_spec.rb
202
+ - spec/models/subscription_spec.rb
203
+ - spec/models/user_info_spec.rb
204
+ - spec/models/video_spec.rb
205
+ - spec/spec_helper.rb
206
+ - spec/support/device_app.rb
207
+ - spec/support/server_app.rb
208
+ - yt.gemspec
209
+ homepage: http://github.com/fullscreeninc/yt
63
210
  licenses:
64
211
  - MIT
65
212
  metadata: {}
@@ -82,6 +229,51 @@ rubyforge_project:
82
229
  rubygems_version: 2.2.2
83
230
  signing_key:
84
231
  specification_version: 4
85
- summary: "..Campfire Bot"
86
- test_files: []
232
+ summary: Yt makes it easy to interact with Youtube V3 API by providing a modular,
233
+ intuitive and tested Ruby-style API.
234
+ test_files:
235
+ - spec/associations/device_auth/channels_spec.rb
236
+ - spec/associations/device_auth/details_sets_spec.rb
237
+ - spec/associations/device_auth/playlist_items_spec.rb
238
+ - spec/associations/device_auth/playlists_spec.rb
239
+ - spec/associations/device_auth/ratings_spec.rb
240
+ - spec/associations/device_auth/snippets_spec.rb
241
+ - spec/associations/device_auth/subscriptions_spec.rb
242
+ - spec/associations/device_auth/user_infos_spec.rb
243
+ - spec/associations/device_auth/videos_spec.rb
244
+ - spec/associations/no_auth/annotations_spec.rb
245
+ - spec/associations/server_auth/channels_spec.rb
246
+ - spec/associations/server_auth/details_sets_spec.rb
247
+ - spec/associations/server_auth/playlist_items_spec.rb
248
+ - spec/associations/server_auth/playlists_spec.rb
249
+ - spec/associations/server_auth/ratings_spec.rb
250
+ - spec/associations/server_auth/snippets_spec.rb
251
+ - spec/associations/server_auth/subscriptions_spec.rb
252
+ - spec/associations/server_auth/user_infos_spec.rb
253
+ - spec/associations/server_auth/videos_spec.rb
254
+ - spec/collections/annotations_spec.rb
255
+ - spec/collections/channels_spec.rb
256
+ - spec/collections/details_sets_spec.rb
257
+ - spec/collections/playlist_items_spec.rb
258
+ - spec/collections/playlists_spec.rb
259
+ - spec/collections/ratings_spec.rb
260
+ - spec/collections/snippets_spec.rb
261
+ - spec/collections/subscriptions_spec.rb
262
+ - spec/collections/user_infos_spec.rb
263
+ - spec/collections/videos_spec.rb
264
+ - spec/models/annotation_spec.rb
265
+ - spec/models/channel_spec.rb
266
+ - spec/models/description_spec.rb
267
+ - spec/models/details_set_spec.rb
268
+ - spec/models/playlist_item_spec.rb
269
+ - spec/models/playlist_spec.rb
270
+ - spec/models/rating_spec.rb
271
+ - spec/models/snippet_spec.rb
272
+ - spec/models/status_spec.rb
273
+ - spec/models/subscription_spec.rb
274
+ - spec/models/user_info_spec.rb
275
+ - spec/models/video_spec.rb
276
+ - spec/spec_helper.rb
277
+ - spec/support/device_app.rb
278
+ - spec/support/server_app.rb
87
279
  has_rdoc: