class PagSeguro::ManualSubscriptionCharger::RequestSerializer

Attributes

object[R]

Public Class Methods

new(object) click to toggle source
# File lib/pagseguro/manual_subscription_charger/request_serializer.rb, line 6
def initialize(object)
  @object = object
end

Public Instance Methods

to_xml_params() click to toggle source
# File lib/pagseguro/manual_subscription_charger/request_serializer.rb, line 10
def to_xml_params
  xml_builder.to_xml(
    save_with:
    Nokogiri::XML::Node::SaveOptions::NO_EMPTY_TAGS |
    Nokogiri::XML::Node::SaveOptions::FORMAT
  )
end

Private Instance Methods

to_amount(amount = 0.0) click to toggle source
# File lib/pagseguro/manual_subscription_charger/request_serializer.rb, line 20
def to_amount(amount = 0.0)
  "%.2f" % BigDecimal(amount.to_s.to_f.to_s).round(2).to_s("F")
end
xml_builder() click to toggle source
# File lib/pagseguro/manual_subscription_charger/request_serializer.rb, line 39
def xml_builder
  Nokogiri::XML::Builder.new(encoding: PagSeguro.encoding) do |xml|
    xml.send(:payment) {
      xml.send(:reference, object.reference)
      xml.send(:preApprovalCode, object.subscription_code)
      xml_serialize_items(xml, object.items)
    }
  end
end
xml_serialize_items(xml, items = []) click to toggle source
# File lib/pagseguro/manual_subscription_charger/request_serializer.rb, line 24
def xml_serialize_items(xml, items = [])
  return if items.empty?

  xml.send(:items) do
    items.each do |item|
      xml.send(:item) do
        xml.send(:id, item.id)
        xml.send(:description, item.description)
        xml.send(:quantity, item.quantity)
        xml.send(:amount, to_amount(item.amount))
      end
    end
  end
end