beef-youtube-g 0.4.9.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.
@@ -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