yt 0.0.1 → 0.4.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.
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: