beef-youtube-g 0.4.9.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,42 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'pp'
4
+
5
+ require 'youtube_g'
6
+
7
+ class TestVideo < Test::Unit::TestCase
8
+ def test_should_extract_unique_id_from_video_id
9
+ video = YouTubeG::Model::Video.new(:video_id => "http://gdata.youtube.com/feeds/videos/ZTUVgYoeN_o")
10
+ assert_equal "ZTUVgYoeN_o", video.unique_id
11
+ end
12
+
13
+ def test_should_extract_unique_id_with_hypen_from_video_id
14
+ video = YouTubeG::Model::Video.new(:video_id => "http://gdata.youtube.com/feeds/videos/BDqs-OZWw9o")
15
+ assert_equal "BDqs-OZWw9o", video.unique_id
16
+ end
17
+
18
+ def test_should_have_related_videos
19
+ video = YouTubeG::Model::Video.new(:video_id => "http://gdata.youtube.com/feeds/videos/BDqs-OZWw9o")
20
+ response = video.related
21
+
22
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/BDqs-OZWw9o/related", response.feed_id
23
+ assert_equal 25, response.max_result_count
24
+ assert_equal 25, response.videos.length
25
+ assert_equal 1, response.offset
26
+ assert(response.total_result_count > 0)
27
+ assert_instance_of Time, response.updated_at
28
+ end
29
+
30
+ def test_should_have_response_videos
31
+ video = YouTubeG::Model::Video.new(:video_id => "http://gdata.youtube.com/feeds/videos/BDqs-OZWw9o")
32
+ response = video.responses
33
+
34
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/BDqs-OZWw9o/responses", response.feed_id
35
+ assert_equal 25, response.max_result_count
36
+ assert_equal 25, response.videos.length
37
+ assert_equal 1, response.offset
38
+ assert(response.total_result_count > 0)
39
+ assert_instance_of Time, response.updated_at
40
+ end
41
+
42
+ end
@@ -0,0 +1,138 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'pp'
4
+
5
+ require 'youtube_g'
6
+
7
+ class TestVideoSearch < Test::Unit::TestCase
8
+
9
+ def test_should_build_basic_query_url
10
+ request = YouTubeG::Request::VideoSearch.new(:query => "penguin")
11
+ assert_equal "http://gdata.youtube.com/feeds/api/videos?vq=penguin", request.url
12
+ end
13
+
14
+ def test_should_build_multiword_metasearch_query_url
15
+ request = YouTubeG::Request::VideoSearch.new(:query => 'christina ricci')
16
+ assert_equal "http://gdata.youtube.com/feeds/api/videos?vq=christina+ricci", request.url
17
+ end
18
+
19
+ def test_should_build_video_id_url
20
+ request = YouTubeG::Request::VideoSearch.new(:video_id => 'T7YazwP8GtY')
21
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/T7YazwP8GtY", request.url
22
+ end
23
+
24
+ def test_should_build_one_tag_querl_url
25
+ request = YouTubeG::Request::VideoSearch.new(:tags => ['panther'])
26
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/-/panther/", request.url
27
+ end
28
+
29
+ def test_should_build_multiple_tags_query_url
30
+ request = YouTubeG::Request::VideoSearch.new(:tags => ['tiger', 'leopard'])
31
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/-/tiger/leopard/", request.url
32
+ end
33
+
34
+ def test_should_build_one_category_query_url
35
+ request = YouTubeG::Request::VideoSearch.new(:categories => [:news])
36
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News/", request.url
37
+ end
38
+
39
+ def test_should_build_multiple_categories_query_url
40
+ request = YouTubeG::Request::VideoSearch.new(:categories => [:news, :sports])
41
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News/Sports/", request.url
42
+ end
43
+
44
+ def test_should_build_categories_and_tags_query_url
45
+ request = YouTubeG::Request::VideoSearch.new(:categories => [:news, :sports], :tags => ['soccer', 'football'])
46
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News/Sports/soccer/football/", request.url
47
+ end
48
+
49
+ def test_should_build_categories_and_tags_url_with_max_results
50
+ request = YouTubeG::Request::VideoSearch.new(:categories => [:music], :tags => ['classic', 'rock'], :max_results => 2)
51
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/-/Music/classic/rock/?max-results=2", request.url
52
+ end
53
+
54
+ def test_should_build_author_query_url
55
+ request = YouTubeG::Request::VideoSearch.new(:author => "davidguetta")
56
+ assert_equal "http://gdata.youtube.com/feeds/api/videos?author=davidguetta", request.url
57
+ end
58
+ # -- Standard Feeds --------------------------------------------------------------------------------
59
+
60
+ def test_should_build_url_for_most_viewed
61
+ request = YouTubeG::Request::StandardSearch.new(:most_viewed)
62
+ assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/most_viewed", request.url
63
+ end
64
+
65
+ def test_should_build_url_for_top_rated_for_today
66
+ request = YouTubeG::Request::StandardSearch.new(:top_rated, :time => :today)
67
+ assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?time=today", request.url
68
+ end
69
+
70
+ def test_should_build_url_for_most_viewed_offset_and_max_results_without_time
71
+ request = YouTubeG::Request::StandardSearch.new(:top_rated, :offset => 5, :max_results => 10)
72
+ assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?max-results=10&start-index=5", request.url
73
+ end
74
+
75
+ def test_should_build_url_for_most_viewed_offset_and_max_results_with_time
76
+ request = YouTubeG::Request::StandardSearch.new(:top_rated, :offset => 5, :max_results => 10, :time => :today)
77
+ assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?max-results=10&start-index=5&time=today", request.url
78
+ end
79
+
80
+ def test_should_raise_exception_for_invalid_type
81
+ assert_raise RuntimeError do
82
+ request = YouTubeG::Request::StandardSearch.new(:most_viewed_yo)
83
+ end
84
+ end
85
+
86
+ # -- Complex Video Queries -------------------------------------------------------------------------
87
+
88
+ def test_should_build_url_for_boolean_or_case_for_categories
89
+ request = YouTubeG::Request::VideoSearch.new(:categories => { :either => [:news, :sports] })
90
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports/", request.url
91
+ end
92
+
93
+ def test_should_build_url_for_boolean_or_and_exclude_case_for_categories
94
+ request = YouTubeG::Request::VideoSearch.new(:categories => { :either => [:news, :sports], :exclude => [:comedy] })
95
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports/-Comedy/", request.url
96
+ end
97
+
98
+ def test_should_build_url_for_exclude_case_for_tags
99
+ request = YouTubeG::Request::VideoSearch.new(:categories => { :either => [:news, :sports], :exclude => [:comedy] },
100
+ :tags => { :include => ['football'], :exclude => ['soccer'] })
101
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports/-Comedy/football/-soccer/", request.url
102
+ end
103
+
104
+ def test_should_build_url_for_either_case_for_tags
105
+ request = YouTubeG::Request::VideoSearch.new(:categories => { :either => [:news, :sports], :exclude => [:comedy] },
106
+ :tags => { :either => ['soccer', 'football', 'donkey'] })
107
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports/-Comedy/soccer%7Cfootball%7Cdonkey/", request.url
108
+ end
109
+
110
+ def test_should_build_url_for_query_search_with_categories_excluded
111
+ request = YouTubeG::Request::VideoSearch.new(:query => 'bench press',
112
+ :categories => { :exclude => [:comedy, :entertainment] },
113
+ :max_results => 10)
114
+ assert_equal "http://gdata.youtube.com/feeds/api/videos/-/-Comedy/-Entertainment/?max-results=10&vq=bench+press", request.url
115
+ end
116
+
117
+ # -- User Queries ---------------------------------------------------------------------------------
118
+
119
+ def test_should_build_url_for_videos_by_user
120
+ request = YouTubeG::Request::UserSearch.new(:user => 'liz')
121
+ assert_equal "http://gdata.youtube.com/feeds/api/users/liz/uploads", request.url
122
+ end
123
+
124
+ def test_should_build_url_for_videos_by_user_paginate_and_order
125
+ request = YouTubeG::Request::UserSearch.new(:user => 'liz', :offset => 20, :max_results => 10, :order_by => 'published')
126
+ assert_equal "http://gdata.youtube.com/feeds/api/users/liz/uploads?max-results=10&orderby=published&start-index=20", request.url
127
+ end
128
+
129
+ def test_should_build_url_for_favorite_videos_by_user
130
+ request = YouTubeG::Request::UserSearch.new(:favorites, :user => 'liz')
131
+ assert_equal "http://gdata.youtube.com/feeds/api/users/liz/favorites", request.url
132
+ end
133
+
134
+ def test_should_build_url_for_favorite_videos_by_user_paginate
135
+ request = YouTubeG::Request::UserSearch.new(:favorites, :user => 'liz', :offset => 20, :max_results => 10)
136
+ assert_equal "http://gdata.youtube.com/feeds/api/users/liz/favorites?max-results=10&start-index=20", request.url
137
+ end
138
+ end
@@ -0,0 +1,52 @@
1
+ spec = Gem::Specification.new do |s|
2
+ s.name = 'youtube-g'
3
+ s.version = '0.4.9.9'
4
+ s.date = '2008-10-16'
5
+ s.summary = 'An object-oriented Ruby wrapper for the YouTube GData API'
6
+ s.email = "ruby-youtube-library@googlegroups.com"
7
+ s.homepage = "http://youtube-g.rubyforge.org/"
8
+ s.description = "An object-oriented Ruby wrapper for the YouTube GData API"
9
+ s.has_rdoc = true
10
+ s.authors = ["Shane Vitarana", "Walter Korman", "Aman Gupta", "Filip H.F. Slagter"]
11
+
12
+ # ruby -rpp -e "pp Dir['**/*.*'].map"
13
+ s.files = [
14
+ "History.txt",
15
+ "lib/youtube_g/client.rb",
16
+ "lib/youtube_g/logger.rb",
17
+ "lib/youtube_g/model/author.rb",
18
+ "lib/youtube_g/model/category.rb",
19
+ "lib/youtube_g/model/contact.rb",
20
+ "lib/youtube_g/model/content.rb",
21
+ "lib/youtube_g/model/playlist.rb",
22
+ "lib/youtube_g/model/rating.rb",
23
+ "lib/youtube_g/model/thumbnail.rb",
24
+ "lib/youtube_g/model/user.rb",
25
+ "lib/youtube_g/model/video.rb",
26
+ "lib/youtube_g/parser.rb",
27
+ "lib/youtube_g/record.rb",
28
+ "lib/youtube_g/request/base_search.rb",
29
+ "lib/youtube_g/request/standard_search.rb",
30
+ "lib/youtube_g/request/user_search.rb",
31
+ "lib/youtube_g/request/video_search.rb",
32
+ "lib/youtube_g/request/video_upload.rb",
33
+ "lib/youtube_g/response/video_search.rb",
34
+ "lib/youtube_g.rb",
35
+ "Manifest.txt",
36
+ "README.txt",
37
+ "test/test_client.rb",
38
+ "test/test_video.rb",
39
+ "test/test_video_search.rb",
40
+ "TODO.txt",
41
+ "youtube-g.gemspec"
42
+ ]
43
+
44
+ s.test_files = [
45
+ "test/test_client.rb",
46
+ "test/test_video.rb",
47
+ "test/test_video_search.rb"
48
+ ]
49
+
50
+ s.rdoc_options = ["--main", "README.txt"]
51
+ s.extra_rdoc_files = ["History.txt", "README.txt"]
52
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: beef-youtube-g
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.9.9
5
+ platform: ruby
6
+ authors:
7
+ - Shane Vitarana
8
+ - Walter Korman
9
+ - Aman Gupta
10
+ - Filip H.F. Slagter
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+
15
+ date: 2008-10-16 00:00:00 -07:00
16
+ default_executable:
17
+ dependencies: []
18
+
19
+ description: An object-oriented Ruby wrapper for the YouTube GData API
20
+ email: ruby-youtube-library@googlegroups.com
21
+ executables: []
22
+
23
+ extensions: []
24
+
25
+ extra_rdoc_files:
26
+ - History.txt
27
+ - README.txt
28
+ files:
29
+ - History.txt
30
+ - lib/youtube_g/client.rb
31
+ - lib/youtube_g/logger.rb
32
+ - lib/youtube_g/model/author.rb
33
+ - lib/youtube_g/model/category.rb
34
+ - lib/youtube_g/model/contact.rb
35
+ - lib/youtube_g/model/content.rb
36
+ - lib/youtube_g/model/playlist.rb
37
+ - lib/youtube_g/model/rating.rb
38
+ - lib/youtube_g/model/thumbnail.rb
39
+ - lib/youtube_g/model/user.rb
40
+ - lib/youtube_g/model/video.rb
41
+ - lib/youtube_g/parser.rb
42
+ - lib/youtube_g/record.rb
43
+ - lib/youtube_g/request/base_search.rb
44
+ - lib/youtube_g/request/standard_search.rb
45
+ - lib/youtube_g/request/user_search.rb
46
+ - lib/youtube_g/request/video_search.rb
47
+ - lib/youtube_g/request/video_upload.rb
48
+ - lib/youtube_g/response/video_search.rb
49
+ - lib/youtube_g.rb
50
+ - Manifest.txt
51
+ - README.txt
52
+ - test/test_client.rb
53
+ - test/test_video.rb
54
+ - test/test_video_search.rb
55
+ - TODO.txt
56
+ - youtube-g.gemspec
57
+ has_rdoc: true
58
+ homepage: http://youtube-g.rubyforge.org/
59
+ post_install_message:
60
+ rdoc_options:
61
+ - --main
62
+ - README.txt
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: "0"
70
+ version:
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: "0"
76
+ version:
77
+ requirements: []
78
+
79
+ rubyforge_project:
80
+ rubygems_version: 1.2.0
81
+ signing_key:
82
+ specification_version: 2
83
+ summary: An object-oriented Ruby wrapper for the YouTube GData API
84
+ test_files:
85
+ - test/test_client.rb
86
+ - test/test_video.rb
87
+ - test/test_video_search.rb