Module: Pdfrb::Model::Type

Defined in:
lib/pdfrb/model/type.rb,
lib/pdfrb/model/type/font.rb,
lib/pdfrb/model/type/info.rb,
lib/pdfrb/model/type/page.rb,
lib/pdfrb/model/type/names.rb,
lib/pdfrb/model/type/action.rb,
lib/pdfrb/model/type/catalog.rb,
lib/pdfrb/model/type/outline.rb,
lib/pdfrb/model/type/cid_font.rb,
lib/pdfrb/model/type/metadata.rb,
lib/pdfrb/model/type/resources.rb,
lib/pdfrb/model/type/annotation.rb,
lib/pdfrb/model/type/font_type0.rb,
lib/pdfrb/model/type/font_type1.rb,
lib/pdfrb/model/type/font_type3.rb,
lib/pdfrb/model/type/struct_elem.rb,
lib/pdfrb/model/type/xref_stream.rb,
lib/pdfrb/model/type/file_trailer.rb,
lib/pdfrb/model/type/outline_item.rb,
lib/pdfrb/model/type/xobject_form.rb,
lib/pdfrb/model/type/embedded_file.rb,
lib/pdfrb/model/type/object_stream.rb,
lib/pdfrb/model/type/output_intent.rb,
lib/pdfrb/model/type/xobject_image.rb,
lib/pdfrb/model/type/font_true_type.rb,
lib/pdfrb/model/type/page_tree_node.rb,
lib/pdfrb/model/type/font_descriptor.rb,
lib/pdfrb/model/type/af_embedded_file.rb,
lib/pdfrb/model/type/interactive_form.rb,
lib/pdfrb/model/type/struct_tree_root.rb,
lib/pdfrb/model/type/file_specification.rb,
lib/pdfrb/model/type/encryption_standard.rb,
lib/pdfrb/model/type/af_file_specification.rb,
lib/pdfrb/model/type/encryption_public_key.rb,
lib/pdfrb/model/type/optional_content_group.rb,
lib/pdfrb/model/type/graphics_state_parameter.rb,
lib/pdfrb/model/type/optional_content_membership.rb,
lib/pdfrb/model/type/optional_content_properties.rb

Overview

Semantic PDF types — one subclass per Arlington TSV. Each class declares arlington_object "Name" and gets its field metadata auto-loaded from the vendored TSVs at first access.

The arlington_registry maps TSV name -> Type subclass so other Types' field-link resolution can find concrete classes.

Adding a new PDF type = adding one subclass that calls arlington_object "TSVName". Open/closed: no switch edits.

Defined Under Namespace

Classes: AFEmbeddedFile, AFFileSpecification, Action, Annotation, CIDFont, Catalog, EmbeddedFile, EncryptionPublicKey, EncryptionStandard, FileSpecification, FileTrailer, Font, FontDescriptor, FontTrueType, FontType0, FontType1, FontType3, GraphicsStateParameter, Info, InteractiveForm, Metadata, Names, ObjectStream, OptionalContentGroup, OptionalContentMembership, OptionalContentProperties, Outline, OutlineItem, OutputIntent, Page, PageTreeNode, PageTreeNodeRoot, Resources, StructElem, StructTreeRoot, XObjectForm, XObjectImage, XRefStream

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.arlington_registryObject (readonly)

Returns the value of attribute arlington_registry.



18
19
20
# File 'lib/pdfrb/model/type.rb', line 18

def arlington_registry
  @arlington_registry
end

Class Method Details

.lookup(name) ⇒ Object

Look up a Type subclass by Arlington TSV name.



26
27
28
# File 'lib/pdfrb/model/type.rb', line 26

def lookup(name)
  @arlington_registry[name]
end

.register_arlington(name, klass) ⇒ Object

Register a Type subclass under its Arlington TSV name.



21
22
23
# File 'lib/pdfrb/model/type.rb', line 21

def register_arlington(name, klass)
  @arlington_registry[name] = klass
end