Sha256: 2660cc6af01b65afd4547c0de28e722a36fe75ca12db07d6c811d12787861599

Contents?: true

Size: 1.05 KB

Versions: 12

Compression:

Stored size: 1.05 KB

Contents

# Provide a transform! method
module NSConnector::Transforming
	# Transform record to target class, given id.
	# Optionally set fields on the target record before saving if passed
	# block.
	# Arguments:: 
	#   klass:: target class to transform into, e.g. CustomerPayment
	#   id:: internal id of source record to transform
	#   &block:: optional block, passed a newly created object of target
	#   	klass, anything you set on this class will be set in netsuite
	#   	before saving the newly created object.
	# Example::
	# 	Invoice.transform!(CustomerPayment, 500) do |payment|
	# 		payment.ccnumber = '422222222'
	# 		payment.ccexpiry = 'invalid'
	# 	end
	# 	=> #<NSConnector::NSConnector::CustomerPayment:"123">
	def transform!(klass, id, &block)
		target = klass.new
		if block_given? then
			# User sets what they want on the target
			yield target
		end

		NSConnector::Restlet.execute!(
			:action => 'transform',
			:source_type_id => type_id,
			:target_type_id => klass.type_id,
			:source_id => id,
			:fields => klass.fields,
			:data => target.store
		)
	end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
ns_connector-0.1.0 lib/ns_connector/transforming.rb
ns_connector-0.0.17 lib/ns_connector/transforming.rb
ns_connector-0.0.16 lib/ns_connector/transforming.rb
ns_connector-0.0.15 lib/ns_connector/transforming.rb
ns_connector-0.0.14 lib/ns_connector/transforming.rb
ns_connector-0.0.13 lib/ns_connector/transforming.rb
ns_connector-0.0.12 lib/ns_connector/transforming.rb
ns_connector-0.0.11 lib/ns_connector/transforming.rb
ns_connector-0.0.10 lib/ns_connector/transforming.rb
ns_connector-0.0.9 lib/ns_connector/transforming.rb
ns_connector-0.0.8 lib/ns_connector/transforming.rb
ns_connector-0.0.7 lib/ns_connector/transforming.rb