Class: Pdfrb::Arlington::ObjectDefinition
- Inherits:
-
Object
- Object
- Pdfrb::Arlington::ObjectDefinition
- Defined in:
- lib/pdfrb/arlington/object_definition.rb
Overview
One TSV file = one PDF object type definition. Holds the list of FieldDefinitions and provides lookup by key (with wildcard support for map-style objects).
Instance Attribute Summary collapse
-
#fields ⇒ Object
readonly
Returns the value of attribute fields.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Class Method Summary collapse
Instance Method Summary collapse
- #each_field(&block) ⇒ Object
- #field_for(key) ⇒ Object (also: #[])
- #has_wildcard? ⇒ Boolean
-
#initialize(name:, version: "latest", fields: []) ⇒ ObjectDefinition
constructor
A new instance of ObjectDefinition.
- #keys ⇒ Object
- #map? ⇒ Boolean
Constructor Details
#initialize(name:, version: "latest", fields: []) ⇒ ObjectDefinition
Returns a new instance of ObjectDefinition.
11 12 13 14 15 16 |
# File 'lib/pdfrb/arlington/object_definition.rb', line 11 def initialize(name:, version: "latest", fields: []) @name = name @version = version @fields = fields freeze end |
Instance Attribute Details
#fields ⇒ Object (readonly)
Returns the value of attribute fields.
9 10 11 |
# File 'lib/pdfrb/arlington/object_definition.rb', line 9 def fields @fields end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
9 10 11 |
# File 'lib/pdfrb/arlington/object_definition.rb', line 9 def name @name end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
9 10 11 |
# File 'lib/pdfrb/arlington/object_definition.rb', line 9 def version @version end |
Class Method Details
.from_tsv(rows, name:, version:) ⇒ Object
18 19 20 21 |
# File 'lib/pdfrb/arlington/object_definition.rb', line 18 def self.from_tsv(rows, name:, version:) fields = rows.map { |row| FieldDefinition.from_row(row) } new(name: name, version: version, fields: fields) end |
Instance Method Details
#each_field(&block) ⇒ Object
23 24 25 |
# File 'lib/pdfrb/arlington/object_definition.rb', line 23 def each_field(&block) @fields.each(&block) end |
#field_for(key) ⇒ Object Also known as: []
27 28 29 |
# File 'lib/pdfrb/arlington/object_definition.rb', line 27 def field_for(key) @fields.find { |f| f.key == key.to_s } end |
#has_wildcard? ⇒ Boolean
36 37 38 |
# File 'lib/pdfrb/arlington/object_definition.rb', line 36 def has_wildcard? @fields.any? { |f| f.key == "*" } end |
#keys ⇒ Object
32 33 34 |
# File 'lib/pdfrb/arlington/object_definition.rb', line 32 def keys @fields.map(&:key) end |
#map? ⇒ Boolean
40 41 42 |
# File 'lib/pdfrb/arlington/object_definition.rb', line 40 def map? @fields.first&.key == "*" end |