Sha256: 24d17dc59597d3f945d8f86c1e175f920299683fedb7be841c394f2d0c32d039
Contents?: true
Size: 1.25 KB
Versions: 3
Compression:
Stored size: 1.25 KB
Contents
module NetFlix class Request < Valuable RESERVED_CHARACTERS = /[^A-Za-z0-9\-\._~]/ has_value :http_method, :default => 'GET' has_value :url, :default => 'http://api.netflix.com/catalog/titles/index' has_value :parameters, :klass => HashWithIndifferentAccess, :default => {} def ordered_keys parameters.keys.sort end def parameter_string string = ordered_keys.map do |key| "#{key}=#{parameters[key]}" end.join('&') end def authenticator @auth ||= NetFlix::Authenticator.new(:request => self, :credentials => NetFlix.credentials) end def target URI.parse "#{url}?#{parameter_string}" end def log NetFlix.log(target.to_s) end def send authenticator.sign! log Net::HTTP.get(target) end def Request.encode(value) URI.escape( value, RESERVED_CHARACTERS ) if value end # validation stuff has_collection :errors def valid? errors.clear validate_http_method errors.empty? end def validate_http_method errors << "HTTP method must be POST or GET, but I got #{http_method}" unless ['POST', 'GET'].include? http_method end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
netflix4r-0.0.2 | lib/net_flix/request.rb |
netflix4r-0.0.1 | lib/net_flix/request.rb |
netflix4r-0.0.0 | lib/net_flix/request.rb |