class Cloudhdr::Base

Public Class Methods

api_key() click to toggle source
# File lib/cloudhdr/base.rb, line 4
def self.api_key
  Cloudhdr.api_key
end
base_url() click to toggle source
# File lib/cloudhdr/base.rb, line 8
def self.base_url
  Cloudhdr.base_url
end
decode(content, format=nil) click to toggle source
# File lib/cloudhdr/base.rb, line 30
def self.decode(content, format=nil)
  begin
    if content.is_a?(String)
      if format.to_s == 'xml'
        Hash.from_xml(content)
      else
        ActiveSupport::JSON.decode(content)
      end
    else
      content
    end
  rescue Exception => e
    content
  end   
end
encode(content, format=nil) click to toggle source
# File lib/cloudhdr/base.rb, line 12
def self.encode(content, format=nil)
  if content.is_a?(String)
    content
  elsif format.to_s == 'xml'
    if content.is_a?(Hash) && content.keys.size == 1
      content[content.keys.first].to_xml(:root => content.keys.first)
    else
      content.to_xml
    end
  else
    content.to_json
  end
end

Protected Class Methods

apply_api_key(params, format=nil) click to toggle source
# File lib/cloudhdr/base.rb, line 52
def self.apply_api_key(params, format=nil)
  if api_key
    decoded_params = decode(params, format).with_indifferent_access

    if decoded_params[:api_request]
      decoded_params[:api_request] = decoded_params[:api_request].with_indifferent_access
    end

    if format.to_s == 'xml'
      if !(decoded_params[:api_request] && decoded_params[:api_request][:api_key])
        decoded_params[:api_request] ||= {}.with_indifferent_access
        decoded_params[:api_request][:api_key] = api_key
      end
    else
      decoded_params['api_key'] = api_key unless decoded_params['api_key']
    end

    decoded_params
  else
    params
  end
end
merge_params(options, params) click to toggle source
# File lib/cloudhdr/base.rb, line 75
def self.merge_params(options, params)
  if options[:params]
    options[:params] = options[:params].merge(params)
    options
  else
    options.merge(:params => params)
  end
end

Public Instance Methods

decode(content, format=nil) click to toggle source
# File lib/cloudhdr/base.rb, line 46
def decode(content, format=nil)
  self.class.decode(content, format)
end
encode(content, format=nil) click to toggle source
# File lib/cloudhdr/base.rb, line 26
def encode(content, format=nil)
  self.class.encode(content, format)
end