class PdfTempura::Render::BoxedCharacters

Attributes

field[RW]
value[RW]

Public Class Methods

new(field, value, options = {}) click to toggle source
# File lib/pdf_tempura/render/boxed_characters.rb, line 9
def initialize(field, value, options = {})
  @field = field
  @options = options
  @value = value ? value.dup : ""

  validate_value_length!
end

Public Instance Methods

render(pdf) click to toggle source
# File lib/pdf_tempura/render/boxed_characters.rb, line 17
def render(pdf)
  characters = value.chars.to_a

  field.fields.each do |field|
    break if characters.empty?
    Field::generate(field, characters.shift, @options).render(pdf)
  end

  render_debug_annotation(pdf) if draw_outlines?
end

Private Instance Methods

render_debug_annotation(pdf) click to toggle source
# File lib/pdf_tempura/render/boxed_characters.rb, line 36
def render_debug_annotation(pdf)
  Debug::OutsideAnnotation.new(field).render(pdf)
end
validate_value_length!() click to toggle source
# File lib/pdf_tempura/render/boxed_characters.rb, line 30
def validate_value_length!
  if value && !field.truncate? && value.length > field.supported_characters
    raise ArgumentError.new("Data for #{field.name} must be exactly #{field.supported_characters} characters or use the truncate option.")
  end
end