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)