public
Rubygem
Description: An object-oriented Ruby wrapper for the YouTube GData API
Homepage: http://groups.google.com/group/ruby-youtube-library
Clone URL: git://github.com/tmm1/youtube-g.git
made it backwards compatable with offset and max_results, so theyre still 
available for more custom queries people may need
dinsley (author)
Tue Jul 08 08:13:41 -0700 2008
commit  4783761a28feb0a3bb3cf5ef61cba4a45bb2c289
tree    6431bf9c42075c4576b8a7376e4f526e4a3d645d
parent  2bca90063341874652f8f0c4045eab5c5fabc18d
...
18
19
20
21
22
 
 
23
24
25
...
36
37
38
39
40
 
 
 
 
 
 
 
 
41
42
43
...
18
19
20
 
 
21
22
23
24
25
...
36
37
38
 
 
39
40
41
42
43
44
45
46
47
48
49
0
@@ -18,8 +18,8 @@ class YouTubeG
0
     # by visiting: http://code.google.com/apis/youtube/reference.html#Standard_feeds
0
     #
0
     # options<Hash> (optional):: Accepts the options of :time, :page (default is 1),
0
- # and :per_page (default is 25).
0
- #
0
+ # and :per_page (default is 25). :offset and :max_results
0
+ # can also be passed for a custom offset.
0
     #
0
     # If fetching videos by tags, categories, query:
0
     # params<Hash>:: Accepts the keys :tags, :categories, :query, :order_by,
0
@@ -36,8 +36,14 @@ class YouTubeG
0
     def videos_by(params, options={})
0
       request_params = params.respond_to?(:to_hash) ? params : options
0
       request_params[:page] ||= 1
0
- request_params[:max_results] = request_params[:per_page] || 25
0
- request_params[:offset] = calculate_offset(request_params[:page], request_params[:max_results] )
0
+
0
+ unless request_params[:max_results]
0
+ request_params[:max_results] = request_params[:per_page] || 25
0
+ end
0
+
0
+ unless request_params[:offset]
0
+ request_params[:offset] = calculate_offset(request_params[:page], request_params[:max_results] )
0
+ end
0
       
0
       if params.respond_to?(:to_hash) and not params[:user]
0
         request = YouTubeG::Request::VideoSearch.new(request_params)
...
22
23
24
 
 
 
 
 
 
 
 
 
 
 
 
 
25
26
27
...
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
0
@@ -22,6 +22,19 @@ class TestClient < Test::Unit::TestCase
0
     response.videos.each { |v| assert_valid_video v }
0
   end
0
   
0
+ def test_should_respond_to_a_basic_query_with_offset_and_max_results
0
+ response = @client.videos_by(:query => "penguin", :offset => 15, :max_results => 30)
0
+
0
+ assert_equal "http://gdata.youtube.com/feeds/api/videos", response.feed_id
0
+ assert_equal 30, response.max_result_count
0
+ assert_equal 30, response.videos.length
0
+ assert_equal 15, response.offset
0
+ assert(response.total_result_count > 100)
0
+ assert_instance_of Time, response.updated_at
0
+
0
+ response.videos.each { |v| assert_valid_video v }
0
+ end
0
+
0
   def test_should_respond_to_a_basic_query_with_paging
0
     response = @client.videos_by(:query => "penguin")
0
     assert_equal "http://gdata.youtube.com/feeds/api/videos", response.feed_id

Comments

    No one has commented yet.