Class: GoogleVideo::VideoSearchRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/google-video.rb

Overview

Describes a search request for videos matching the specified parameters on Google Video.

Constant Summary collapse

SORT_OPTIONS =

the list of valid sort parameters.

[ 'relevance', 'rating', 'date', 'title' ]
DURATION_OPTIONS =

the list of valid duration parameters.

[ 'all', 'short', 'medium', 'long' ]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ VideoSearchRequest

Constructs a VideoSearchRequest with the supplied hash mapping attribute names to their respective values.



343
344
345
346
347
348
349
350
351
352
353
354
355
356
# File 'lib/google-video.rb', line 343

def initialize (params)
  params.each { |key, value| instance_variable_set('@' + key.to_s, value) }
  
  # validate request parameters
  if @sort && !SORT_OPTIONS.include?(@sort);
    raise ArgumentError.new("invalid sort parameter: #{@sort}")
  end
  if @duration && !DURATION_OPTIONS.include?(@duration)
    raise ArgumentError.new("invalid duration parameter: #{@duration}")
  end
  if !@query
    raise ArgumentError.new("invalid request, query parameter required")
  end
end

Instance Attribute Details

#durationObject (readonly)

optional: the duration by which to filter search results: one of ‘all’, ‘short’, ‘medium’ or ‘long’, defaulting to ‘all’.



333
334
335
# File 'lib/google-video.rb', line 333

def duration
  @duration
end

#pageObject (readonly)

optional: the page number of results sought, defaulting to 1.



339
340
341
# File 'lib/google-video.rb', line 339

def page
  @page
end

#queryObject (readonly)

required: the query string by which to search.



336
337
338
# File 'lib/google-video.rb', line 336

def query
  @query
end

#sortObject (readonly)

optional: the sort order for search results: one of ‘relevance’, ‘rating’, ‘date’, ‘title’, defaulting to ‘relevance’.



329
330
331
# File 'lib/google-video.rb', line 329

def sort
  @sort
end