pdfrb 0.7.17 → 0.7.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/pdfrb/model/cos/dictionary.rb +28 -2
- data/lib/pdfrb/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 10ae262fc764f359b2eebcfa7384fd94fb41094fc906987fcba0f254fecd0e11
|
|
4
|
+
data.tar.gz: 6ca04beff81f5a83621caeeff912aa0d4dd4268e1141a8aa8b49479a0efa2465
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c301c11937103aadbbc335c10649dd2bc8dd5d2b0b12d6673a8b43f5d3961f54362f4fcc8433e69a82fcabc7f2f9c4b123025b556892e9ba423f3af88a59695b
|
|
7
|
+
data.tar.gz: f9a1cebbde8c0465ae6574d744aa0b4eb059e4e4f594aef81d59f377209fdbc11c7fcf7db2431ff460ea80e211e807b806fbf02b59e6ecd2167c4ee707dabbb7
|
|
@@ -95,8 +95,8 @@ module Pdfrb
|
|
|
95
95
|
end
|
|
96
96
|
private :own_fields
|
|
97
97
|
|
|
98
|
-
def arlington_loaded_for?(
|
|
99
|
-
@arlington_loaded_name ==
|
|
98
|
+
def arlington_loaded_for?(arlington_name)
|
|
99
|
+
@arlington_loaded_name == arlington_name
|
|
100
100
|
end
|
|
101
101
|
private :arlington_loaded_for?
|
|
102
102
|
|
|
@@ -113,11 +113,23 @@ module Pdfrb
|
|
|
113
113
|
end
|
|
114
114
|
private :arlington_available?
|
|
115
115
|
|
|
116
|
+
# Merge Arlington field metadata with any hand-coded
|
|
117
|
+
# define_field declaration. Hand-coded fields win: if the
|
|
118
|
+
# class already declares this key explicitly (with a type),
|
|
119
|
+
# we rebuild the Field preserving the hand-coded
|
|
120
|
+
# type/default/required and only attach the Arlington def
|
|
121
|
+
# for reference.
|
|
116
122
|
def define_field_from_arlington(field_def)
|
|
117
123
|
types = arlington_types_to_ruby(field_def)
|
|
118
124
|
return if types.empty?
|
|
119
125
|
|
|
120
126
|
key = arlington_key_to_symbol(field_def.key)
|
|
127
|
+
existing = own_fields[key]
|
|
128
|
+
if existing
|
|
129
|
+
own_fields[key] = merged_field(existing, field_def)
|
|
130
|
+
return
|
|
131
|
+
end
|
|
132
|
+
|
|
121
133
|
define_field(
|
|
122
134
|
key,
|
|
123
135
|
type: types.length == 1 ? types.first : types,
|
|
@@ -129,6 +141,20 @@ module Pdfrb
|
|
|
129
141
|
end
|
|
130
142
|
private :define_field_from_arlington
|
|
131
143
|
|
|
144
|
+
def merged_field(existing, field_def)
|
|
145
|
+
Fields::Field.new(
|
|
146
|
+
existing.pdf_name,
|
|
147
|
+
type: existing.type,
|
|
148
|
+
required: existing.required,
|
|
149
|
+
default: existing.default,
|
|
150
|
+
indirect: existing.indirect,
|
|
151
|
+
allowed_values: existing.allowed_values,
|
|
152
|
+
version: arlington_version(field_def),
|
|
153
|
+
arlington: field_def
|
|
154
|
+
)
|
|
155
|
+
end
|
|
156
|
+
private :merged_field
|
|
157
|
+
|
|
132
158
|
def arlington_types_to_ruby(field_def)
|
|
133
159
|
field_def.types.map { |t| arlington_one_type_to_ruby(t) }.flatten.compact.uniq
|
|
134
160
|
end
|
data/lib/pdfrb/version.rb
CHANGED