module ActiveZuora::Persistence
Constants
- MAX_BATCH_SIZE
Public Instance Methods
delete()
click to toggle source
# File lib/active_zuora/persistence.rb, line 30 def delete self.class.delete(id) > 0 end
new_record?()
click to toggle source
# File lib/active_zuora/persistence.rb, line 8 def new_record? id.blank? end
reload()
click to toggle source
# File lib/active_zuora/persistence.rb, line 34 def reload raise ArgumentError.new("You can't reload a new record") if new_record? self.untracked_attributes = self.class.find(id).attributes self end
save()
click to toggle source
# File lib/active_zuora/persistence.rb, line 12 def save new_record? ? create : update end
save!()
click to toggle source
# File lib/active_zuora/persistence.rb, line 16 def save! raise "Could Not Save Zuora Object: #{errors.full_messages.join ', '}" unless save end
update_attributes(attributes)
click to toggle source
# File lib/active_zuora/persistence.rb, line 20 def update_attributes(attributes) self.attributes = attributes save end
update_attributes!(attributes)
click to toggle source
# File lib/active_zuora/persistence.rb, line 25 def update_attributes!(attributes) self.attributes = attributes save! end
xml_field_names()
click to toggle source
Calls superclass method
# File lib/active_zuora/persistence.rb, line 40 def xml_field_names # If we're rendering an existing record, always include the id. new_record? ? super : ([:id] + super).uniq end
Private Instance Methods
create()
click to toggle source
# File lib/active_zuora/persistence.rb, line 47 def create return false unless new_record? && valid? result = self.class.connection.request(:create) do |soap| soap.body do |xml| build_xml(xml, soap, :namespace => soap.namespace, :element_name => :zObjects, :force_type => true) end end[:create_response][:result] if result[:success] self.id = result[:id] clear_changed_attributes true else errors.add(:base, result[:errors][:message]) if result[:errors] false end end
update()
click to toggle source
# File lib/active_zuora/persistence.rb, line 67 def update self.class.update(self) self.errors.blank? end