Module: MARCExtensions::FieldMapExtensions

Included in:
MARC::FieldMap
Defined in:
lib/marc_extensions/field_map.rb

Overview

Extensions to MARC::FieldMap.

Instance Method Summary collapse

Instance Method Details

#each_sorted_by_tag(tags) {|field| ... } ⇒ Object #each_sorted_by_tag(tags) ⇒ Enumerator::Lazy<MARC::ControlField, MARC::DataField> #each_sorted_by_tag {|field| ... } ⇒ Object #each_sorted_by_tagEnumerator::Lazy<MARC::ControlField, MARC::DataField>

Gets the specified fields in order by tag.

Overloads:

  • #each_sorted_by_tag(tags) {|field| ... } ⇒ Object

    Yields each specified field.

    Parameters:

    • tags (String, Enumerable<String>)

      A tag, range of tags, array of tags, or similar

    Yield Parameters:

  • #each_sorted_by_tag(tags) ⇒ Enumerator::Lazy<MARC::ControlField, MARC::DataField>

    An enumerator of the specified variable fields, sorted by tag.

    Parameters:

    • tags (String, Enumerable<String>)

      A tag, range of tags, array of tags, or similar

    Returns:

  • #each_sorted_by_tag {|field| ... } ⇒ Object

    Yields all fields, sorted by tag.

    Yield Parameters:

  • #each_sorted_by_tagEnumerator::Lazy<MARC::ControlField, MARC::DataField>

    An enumerator of all fields, sorted by tag.

    Returns:



23
24
25
26
27
28
29
30
# File 'lib/marc_extensions/field_map.rb', line 23

def each_sorted_by_tag(tags = nil, &block)
  reindex unless @clean

  indices = indices_for(tags)
  fields = indices.map { |i| self[i] }
  # noinspection RubyMismatchedReturnType
  fields.each(&block)
end

#freezeMARC::FieldMap

Recursively freezes all fields.

Returns:



34
35
36
37
38
39
40
41
# File 'lib/marc_extensions/field_map.rb', line 34

def freeze
  unless frozen?
    reindex unless @clean
    each(&:freeze)
  end

  super
end