simple_youtube 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.bundle/config ADDED
@@ -0,0 +1 @@
1
+ --- {}
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ Gemfile.lock
2
+ *.gem
3
+ .bundle
4
+ pkg
5
+
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/README.markdown ADDED
@@ -0,0 +1,179 @@
1
+ simple_youtube works with the YouTube v2 API to...
2
+
3
+ 1) Read(:get) YouTube data with no API Key
4
+
5
+ 2) Update(:put) YouTube video data using your Gdata API Key and OAuth. Pass in your OAuth token/secret. Watch Ryan B's great [Simple OmniAuth screencast](http://railscasts.com/episodes/241-simple-omniauth) for OAuth set up in Rails. Beforehand you'll also need to [authenticate and authorize your host to use the Google APIs](http://code.google.com/apis/accounts/docs/RegistrationForWebAppsAuto.html) to get a developer(x_gdata_key) key and host(host_secret) key
6
+
7
+ 3) Currently no Create or Delete functionality.
8
+
9
+ I have tried to cover most of the examples from the [YouTube API reference](http://code.google.com/apis/youtube/2.0/reference.html)
10
+
11
+ `gem install simple_youtube`
12
+
13
+ ## Video
14
+
15
+ ### :get a single video uid
16
+
17
+ [http://gdata.youtube.com/feeds/api/videos/wOzOc0xxJu8?v=2](http://gdata.youtube.com/feeds/api/videos/wOzOc0xxJu8?v=2)
18
+
19
+ video_uid = Youtube::Video.find(:scope => 'wOzOc0xxJu8', :params => {:v => '2'})
20
+ video_uid.entry.size # => 1
21
+ video_uid.entry[0].title # => "Michael Watford - So Into You (Dub Mix)"
22
+
23
+ ### :get top 5 'ruby on rails' videos
24
+
25
+ [http://gdata.youtube.com/feeds/api/videos?q=ruby+on+rails&max-results=5&v=2](http://gdata.youtube.com/feeds/api/videos?q=ruby+on+rails&max-results=5&v=2)
26
+
27
+ video_search = Youtube::Video.find(:params => {:q => 'ruby on rails', :"max-results" => '5', :v => '2'})
28
+ video_search.entry.size # => 5
29
+ video_search.title # => "YouTube Videos matching query: ruby on rails"
30
+ video_search.entry[3].link[1].href # => http://gdata.youtube.com/feeds/api/videos/UCB57Npj9U0/responses?v=2
31
+
32
+
33
+ ### :get related videos
34
+
35
+ [http://gdata.youtube.com/feeds/api/videos/rFVHjZYoq4Q/related?v=2](http://gdata.youtube.com/feeds/api/videos/rFVHjZYoq4Q/related?v=2)
36
+
37
+ video_related = Youtube::Video.find(:scope => 'rFVHjZYoq4Q', :type => 'related', :params => {:v => '2'})
38
+ video_related.entry.size # => 25
39
+ video_related.entry[24].author.uri # => http://gdata.youtube.com/feeds/api/users/neodracco
40
+
41
+
42
+ ### :get video responses
43
+
44
+ [http://gdata.youtube.com/feeds/api/videos/rFVHjZYoq4Q/responses?v=2](http://gdata.youtube.com/feeds/api/videos/rFVHjZYoq4Q/responses?v=2)
45
+
46
+ video_responses = Youtube::Video.find(:scope => 'rFVHjZYoq4Q', :type => 'responses', :params => {:v => '2'})
47
+ video_responses.entry[1].group.category # => Music
48
+
49
+
50
+ ### :get video comments
51
+
52
+ [http://gdata.youtube.com/feeds/api/videos/rFVHjZYoq4Q/comments?v=2](http://gdata.youtube.com/feeds/api/videos/rFVHjZYoq4Q/comments?v=2)
53
+
54
+ video_comments = Youtube::Video.find(:scope => 'rFVHjZYoq4Q', :type => 'comments', :params => {:v => '2'})
55
+ video_comments.entry[0].content # => Come up to my first ever e on this about 14-15 years ago, ahh too long...
56
+
57
+
58
+ ### :get top 11 videos in Comedy category/tag
59
+
60
+ [http://gdata.youtube.com/feeds/api/videos?category=Comedy&max-results=11&v=2](http://gdata.youtube.com/feeds/api/videos?category=Comedy&max-results=11&v=2)
61
+
62
+ video_category = Youtube::Video.find(:params => {:category => 'Comedy', :"max-results" => '11', :v => '2'})
63
+ video_category.entry.size # => 11
64
+ video_category.entry[9].category[2].term # => Harry Potter
65
+ video_category.entry[0].category[1].term # => Comedy
66
+
67
+
68
+ ### :get top 5 videos in Comedy category/tag, excluding Film category/tag
69
+
70
+ [http://gdata.youtube.com/feeds/api/videos?category=Comedy%2C-Film&max-results=5&v=2](http://gdata.youtube.com/feeds/api/videos?category=Comedy%2C-Film&max-results=5&v=2)
71
+
72
+ video_category_comedy_exclude_film = Youtube::Video.find(:params => {:category => 'Comedy,-Film', :"max-results" => '5', :v => '2'})
73
+ video_category_comedy_exclude_film.entry[1].category.size # => 18
74
+ video_category_comedy_exclude_film.entry[1].category.each { |category| puts 'film' if category.term.eql?('Film') } #=> nil
75
+
76
+
77
+ ### :get videos in david, beckham,(News or Sports) category/tags
78
+
79
+ [http://gdata.youtube.com/feeds/api/videos?category=david%2Cbeckham%2CNews%7CSports&v=2](http://gdata.youtube.com/feeds/api/videos?category=david%2Cbeckham%2CNews%7CSports&v=2)
80
+
81
+ video_category_david_beckham_news_or_sports = Youtube::Video.find(:params => {:category => 'david,beckham,News|Sports', :v => '2'})
82
+ video_category_david_beckham_news_or_sports.entry[7].category[1].label # => Sports
83
+ video_category_david_beckham_news_or_sports.entry[7].category[2].term # => david
84
+
85
+ ### :put an updated video
86
+
87
+ video_uid = "video_uid"
88
+ user_name = "user_name"
89
+ update_xml = IO.read('fixture/video_update.xml')
90
+ oauth_token = "oauth_token"
91
+ oauth_token_secret = "oauth_token_secret"
92
+ x_gdata_key = "x_gdata_key"
93
+ host = "www.host.com"
94
+ host_secret = "host_secret"
95
+
96
+ response = Youtube::Video.update(video_uid, user_name, update_xml, oauth_token, oauth_token_secret, x_gdata_key, host, host_secret)
97
+ response.code # => 200
98
+
99
+ ## Standardfeed
100
+
101
+ ### :get top rated videos from today
102
+
103
+ [http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?time=today&v=2](http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?time=today&v=2)
104
+
105
+ standardfeed_topratedtoday = Youtube::Standardfeed.find(:type => 'top_rated', :params => {:time => 'today', :v => '2'})
106
+ standardfeed_topratedtoday.entry[16].author.name = "ZOMGitsCriss"
107
+
108
+ ### :get top rated videos from jp
109
+
110
+ [http://gdata.youtube.com/feeds/api/standardfeeds/JP/top_rated?v=2](http://gdata.youtube.com/feeds/api/standardfeeds/JP/top_rated?v=2)
111
+
112
+ standardfeed_toprated_jp = Youtube::Standardfeed.find(:scope => 'JP', :type => 'top_rated', :params => {:v => '2'})
113
+ standardfeed_toprated_jp.id = "tag:youtube.com,2008:standardfeed:jp:top_rated"
114
+ standardfeed_toprated_jp.entry[1].link[4].href = "http://gdata.youtube.com/feeds/api/standardfeeds/jp/top_rated/v/BQ9YtJC-Kd8?v=2"
115
+
116
+
117
+ ### :get top rated comedy videos from jp
118
+
119
+ [http://gdata.youtube.com/feeds/api/standardfeeds/JP/top_rated?category=Comedy&max-results=11&v=2]("http://gdata.youtube.com/feeds/api/standardfeeds/jp/top_rated/v/7hYGkqc1gqE?v=2")
120
+
121
+ standardfeed_toprated_jp_comedy = Youtube::Standardfeed.find(:scope => 'JP', :type => 'top_rated', :params => {:category => 'Comedy', :"max-results" => '11', :v => '2'})
122
+ standardfeed_toprated_jp_comedy.entry[1].link[4].href = "http://gdata.youtube.com/feeds/api/standardfeeds/jp/top_rated/v/7hYGkqc1gqE?v=2"
123
+
124
+
125
+ ## User
126
+
127
+ ### :get a single user
128
+
129
+ [http://gdata.youtube.com/feeds/api/users/neodracco](http://gdata.youtube.com/feeds/api/users/neodracco)
130
+
131
+ user_search = Youtube::User.find(:scope => 'neodracco')
132
+ user_search.entry.size => 1
133
+
134
+ ### :get ionysis favourite videos
135
+
136
+ [http://gdata.youtube.com/feeds/api/users/ionysis/favorites?v=2](http://gdata.youtube.com/feeds/api/users/ionysis/favorites?v=2)
137
+
138
+ user_ionysis_favourites = Youtube::User.find(:scope => 'ionysis', :type => 'favorites', :params => {:v => '2'})
139
+ user_ionysis_favourites.entry[7].statistics.favoriteCount) = "9586"
140
+ user_ionysis_favourites.entry[7].rating[1].numLikes) = "2568"
141
+
142
+ ### :get cyanure1982 playlists
143
+
144
+ [http://gdata.youtube.com/feeds/api/users/cyanure1982/playlists?v=2](http://gdata.youtube.com/feeds/api/users/cyanure1982/playlists?v=2)
145
+
146
+ user_cyanure1982_playlists = Youtube::User.find(:scope => 'cyanure1982', :type => 'playlists', :params => {:v => '2'})
147
+ user_cyanure1982_playlists.entry[2].title) = "shinnenkai"
148
+
149
+ ### :get ionysis subscriptions
150
+
151
+ [http://gdata.youtube.com/feeds/api/users/ionysis/subscriptions?v=2](http://gdata.youtube.com/feeds/api/users/ionysis/subscriptions?v=2)
152
+
153
+ user_ionysis_subscriptions = Youtube::User.find(:scope => 'ionysis', :type => 'subscriptions', :params => {:v => '2'})
154
+ user_ionysis_subscriptions.entry[0].title) = "Videos published by : vinyljunkie07"
155
+
156
+ ### :get vinyljunkie07 contacts
157
+
158
+ [http://gdata.youtube.com/feeds/api/users/vinyljunkie07/contacts?v=2](http://gdata.youtube.com/feeds/api/users/vinyljunkie07/contacts?v=2)
159
+
160
+ user_vinyljunkie07_contacts = Youtube::User.find(:scope => 'vinyljunkie07', :type => 'contacts', :params => {:v => '2'})
161
+ user_vinyljunkie07_contacts.entry[18].id) "tag:youtube.com,2008:user:vinyljunkie07:contact:CrackerSchool"
162
+
163
+
164
+ ## Playlist
165
+
166
+ ### :get the cyanure1982 playlist - shinnenkai(D00BDE6AA710D50C)
167
+
168
+ [http://gdata.youtube.com/feeds/api/playlists/D00BDE6AA710D50C?max-results=14&v=2](http://gdata.youtube.com/feeds/api/playlists/D00BDE6AA710D50C?max-results=14&v=2)
169
+
170
+ playlist_cyanure1982 = Youtube::Playlist.find(:scope => 'D00BDE6AA710D50C', :params => {:"max-results" => '14', :v => '2'})
171
+ playlist_cyanure1982.entry.size = 14
172
+ playlist_cyanure1982.entry[7].group.keywords = "nu, jazz, club, house, Jazztronik, dj, Yukihiro, Fukutomi, Mondo, Grosso, Daishi, Dance, FreeTEMPO, FPM, KJM, Kentaro, Takizawa"
173
+
174
+ simple_youtube is derived from the active_youtube gem from the [Quark ruby blog](http://www.quarkruby.com/2008/2/12/active-youtube)
175
+
176
+ Big Thanks to the Quark crew for the inspiration!!!
177
+
178
+
179
+
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -1,2 +1,5 @@
1
- require File.dirname(__FILE__) + "/simple_youtube/activeyoutube"
2
- require File.dirname(__FILE__) + "/simple_youtube/youtube"
1
+ module SimpleYoutube
2
+ ROOT = File.dirname(__FILE__) + '/..'
3
+ end
4
+
5
+ Dir[SimpleYoutube::ROOT + '/lib/simple_youtube/**/*.rb'].each { |file| require file }
@@ -1,6 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'active_resource'
3
- require File.dirname(__FILE__) + "/entry_interface_shim"
3
+
4
+ require SimpleYoutube::ROOT + "/lib/simple_youtube/entry_interface_shim"
4
5
 
5
6
  class ActiveYoutube < ActiveResource::Base
6
7
 
@@ -14,6 +15,6 @@ class ActiveYoutube < ActiveResource::Base
14
15
  headers['Accept'] = "application/atom+xml"
15
16
  path = "#{prefix()}#{collection_name}#{'/' if scope}#{scope}#{'/' if type}#{type}#{query_string(query)}"
16
17
  instantiate_record(format.decode(connection.get(path, headers).body))
17
- end
18
+ end
18
19
 
19
20
  end
@@ -0,0 +1,4 @@
1
+ module SimpleYoutube
2
+ VERSION = '3.0.1'
3
+ end
4
+
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "simple_youtube/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'simple_youtube'
7
+ s.version = SimpleYoutube::VERSION
8
+ s.authors = ['James Shipton']
9
+ s.email = ['ionysis@gmail.com']
10
+ s.homepage = 'https://github.com/jamesshipton/simple_youtube'
11
+ s.summary = 'ActiveResource extension to Gdata Youtube API.'
12
+ s.description = 'ActiveResource extension to Gdata Youtube API, anonymous Reads, Updates using your API key and OAuth, no Create or Delete access.'
13
+
14
+ s.rubyforge_project = 'simple_youtube'
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- spec/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_dependency 'activeresource', '~> 3.1'
22
+ s.add_dependency 'oauth', '~> 0.4'
23
+
24
+ s.add_development_dependency 'fakeweb', '~> 1.3'
25
+ s.add_development_dependency 'rspec', '~> 2.6'
26
+ s.add_development_dependency 'debugger'
27
+ s.add_development_dependency 'rake'
28
+ end
@@ -1,22 +1,22 @@
1
1
  require 'fakeweb'
2
2
 
3
- module FakewebHelper
4
- # Make sure nothing gets out (IMPORTANT)
3
+ module FakewebHelper
4
+ # Make sure nothing gets out (IMPORTANT)
5
5
  FakeWeb.allow_net_connect = false
6
6
 
7
- # Turns a fixture file name into a full path
8
- def fixture_file(filename)
9
- return '' if filename == ''
10
- File.expand_path('./fixture/' + filename)
11
- end
7
+ # Turns a fixture file name into a full path
8
+ def fixture_file(filename)
9
+ return '' if filename == ''
10
+ "#{SimpleYoutube::ROOT}/spec/fixture/#{filename}"
11
+ end
12
12
 
13
- # Convenience methods for stubbing URLs to fixtures
14
- def stub_get(url, filename)
15
- FakeWeb.register_uri(:get, url, :response => fixture_file(filename))
13
+ # Convenience methods for stubbing URLs to fixtures
14
+ def stub_get(url, filename)
15
+ FakeWeb.register_uri(:get, url, :response => fixture_file(filename))
16
16
  end
17
-
17
+
18
18
  def stub_http_error(http_type, url, error_code, error_message)
19
- FakeWeb.register_uri(http_type, url, :status => [error_code, error_message])
19
+ FakeWeb.register_uri(http_type, url, :status => [error_code, error_message])
20
20
  end
21
21
 
22
22
  end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,8 @@
1
- require File.dirname(__FILE__) + "/../lib/" + "simple_youtube"
2
- require File.dirname(__FILE__) + "/fakeweb_helper"
1
+ require 'simple_youtube'
2
+
3
+ require 'fakeweb_helper'
3
4
 
4
5
  RSpec.configure do |c|
5
6
  c.treat_symbols_as_metadata_keys_with_true_values = true
6
- c.color_enabled = true
7
+ c.color_enabled = true
7
8
  end
@@ -1,31 +1,51 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'YoutubeUpdateSpec' do
4
-
5
- it "updates a video on youtube" do
6
-
7
- consumer = double("consumer")
8
- access_token = double("access_token")
9
- host = "www.host.com"
10
- host_secret = "host_secret"
11
- oauth_token = "oauth_token"
4
+ it 'updates a video on youtube' do
5
+ consumer = double('consumer')
6
+ access_token = double('access_token')
7
+ host = 'www.host.com'
8
+ host_secret = 'host_secret'
9
+ oauth_token = 'oauth_token'
12
10
  oauth_token_secret = "oauth_token_secret"
13
- x_gdata_key = "x_gdata_key"
14
- video_uid = "video_uid"
15
- user_name = "user_name"
16
- update_xml = IO.read('fixture/video_update.xml')
17
-
18
- OAuth::Consumer.should_receive(:new).with(host, host_secret, {:site=>"https://www.google.com", :request_token_path=>"/accounts/OAuthGetRequestToken", :authorize_path=>"/accounts/OAuthAuthorizeToken", :access_token_path=>"/accounts/OAuthGetAccessToken"}).and_return(consumer)
19
-
20
- OAuth::AccessToken.should_receive(:new).with(consumer, oauth_token, oauth_token_secret).and_return(access_token)
11
+ x_gdata_key = 'x_gdata_key'
12
+ video_uid = 'video_uid'
13
+ user_name = 'user_name'
14
+ update_xml = IO.read(SimpleYoutube::ROOT + '/spec/fixture/video_update.xml')
15
+
16
+ OAuth::Consumer.should_receive(:new).
17
+ with(
18
+ host,
19
+ host_secret,
20
+ { :site => 'https://www.google.com',
21
+ :request_token_path => '/accounts/OAuthGetRequestToken',
22
+ :authorize_path => '/accounts/OAuthAuthorizeToken',
23
+ :access_token_path => '/accounts/OAuthGetAccessToken' }).
24
+ and_return(consumer)
25
+
26
+ OAuth::AccessToken.should_receive(:new).
27
+ with(consumer, oauth_token, oauth_token_secret).
28
+ and_return(access_token)
29
+
30
+ access_token.should_receive(:put).
31
+ with(
32
+ "http://gdata.youtube.com/feeds/api/users/#{user_name}/uploads/#{video_uid}",
33
+ update_xml,
34
+ { 'Accept' => 'application/atom+xml',
35
+ 'Content-Type' => 'application/atom+xml',
36
+ 'X-GData-Key' => "key=#{x_gdata_key}" }).
37
+ and_return(Net::HTTPResponse.new(1.0, 200, 'OK'))
38
+
39
+ response = Youtube::Video.update(
40
+ video_uid,
41
+ user_name,
42
+ update_xml,
43
+ oauth_token,
44
+ oauth_token_secret,
45
+ x_gdata_key,
46
+ host,
47
+ host_secret)
21
48
 
22
- access_token.should_receive(:put).with("http://gdata.youtube.com/feeds/api/users/#{user_name}/uploads/#{video_uid}", update_xml, {'Accept' => 'application/atom+xml', 'Content-Type' => 'application/atom+xml', 'X-GData-Key' => x_gdata_key}).and_return(Net::HTTPResponse.new(1.0, 200, "OK")
23
- )
24
-
25
- response = Youtube::Video.update(video_uid, user_name, update_xml, oauth_token, oauth_token_secret, x_gdata_key, host, host_secret)
26
-
27
49
  response.code.should == 200
28
-
29
50
  end
30
-
31
51
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_youtube
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-05 00:00:00.000000000Z
12
+ date: 2013-03-13 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activeresource
16
- requirement: &70335748278960 !ruby/object:Gem::Requirement
16
+ requirement: &70351174725400 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70335748278960
24
+ version_requirements: *70351174725400
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: oauth
27
- requirement: &70335748278220 !ruby/object:Gem::Requirement
27
+ requirement: &70351174724540 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0.4'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70335748278220
35
+ version_requirements: *70351174724540
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: fakeweb
38
- requirement: &70335748277400 !ruby/object:Gem::Requirement
38
+ requirement: &70351174723540 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '1.3'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70335748277400
46
+ version_requirements: *70351174723540
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70335748276640 !ruby/object:Gem::Requirement
49
+ requirement: &70351174722920 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,29 @@ dependencies:
54
54
  version: '2.6'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70335748276640
57
+ version_requirements: *70351174722920
58
+ - !ruby/object:Gem::Dependency
59
+ name: debugger
60
+ requirement: &70351174722260 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70351174722260
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: &70351174721180 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70351174721180
58
80
  description: ActiveResource extension to Gdata Youtube API, anonymous Reads, Updates
59
81
  using your API key and OAuth, no Create or Delete access.
60
82
  email:
@@ -63,10 +85,17 @@ executables: []
63
85
  extensions: []
64
86
  extra_rdoc_files: []
65
87
  files:
88
+ - .bundle/config
89
+ - .gitignore
90
+ - Gemfile
91
+ - README.markdown
92
+ - Rakefile
93
+ - lib/simple_youtube.rb
66
94
  - lib/simple_youtube/activeyoutube.rb
67
95
  - lib/simple_youtube/entry_interface_shim.rb
96
+ - lib/simple_youtube/version.rb
68
97
  - lib/simple_youtube/youtube.rb
69
- - lib/simple_youtube.rb
98
+ - simple_youtube.gemspec
70
99
  - spec/fakeweb_helper.rb
71
100
  - spec/fixture/playlist_cyanure1982.xml
72
101
  - spec/fixture/standardfeed_toprated_jp.xml
@@ -102,14 +131,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
131
  - - ! '>='
103
132
  - !ruby/object:Gem::Version
104
133
  version: '0'
134
+ segments:
135
+ - 0
136
+ hash: 4037484550341055447
105
137
  required_rubygems_version: !ruby/object:Gem::Requirement
106
138
  none: false
107
139
  requirements:
108
140
  - - ! '>='
109
141
  - !ruby/object:Gem::Version
110
142
  version: '0'
143
+ segments:
144
+ - 0
145
+ hash: 4037484550341055447
111
146
  requirements: []
112
- rubyforge_project:
147
+ rubyforge_project: simple_youtube
113
148
  rubygems_version: 1.8.15
114
149
  signing_key:
115
150
  specification_version: 3