Class: CSKit::Readers::ScienceHealthReader
- Inherits:
- 
      Object
      
        - Object
- CSKit::Readers::ScienceHealthReader
 
- Defined in:
- lib/cskit/readers/science_health_reader.rb
Defined Under Namespace
Classes: Paragraph
Constant Summary collapse
- NUMERALS =
- %w(vi vii ix x xi xii) 
Instance Attribute Summary collapse
- 
  
    
      #volume  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute volume. 
Instance Method Summary collapse
- 
  
    
      #each_line(line_number, page_number)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    be careful - this will go all the way to the end of the book unless you break. 
- 
  
    
      #each_paragraph(line_number, page_number)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    be careful - this will go all the way to the end of the book unless you break. 
- #get_line(line_number, page_number) ⇒ Object
- #get_line_range(range, page_number) ⇒ Object
- #get_page(page_number) ⇒ Object
- #get_paragraph(page_number, line_number) ⇒ Object
- 
  
    
      #initialize(volume)  ⇒ ScienceHealthReader 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of ScienceHealthReader. 
- #readings_for(citation) ⇒ Object
Constructor Details
#initialize(volume) ⇒ ScienceHealthReader
Returns a new instance of ScienceHealthReader.
| 14 15 16 | # File 'lib/cskit/readers/science_health_reader.rb', line 14 def initialize(volume) @volume = volume end | 
Instance Attribute Details
#volume ⇒ Object (readonly)
Returns the value of attribute volume.
| 8 9 10 | # File 'lib/cskit/readers/science_health_reader.rb', line 8 def volume @volume end | 
Instance Method Details
#each_line(line_number, page_number) ⇒ Object
be careful - this will go all the way to the end of the book unless you break
| 27 28 29 30 31 32 33 | # File 'lib/cskit/readers/science_health_reader.rb', line 27 def each_line(line_number, page_number) while page = get_page(page_number) yield get_line(line_number, page_number), line_number, page_number line_number, page_number = increment(line_number, page_number) end rescue Errno::ENOENT => e end | 
#each_paragraph(line_number, page_number) ⇒ Object
be careful - this will go all the way to the end of the book unless you break
| 36 37 38 39 40 41 42 43 44 | # File 'lib/cskit/readers/science_health_reader.rb', line 36 def each_paragraph(line_number, page_number) while paragraph = get_paragraph(page_number, line_number) yield paragraph line_number, page_number = increment( paragraph.line_end, paragraph.page_end ) end rescue Errno::ENOENT => e end | 
#get_line(line_number, page_number) ⇒ Object
| 22 23 24 | # File 'lib/cskit/readers/science_health_reader.rb', line 22 def get_line(line_number, page_number) get_page(page_number).lines[line_number - 1] end | 
#get_line_range(range, page_number) ⇒ Object
| 74 75 76 77 78 79 80 81 | # File 'lib/cskit/readers/science_health_reader.rb', line 74 def get_line_range(range, page_number) lines = [] each_line(range.first, page_number) do |line, line_number, page_number| lines << line break if line_number == range.last end lines end | 
#get_page(page_number) ⇒ Object
| 18 19 20 | # File 'lib/cskit/readers/science_health_reader.rb', line 18 def get_page(page_number) volume.get_page(page_number) end | 
#get_paragraph(page_number, line_number) ⇒ Object
| 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | # File 'lib/cskit/readers/science_health_reader.rb', line 46 def get_paragraph(page_number, line_number) original_page_number = page_number original_line_number = line_number first_line = true lines = [] each_line(line_number, page_number) do |cur_line, cur_line_number, cur_page_number| if first_line lines << cur_line else if cur_line.paragraph_start? && !first_line break else lines << cur_line end end first_line = false line_number = cur_line_number page_number = cur_page_number end Paragraph.new( lines, original_line_number, line_number, original_page_number, page_number ) end | 
#readings_for(citation) ⇒ Object
| 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | # File 'lib/cskit/readers/science_health_reader.rb', line 83 def readings_for(citation) citation.lines.map do |citation_line| lines = if citation_line.start == citation_line.finish if citation_line.only? [get_line(citation_line.start, citation.page)] else get_paragraph(citation.page, citation_line.start).lines end else get_line_range(citation_line.start..citation_line.finish, citation.page) end Reading.new(lines, citation_line) end end |