Method: MARC::XMLWriter.fix_leader

Defined in:
lib/marc/xmlwriter.rb

.fix_leader(leader) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/marc/xmlwriter.rb', line 69

def self.fix_leader(leader)
  fixed_leader = leader.gsub(/[^\w|^\s]/, "Z")

  # The leader must have at least 24 characters
  fixed_leader = fixed_leader.ljust(24) if fixed_leader.length < 24

  # MARCXML is particular about last four characters; ILSes aren't
  if fixed_leader[20..23] != "4500"
    fixed_leader[20..23] = "4500"
  end

  # MARCXML doesn't like a space here so we need a filler character: Z
  if fixed_leader[6..6] == " "
    fixed_leader[6..6] = "Z"
  end

  fixed_leader
end