Sha256: 8c5d3f61c4bfe3531ac69b50da356cd5e77bdbb3f6da549c95d8cb99f2084de8

Contents?: true

Size: 1.62 KB

Versions: 13

Compression:

Stored size: 1.62 KB

Contents

module NetSuite
  module Records
    class CustomRecordRef
      include Support::Fields
      include Support::Records
      include Namespaces::PlatformCore

      attr_reader   :internal_id
      attr_accessor :external_id, :type_id

      fields :name

      def initialize(attributes_or_record = {})
        case attributes_or_record
        when Hash
          attributes = attributes_or_record.clone
          attributes.delete(:"@xmlns:platform_core")
          @internal_id = attributes.delete(:internal_id) || attributes.delete(:@internal_id)
          @external_id = attributes.delete(:external_id) || attributes.delete(:@external_id)
          @type_id     = attributes.delete(:type_id) || attributes.delete(:@type_id)
          @type_id     = @type_id.to_s if @type_id
          initialize_from_attributes_hash(attributes)
        else
          record = attributes_or_record
          @internal_id = record.internal_id if record.respond_to?(:internal_id)
          @external_id = record.external_id if record.respond_to?(:external_id)
          @type_id     = record.class.type_id if record.class.respond_to?(:type_id) && record.class.type_id
          @type_id     = @type_id.to_s if @type_id
        end
      end

      def method_missing(m, *args, &block)
        if attributes.keys.map(&:to_sym).include?(m.to_sym)
          attributes[m.to_sym]
        else
          super
        end
      end

      def to_record
        rec = super
        rec[:@internalId] = @internal_id if @internal_id
        rec[:@externalId] = @external_id if @external_id
        rec[:@typeId] = @type_id if @type_id
        rec
      end

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
netsuite-0.9.3 lib/netsuite/records/custom_record_ref.rb
netsuite-0.9.2 lib/netsuite/records/custom_record_ref.rb
netsuite-0.9.1 lib/netsuite/records/custom_record_ref.rb
netsuite-0.9.0 lib/netsuite/records/custom_record_ref.rb
netsuite-0.8.12 lib/netsuite/records/custom_record_ref.rb
netsuite-0.8.11 lib/netsuite/records/custom_record_ref.rb
netsuite-0.8.10 lib/netsuite/records/custom_record_ref.rb
netsuite-0.8.9 lib/netsuite/records/custom_record_ref.rb
netsuite-0.8.8 lib/netsuite/records/custom_record_ref.rb
netsuite-0.8.7 lib/netsuite/records/custom_record_ref.rb
netsuite-0.8.6 lib/netsuite/records/custom_record_ref.rb
netsuite-0.8.5 lib/netsuite/records/custom_record_ref.rb
netsuite-0.8.4 lib/netsuite/records/custom_record_ref.rb