Method: NetSuite::Support::Records#to_record

Defined in:
lib/netsuite/support/records.rb

#to_recordObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/netsuite/support/records.rb', line 7

def to_record
  attributes.reject { |k,v| self.class.read_only_fields.include?(k) || self.class.search_only_fields.include?(k) }.inject({}) do |hash, (k,v)|
    kname = "#{v.is_a?(NetSuite::Records::NullFieldList) ? v.record_namespace : record_namespace}:"
    kname += k == :klass ? 'class' : NetSuite::Utilities::Strings.lower_camelcase(k.to_s)

    to_attributes!(hash, kname, v)

    if Array === v
      v = v.map { |i| i.respond_to?(:to_record) ? i.to_record : i }
    elsif v.respond_to?(:to_record)
      v = v.to_record
    end

    hash[kname] = v
    hash
  end
end