Class: FreshBooks::BaseObject

Inherits:
Object
  • Object
show all
Defined in:
lib/freshbooks/extensions/base_object.rb

Instance Method Summary collapse

Instance Method Details

#elem_nameObject

The root element is the class name, downcased (and underscored if there is any CamelCase)



27
28
29
# File 'lib/freshbooks/extensions/base_object.rb', line 27

def elem_name
  elem_name = self.class.to_s.split('::').last.gsub(/([a-z])([A-Z])/, '\1_\2').downcase
end

#to_xmlObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/freshbooks/extensions/base_object.rb', line 7

def to_xml
  # The root element is the elem name
  root = Element.new elem_name
  
  # Add each BaseObject member to the root elem
  self.members.each do |field_name|
    
    value = self.send(field_name)
    
    if value.is_a?(Array)
      node = root.add_element(field_name)
      value.each { |array_elem| node.add_element(array_elem.to_xml) }
    elsif !value.nil?
      root.add_element(field_name).text = value
    end
  end
  root
end