class PagSeguro::Subscription::RequestSerializer
Attributes
object[R]
Get the object
Public Class Methods
new(object)
click to toggle source
# File lib/pagseguro/subscription/request_serializer.rb, line 7 def initialize(object) @object = object end
Public Instance Methods
serialize()
click to toggle source
# File lib/pagseguro/subscription/request_serializer.rb, line 11 def serialize build.to_xml(save_with: Nokogiri::XML::Node::SaveOptions::NO_EMPTY_TAGS | Nokogiri::XML::Node::SaveOptions::FORMAT ) end
Private Instance Methods
build()
click to toggle source
# File lib/pagseguro/subscription/request_serializer.rb, line 20 def build Nokogiri::XML::Builder.new(encoding: PagSeguro.encoding) do |xml| xml.send(:directPreApproval) { xml.send(:plan, object.plan) if object.plan xml.send(:reference, object.reference) if object.reference serialize_sender(xml, object.sender) serialize_payment_method(xml, object.payment_method) } end end
serialize_address(xml, address)
click to toggle source
# File lib/pagseguro/subscription/request_serializer.rb, line 55 def serialize_address(xml, address) return unless address xml.send(:address) { xml.send(:street, address.street) if address.street xml.send(:number, address.number) if address.number xml.send(:complement, address.complement) if address.complement xml.send(:district, address.district) if address.district xml.send(:city, address.city) if address.city xml.send(:state, address.state) if address.state xml.send(:country, address.country) if address.country xml.send(:postalCode, address.postal_code) if address.postal_code } end
serialize_billing_address(xml, address)
click to toggle source
# File lib/pagseguro/subscription/request_serializer.rb, line 70 def serialize_billing_address(xml, address) return unless address xml.send(:billingAddress) { xml.send(:street, address.street) if address.street xml.send(:number, address.number) if address.number xml.send(:complement, address.complement) if address.complement xml.send(:district, address.district) if address.district xml.send(:city, address.city) if address.city xml.send(:state, address.state) if address.state xml.send(:country, address.country) if address.country xml.send(:postalCode, address.postal_code) if address.postal_code } end
serialize_document(xml, document)
click to toggle source
# File lib/pagseguro/subscription/request_serializer.rb, line 95 def serialize_document(xml, document) return unless document xml.send(:document) { xml.send(:type, document.type) xml.send(:value, document.value) } end
serialize_documents(xml, documents)
click to toggle source
# File lib/pagseguro/subscription/request_serializer.rb, line 85 def serialize_documents(xml, documents) return if documents.empty? xml.send(:documents) { documents.each do |document| serialize_document(xml, document) end } end
serialize_holder(xml, holder)
click to toggle source
# File lib/pagseguro/subscription/request_serializer.rb, line 116 def serialize_holder(xml, holder) return unless holder xml.send(:holder) { xml.send(:name, holder.name) if holder.name xml.send(:birthDate, holder.birth_date) if holder.birth_date serialize_document(xml, holder.document) serialize_billing_address(xml, holder.billing_address) serialize_phone(xml, holder.phone) } end
serialize_payment_method(xml, payment_method)
click to toggle source
# File lib/pagseguro/subscription/request_serializer.rb, line 104 def serialize_payment_method(xml, payment_method) return unless payment_method xml.send(:paymentMethod) { xml.send(:type, payment_method.type) xml.send(:creditCard) { xml.send(:token, payment_method.token) serialize_holder(xml, payment_method.holder) } } end
serialize_phone(xml, phone)
click to toggle source
# File lib/pagseguro/subscription/request_serializer.rb, line 46 def serialize_phone(xml, phone) return unless phone xml.send(:phone) { xml.send(:areaCode, phone.area_code) xml.send(:number, phone.number) } end
serialize_sender(xml, sender)
click to toggle source
# File lib/pagseguro/subscription/request_serializer.rb, line 31 def serialize_sender(xml, sender) return unless sender xml.send(:sender) { xml.send(:name, sender.name) if sender.name xml.send(:email, sender.email) if sender.email xml.send(:ip, sender.ip) if sender.ip xml.send(:hash_, sender.hash) if sender.hash serialize_phone(xml, sender.phone) serialize_address(xml, sender.address) serialize_documents(xml, sender.documents) } end