Class: Onfleet::OnfleetObject

Inherits:
Object
  • Object
show all
Defined in:
lib/onfleet-ruby/onfleet_object.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ OnfleetObject

Returns a new instance of OnfleetObject.



4
5
6
7
8
9
10
11
12
13
14
# File 'lib/onfleet-ruby/onfleet_object.rb', line 4

def initialize params
  if params.kind_of?(Hash)
    @params = params
    set_attributes(@params)
  elsif params.kind_of?(String)
    @params = {id: params}
    set_attributes(@params)
  else
    @params = {}
  end
end

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



3
4
5
# File 'lib/onfleet-ruby/onfleet_object.rb', line 3

def params
  @params
end

Instance Method Details

#api_urlObject



52
53
54
# File 'lib/onfleet-ruby/onfleet_object.rb', line 52

def api_url
  "/#{CGI.escape(class_name.downcase)}s"
end

#attributesObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/onfleet-ruby/onfleet_object.rb', line 22

def attributes
  attrs = Hash.new
  instance_variables.each do |var|
    str = var.to_s.gsub /^@/, ''
    if respond_to? "#{str}="
      instance_var = instance_variable_get(var)
      if klass = Util.object_classes[str]
        if instance_var.is_a?(OnfleetObject)
          attrs[Util.to_camel_case_lower(str).to_sym] = parse_onfleet_obj(instance_var)
        elsif instance_var.is_a?(Array)
          objs = []
          instance_var.each do |object|
            objs << parse_onfleet_obj(object)
          end
          attrs[Util.to_camel_case_lower(str).to_sym] = objs
        else
          attrs[Util.to_camel_case_lower(str).to_sym] = instance_var
        end
      else
        attrs[Util.to_camel_case_lower(str).to_sym] = instance_var
      end
    end
  end
  attrs
end

#class_nameObject



48
49
50
# File 'lib/onfleet-ruby/onfleet_object.rb', line 48

def class_name
  self.class.name.split("::").last
end

#parse_response(response) ⇒ Object



16
17
18
19
20
# File 'lib/onfleet-ruby/onfleet_object.rb', line 16

def parse_response response
  @params = response
  set_attributes(response)
  self
end