Module: Pdfrb::Model::Cos::Fields

Defined in:
lib/pdfrb/model/cos/fields.rb

Overview

Field metadata for a Dictionary entry. Field instances are created by Dictionary.define_field (hand-coded) or by arlington_object (TSV-driven). They drive type conversion, default application, and validation.

Defined Under Namespace

Modules: ArrayConverter, ByteStringConverter, DateConverter, DictionaryConverter, IntegerConverter, RectangleConverter, StringConverter Classes: Field

Constant Summary collapse

Boolean =

Use this constant for boolean fields.

[TrueClass, FalseClass].freeze
PDFByteString =

Marker class for binary-encoded string fields.

Class.new do
  private_class_method :new
end.freeze
PDFDate =

Marker class for date fields (string in PDF, Time in Ruby).

Class.new do
  private_class_method :new
end.freeze
CONVERTERS =
[
  DictionaryConverter, ArrayConverter, StringConverter,
  ByteStringConverter, DateConverter, RectangleConverter,
  IntegerConverter
].freeze

Class Method Summary collapse

Class Method Details

.apply(field, data, document) ⇒ Object



202
203
204
205
206
207
208
209
210
211
# File 'lib/pdfrb/model/cos/fields.rb', line 202

def self.apply(field, data, document)
  field.type.each do |t|
    converter = converter_for(t)
    next unless converter

    result = converter.convert(data, field.type, document)
    return result if result
  end
  nil
end

.converter_for(type) ⇒ Object



198
199
200
# File 'lib/pdfrb/model/cos/fields.rb', line 198

def self.converter_for(type)
  CONVERTERS.find { |c| c.usable_for?(type) }
end