Print

Print


Since the fields property of a MARC::Record is a MARC::FieldMap, which is a
subclass of Array, I use the Array.sort_by! method:

record.fields.sort_by! {|f| f.tag}



On Fri, Sep 12, 2014 at 12:28 AM, Jason Stirnaman <[log in to unmask]>
wrote:

> Ruby-marc sages,
> What's the best way to re-sequence fields in a record after appending to
> it?  This seems to work ok, but feels wrong.
>
>
>   for record in reader
>     # Return a record with new field appended.
>     newrecord = add_control_number(record)
>
>     ### Re-sort fields by tag and copy them to a new record. ###
>     sortedrecord = MARC::Record.new
>     sortedrecord.leader = newrecord.leader
>     newrecord.sort_by{|f| f.tag}.each {|tag| sortedrecord.append(tag)}
>
>      writer.write(sortedrecord)
>   end
>
>
> Thanks,
> Jason
>
> Jason Stirnaman
> Lead, Library Technology Services
> University of Kansas Medical Center
> [log in to unmask]
> 913-588-7319
>