Class: Cb::Utils::Api

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/cb/utils/api.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeApi

Returns a new instance of Api.



9
10
11
12
13
14
15
# File 'lib/cb/utils/api.rb', line 9

def initialize
  self.class.debug_output $stderr if Cb.configuration.debug_api
  self.class.default_params :developerkey => Cb.configuration.dev_key,
                            :outputjson => Cb.configuration.use_json.to_s

  self.class.default_timeout Cb.configuration.time_out
end

Class Method Details

.criteria_to_hash(criteria) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/cb/utils/api.rb', line 53

def self.criteria_to_hash(criteria)
  params = Hash.new
  if criteria.respond_to?(:instance_variables)
    criteria.instance_variables.each do |var|
      var_name = var.to_s
      var_name.slice!(0)
      var_name_hash_safe = camelize(var_name)
      params["#{var_name_hash_safe}"] = criteria.instance_variable_get(var)
    end
  end
  return params
end

.is_numeric?(obj) ⇒ Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/cb/utils/api.rb', line 66

def self.is_numeric?(obj)
  true if Float(obj) rescue false
end

Instance Method Details

#append_api_responses(obj, resp) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/cb/utils/api.rb', line 27

def append_api_responses(obj, resp)
  if obj.respond_to?('cb_response')
    meta_class = obj.cb_response
  else
    meta_class = Cb::Utils::MetaValues.new()
  end

  resp.each do | api_key, api_value |
    meta_name = get_meta_name_for api_key

    unless meta_name.empty?
      if meta_name == 'errors' && api_value.is_a?(Hash)
        api_value = api_value.values
      elsif self.class.is_numeric?(api_value)
        api_value = api_value.to_i
      end

      meta_class.class.send(:attr_reader, meta_name)
      meta_class.instance_variable_set(:"@#{meta_name}", api_value)
    end
  end

  obj.class.send(:attr_reader, 'cb_response')
  obj.instance_variable_set(:@cb_response, meta_class)
end

#cb_get(*args, &block) ⇒ Object



17
18
19
20
# File 'lib/cb/utils/api.rb', line 17

def cb_get(*args, &block)
  self.class.base_uri 'http://api.careerbuilder.com'
  self.class.get(*args, &block)
end

#cb_post(*args, &block) ⇒ Object



22
23
24
25
# File 'lib/cb/utils/api.rb', line 22

def cb_post(*args, &block)
  self.class.base_uri 'https://api.careerbuilder.com'
  self.class.post(*args, &block)
end