Class: MARC::Spec::Queries::AlNumRange

Inherits:
Object
  • Object
show all
Includes:
PositionOrRange
Defined in:
lib/marc/spec/queries/al_num_range.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Part

#eql?, #hash, #inspect

Constructor Details

#initialize(from, to) ⇒ AlNumRange


Initializer



17
18
19
# File 'lib/marc/spec/queries/al_num_range.rb', line 17

def initialize(from, to)
  @from, @to = parse_endpoints(from, to)
end

Instance Attribute Details

#fromObject (readonly)


Attributes



12
13
14
# File 'lib/marc/spec/queries/al_num_range.rb', line 12

def from
  @from
end

#toObject (readonly)


Attributes



12
13
14
# File 'lib/marc/spec/queries/al_num_range.rb', line 12

def to
  @to
end

Instance Method Details

#alphabetic?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/marc/spec/queries/al_num_range.rb', line 37

def alphabetic?
  lc_alpha?(from) || lc_alpha?(to)
end

#empty?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/marc/spec/queries/al_num_range.rb', line 41

def empty?
  from.nil? && to.nil?
end

#include?(v) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
35
# File 'lib/marc/spec/queries/al_num_range.rb', line 29

def include?(v)
  return false if empty?
  return (v < 0 && v > reverse_endpoint) if from.nil?
  return false if v < from

  to.nil? ? true : v <= to
end

#index_rangeObject



45
46
47
# File 'lib/marc/spec/queries/al_num_range.rb', line 45

def index_range
  @index_range ||= to_range
end

#select_from(seq) ⇒ Object


Instance methods



24
25
26
27
# File 'lib/marc/spec/queries/al_num_range.rb', line 24

def select_from(seq)
  raw_result = select_raw_from(seq)
  seq.is_a?(String) ? wrap_string_result(raw_result) : raw_result
end

#to_sObject


Object overrides



52
53
54
# File 'lib/marc/spec/queries/al_num_range.rb', line 52

def to_s
  "#{from || '#'}-#{to || '#'}"
end