diff --git a/config/initializers/hexapdf.rb b/config/initializers/hexapdf.rb index a8dd5203..f639374f 100644 --- a/config/initializers/hexapdf.rb +++ b/config/initializers/hexapdf.rb @@ -46,6 +46,20 @@ module HexaPDF def color_space(name) GlobalConfiguration.constantize('color_space.map', name).new end + + def [](name) + return super unless value[name].nil? && INHERITABLE_FIELDS.include?(name) + + seen = Set.new.compare_by_identity + seen << value + node = self + + while node.value[name].nil? && (parent = node[:Parent]) && seen.add?(parent.value) + node = parent + end + + node == self || node.value[name].nil? ? super : node[name] + end end # fix NoMethodError: undefined method `field_value' for #