lib/hexapdf/dictionary.rb in hexapdf-0.12.3 vs lib/hexapdf/dictionary.rb in hexapdf-0.13.0

- old
+ new

@@ -95,11 +95,11 @@ # # allowed_values:: An array of allowed values for this field. # # version:: Specifies the minimum version of the PDF specification needed for this value. def self.define_field(name, type:, required: false, default: nil, indirect: nil, - allowed_values: nil, version: '1.2') + allowed_values: nil, version: '1.0') @fields ||= {} @fields[name] = Field.new(type, required: required, default: default, indirect: indirect, allowed_values: allowed_values, version: version) end @@ -161,11 +161,11 @@ value[name] elsif field&.default? value[name] = field.default end value[name] = data = document.deref(data) if data.kind_of?(HexaPDF::Reference) - if data.class == HexaPDF::Object || (data.kind_of?(HexaPDF::Object) && data.value.nil?) + if data.instance_of?(HexaPDF::Object) || (data.kind_of?(HexaPDF::Object) && data.value.nil?) data = data.value end if (result = field&.convert(data, document)) self[name] = data = result end @@ -180,11 +180,11 @@ def []=(name, data) unless name.kind_of?(Symbol) raise ArgumentError, "Only Symbol (Name) keys are allowed to be used in PDF dictionaries" end - if value[name].class == HexaPDF::Object && !data.kind_of?(HexaPDF::Object) && + if value[name].instance_of?(HexaPDF::Object) && !data.kind_of?(HexaPDF::Object) && !data.kind_of?(HexaPDF::Reference) value[name].value = data else value[name] = data end @@ -271,10 +271,10 @@ next if field.nil? # Check that required fields are set if field.required? && obj.nil? yield("Required field #{name} is not set", field.default?) - self[name] = obj = field.default + self[name] = obj = field.default if field.default? end # Check if the document version is set high enough if field.version > document.instance_variable_get(:@version) yield("Field #{name} requires document version to be #{field.version}", true)