class Tmdby::Wrapper

Attributes

clean_params[RW]
params[RW]
post_params[RW]
root[RW]

Public Class Methods

add_default_language() click to toggle source

Add default language to parameters if it has been setted

# File lib/tmdby/wrapper.rb, line 26
def self.add_default_language
  default_language = Tmdby::Setup.default_language

  if default_language && !@params.key?('language') && !@params.key?(:language)
    @params['language'] = default_language
  end
end
fetch(route = "", *args) click to toggle source
# File lib/tmdby/wrapper.rb, line 48
def self.fetch(route = "", *args)

  if args.length == 0
    options = {}
  elsif args.length == 1
    options = args[0]
  elsif args.length == 2
    options = args[1].merge(args[0])
  end

  method = options.fetch(:method, 'get')
  post_params = options.fetch(:post_params, [])
  authorized_params = options.fetch(:authorized_params, [])
  disable_unknown_params = options.fetch(:disable_unknown_params, false)
  [:method, :post_params, :authorized_params, :disable_unknown_params].each do |key|
    options.delete(key)
  end

  @params = options

  self.add_default_language if authorized_params.include?'language'
  self.verify_params authorized_params unless disable_unknown_params or authorized_params.include?"append_to_response"
  self.handle_post_params post_params

  Tmdby::Client.api_call method, self.route(route), @clean_params, @post_params
end
handle_post_params(post_param_names) click to toggle source

Dispatch params in 2 hashes : one for api url parameters, another on for api post parameters

# File lib/tmdby/wrapper.rb, line 35
def self.handle_post_params(post_param_names)
  @clean_params = {}
  @post_params  = {}

  @params.each do |k, v|
    if post_param_names.include?k or post_param_names.include?k.to_s
      @post_params[k.to_s] = v if v
    else
      @clean_params[k.to_s] = v if v
    end
  end
end
route(route) click to toggle source

Compute api route

# File lib/tmdby/wrapper.rb, line 8
def self.route(route)
  route = route.to_s if route.is_a? Integer

  if @root and not @root.empty? and not route.empty?
    "#{@root}/#{route}"
  else
    "#{@root}#{route}"
  end
end
verify_params(authorized) click to toggle source

Verify that every parameter is allowed by the api

# File lib/tmdby/wrapper.rb, line 19
def self.verify_params(authorized)
  @params.each do |key, _|
    raise RuntimeError, "Unknown argument : #{key}\nAuthorized arguments : #{authorized.join(', ')}" if not authorized.include? key.to_s
  end
end