module BrInvoicesPdf::Nfce::Renderer::QrCode

Public Instance Methods

execute(pdf, data) click to toggle source
# File lib/br_invoices_pdf/nfce/renderer/qr_code.rb, line 12
def execute(pdf, data)
  render_box(pdf) do
    options = pdf_options(page_paper_width(pdf.page.size))

    generate_qr_code(pdf, data, options)
  end
end
generate_qr_code(pdf, data, options) click to toggle source

:reek: FeatureEnvy

# File lib/br_invoices_pdf/nfce/renderer/qr_code.rb, line 37
def generate_qr_code(pdf, data, options)
  qrcode_size = options[:qrcode_size]
  opts = {
    at: [(options[:page_width] - qrcode_size) / 2, pdf.cursor],
    width: qrcode_size,
    height: qrcode_size
  }
  insert_image(pdf, generate_qr_code_data(data[:emission_details][:qrcode_url], qrcode_size), opts)
end
insert_image(pdf, image, options) click to toggle source
# File lib/br_invoices_pdf/nfce/renderer/qr_code.rb, line 48
def insert_image(pdf, image, options)
  pdf.image(image, options)
  pdf.move_down(options[:height])
end
pdf_options(page_width) click to toggle source
# File lib/br_invoices_pdf/nfce/renderer/qr_code.rb, line 29
def pdf_options(page_width)
  qrcode_size = page_width * 0.65

  { qrcode_size: qrcode_size, page_width: page_width }
end
render_box(pdf) { || ... } click to toggle source

:reek: FeatureEnvy

# File lib/br_invoices_pdf/nfce/renderer/qr_code.rb, line 21
def render_box(pdf)
  box(pdf, [0, pdf.cursor], page_content_width(pdf)) do
    pdf.text('QR Code', style: :italic)
    yield
  end
end