class MARC::Spec::Queries::CharacterSpec

Attributes

character_spec[R]

Attributes

Public Class Methods

new(character_spec = AlNumRange.new(0, nil)) click to toggle source

Initializer

# File lib/marc/spec/queries/character_spec.rb, line 18
def initialize(character_spec = AlNumRange.new(0, nil))
  @character_spec = ensure_type(character_spec, PositionOrRange, allow_nil: false)
end

Public Instance Methods

can_apply?(marc_obj) click to toggle source

Applicable

# File lib/marc/spec/queries/character_spec.rb, line 32
def can_apply?(marc_obj)
  # MARC leader is ControlField-like but is returned as string
  [String, MARC::ControlField, MARC::Subfield].any? { |t| marc_obj.is_a?(t) }
end
to_s() click to toggle source

Object overrides

# File lib/marc/spec/queries/character_spec.rb, line 25
def to_s
  "/#{character_spec}"
end

Protected Instance Methods

do_apply(control_field) click to toggle source

Applicable

# File lib/marc/spec/queries/character_spec.rb, line 45
def do_apply(control_field)
  field_value = field_value_for(control_field)
  field_value ? [field_value] : []
end
equality_attrs() click to toggle source

Part

# File lib/marc/spec/queries/character_spec.rb, line 53
def equality_attrs
  %i[character_spec]
end
to_s_inspect() click to toggle source
# File lib/marc/spec/queries/character_spec.rb, line 57
def to_s_inspect
  "/#{character_spec.inspect}"
end

Private Instance Methods

field_value_for(control_field) click to toggle source

Private methods

# File lib/marc/spec/queries/character_spec.rb, line 66
def field_value_for(control_field)
  value_str = string_value_from(control_field)
  return value_str unless character_spec

  character_spec.select_from(value_str)
end
string_value_from(tag_result) click to toggle source
# File lib/marc/spec/queries/character_spec.rb, line 73
def string_value_from(tag_result)
  return tag_result if tag_result.is_a?(String)
  return tag_result.value if tag_result.respond_to?(:value)
end