Module: MARCExtensions::XMLReaderExtensions
- Included in:
- MARC::XMLReader
- Defined in:
- lib/marc_extensions/xml_reader.rb
Overview
Extends MARC::XMLReader.
Instance Method Summary collapse
-
#initialize(*args) ⇒ Object
Adds a
:freeze
option to MARC::XMLReader which freezes each record as it's constructed:.
Instance Method Details
#initialize(file, options) ⇒ Object #initialize(file, parser: 'rexml', freeze: false) ⇒ Object
Adds a :freeze
option to MARC::XMLReader
which freezes each record as it's constructed:
reader = MARC::XMLReader.new('marc.xml', { freeze: true })
record = reader.first
record.frozen?
# => true
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/marc_extensions/xml_reader.rb', line 26 def initialize(*args) file, , @freeze = destructure_args(args) super(file, ) # It's surprisingly tricky to get these into the general superclass # chain, so instead we just prepend them to the eigenclass if respond_to?(:yield_record) class << self; prepend(MARCExtensions::YieldFrozenRecord); end elsif respond_to?(:build_record, true) class << self; prepend(MARCExtensions::BuildFrozenRecord); end end end |