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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67218c766df1cff2565d5020ad8089414e7892102117fc76a9413f0972c93648
4
- data.tar.gz: 8be6840a038f7c132e10b549c3ed3f33180ea5b5b14bcc6804c01f322dac82cf
3
+ metadata.gz: 10ae262fc764f359b2eebcfa7384fd94fb41094fc906987fcba0f254fecd0e11
4
+ data.tar.gz: 6ca04beff81f5a83621caeeff912aa0d4dd4268e1141a8aa8b49479a0efa2465
5
5
  SHA512:
6
- metadata.gz: a87239ec989b28f76e4c2f2a31e0efdc0b67a0dfb39030f51cc52b79343c2d5de42d40b7d4f816ef72ff930964b89c53f1aa4757f481eb6337f9283a4e6f5003
7
- data.tar.gz: f4748a5236be87af4360070f8ae90f7a34a93ba1f782a347d772573118b6a63e7bb24c167220d4df8d69477c4014bfb90a32b39756dcd383cb90058a6cbb398a
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?(_name)
99
- @arlington_loaded_name == 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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pdfrb
4
- VERSION = "0.7.17"
4
+ VERSION = "0.7.18"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdfrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.17
4
+ version: 0.7.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.