class ExampleFrontStencil

Attributes

number[R]
parsed_number[R]

Public Class Methods

template() click to toggle source
# File lib/stencils/example_front_stencil.rb, line 2
def self.template
  @template ||= Shear::Template.build do |t|
    t.set 'DOCUMENT', at: [0.9, 0.3]
    t.set 'ID', at: [30.8, 1.2]
    t.set 'COUNTRY', at: [1.1, 8.1]
    t.set 'NUMBER', at: [0.8, 15.1]
  end
end

Public Instance Methods

face() click to toggle source
# File lib/stencils/example_front_stencil.rb, line 11
def face
  :front
end
fields() click to toggle source
# File lib/stencils/example_front_stencil.rb, line 15
def fields
  @fields ||= Set[
    "number",
    "parsed_number",
    "has_sensible_data?"
  ]
end
has_sensible_data?() click to toggle source
# File lib/stencils/example_front_stencil.rb, line 23
def has_sensible_data?
  true
end
process_match() click to toggle source
# File lib/stencils/example_front_stencil.rb, line 29
def process_match
  @number = match.read([23.9, 15.0], [34.5, 16.9]).to_s
  @parsed_number = parse_number(@number)
end

Private Instance Methods

parse_number(_number) click to toggle source
# File lib/stencils/example_front_stencil.rb, line 36
def parse_number(_number)
  parts = _number.split(".")
  return nil if parts.length != 3

  return nil if parts.any? { |part| !/\A\d+\z/.match(part) }

  parts.inject { |cumulate, part| cumulate + part }.to_i
end