Method: OXM::Object#compact!

Defined in:
lib/oxm/object.rb

#compact!OXM::Object

Compacts the object by removing empty child elements and then collapsing element Arrays. After compaction, single-element arrays are collapsed, and empty arrays become nil.

Returns:



104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/oxm/object.rb', line 104

def compact!
  @nodes.each do |key, value|
    if value.is_a?(Array)
      value = value.reject(&:empty?)
      @nodes[key] =
        case value.length
        when 0
          nil
        when 1
          value.first
        else
          value
        end
    end
  end
  self
end