Class: Bible::BibleRefParser::Verse

Inherits:
Object
  • Object
show all
Includes:
Comparable, Enumerable
Defined in:
lib/bible/parser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(chapter, verse) ⇒ Verse

Returns a new instance of Verse.



487
488
489
490
491
492
# File 'lib/bible/parser.rb', line 487

def initialize(chapter, verse)
  raise "Verse must be an integer" unless verse.is_a?(Fixnum)

  @chapter = chapter
  @verse_number = verse
end

Instance Attribute Details

#chapterObject (readonly)

Returns the value of attribute chapter.



484
485
486
# File 'lib/bible/parser.rb', line 484

def chapter
  @chapter
end

#verseObject

Returns the value of attribute verse.



485
486
487
# File 'lib/bible/parser.rb', line 485

def verse
  @verse
end

#verse_numberObject (readonly)

Returns the value of attribute verse_number.



484
485
486
# File 'lib/bible/parser.rb', line 484

def verse_number
  @verse_number
end

Instance Method Details

#<=>(value) ⇒ Object



510
511
512
513
514
# File 'lib/bible/parser.rb', line 510

def <=>(value)
  return -1 if value.nil?
  raise "Don't know how to compare Verse and #{value.inspect} becuase it does not implement to_i." unless value.respond_to?(:to_i)
  return @verse_number.to_i <=> value.to_i
end

#==(value) ⇒ Object

Assumes value is a Fixnum and determines if it is equal to this verse.



496
497
498
499
500
# File 'lib/bible/parser.rb', line 496

def ==(value)
  return false if value.nil? || @verse_number.nil?
  raise "Don't know how to compare verse to #{value.inspect}" unless value.is_a?(Fixnum)
  return value == @verse_number
end

#inspectObject



526
527
528
# File 'lib/bible/parser.rb', line 526

def inspect
  self.to_s
end

#succObject



516
517
518
# File 'lib/bible/parser.rb', line 516

def succ
  return Verse.new(@chapter, @verse_number + 1)
end

#to_iObject



502
503
504
# File 'lib/bible/parser.rb', line 502

def to_i
  return @verse_number.to_i
end

#to_sObject



506
507
508
# File 'lib/bible/parser.rb', line 506

def to_s
  return @verse_number.to_s
end

#upto(i) {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



520
521
522
523
524
# File 'lib/bible/parser.rb', line 520

def upto(i)
  raise "Cannot enumerate to value #{i.inspect} because it does not respond to to_i." unless i.respond_to?(:to_i)
  yield(self)
  (@verse_number + 1).upto(i.to_i) { |x| yield(Verse.new(@chapter, x)) }
end