Module: ReVIEW::Book::Compilable
Instance Attribute Summary collapse
-
#book ⇒ Object
readonly
Returns the value of attribute book.
- #content ⇒ Object
-
#path ⇒ Object
readonly
Returns the value of attribute path.
Instance Method Summary collapse
- #basename ⇒ Object
- #bibpaper(id) ⇒ Object
- #bibpaper_index ⇒ Object
- #column(id) ⇒ Object
- #column_index ⇒ Object
- #dirname ⇒ Object
- #env ⇒ Object
- #footnote(id) ⇒ Object
- #footnote_index ⇒ Object
- #headline(caption) ⇒ Object
- #headline_index ⇒ Object
- #icon_index ⇒ Object
- #image(id) ⇒ Object
- #image_index ⇒ Object
- #indepimage_index ⇒ Object
- #lines ⇒ Object
- #list(id) ⇒ Object
- #list_index ⇒ Object
- #name ⇒ Object (also: #id)
- #next_chapter ⇒ Object
- #numberless_image_index ⇒ Object
- #open(&block) ⇒ Object
- #prev_chapter ⇒ Object
- #size ⇒ Object
- #table(id) ⇒ Object
- #table_index ⇒ Object
- #title ⇒ Object
- #volume ⇒ Object
Methods included from TextUtils
Instance Attribute Details
#book ⇒ Object (readonly)
Returns the value of attribute book.
17 18 19 |
# File 'lib/review/book/compilable.rb', line 17 def book @book end |
#content ⇒ Object
75 76 77 78 79 |
# File 'lib/review/book/compilable.rb', line 75 def content @content = File.read(path()) rescue @content end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
18 19 20 |
# File 'lib/review/book/compilable.rb', line 18 def path @path end |
Instance Method Details
#basename ⇒ Object
29 30 31 32 |
# File 'lib/review/book/compilable.rb', line 29 def basename return nil unless @path File.basename(@path) end |
#bibpaper(id) ⇒ Object
148 149 150 |
# File 'lib/review/book/compilable.rb', line 148 def bibpaper(id) bibpaper_index()[id] end |
#bibpaper_index ⇒ Object
152 153 154 155 156 |
# File 'lib/review/book/compilable.rb', line 152 def bibpaper_index raise FileNotFound, "no such bib file: #{@book.bib_file}" unless @book.bib_exist? @bibpaper_index ||= BibpaperIndex.parse(@book.read_bib.lines.to_a) @bibpaper_index end |
#column(id) ⇒ Object
166 167 168 |
# File 'lib/review/book/compilable.rb', line 166 def column(id) column_index()[id] end |
#column_index ⇒ Object
170 171 172 |
# File 'lib/review/book/compilable.rb', line 170 def column_index @column_index ||= ColumnIndex.parse(lines()) end |
#dirname ⇒ Object
24 25 26 27 |
# File 'lib/review/book/compilable.rb', line 24 def dirname return nil unless @path File.dirname(@path) end |
#env ⇒ Object
20 21 22 |
# File 'lib/review/book/compilable.rb', line 20 def env @book end |
#footnote(id) ⇒ Object
104 105 106 |
# File 'lib/review/book/compilable.rb', line 104 def footnote(id) footnote_index()[id] end |
#footnote_index ⇒ Object
108 109 110 111 |
# File 'lib/review/book/compilable.rb', line 108 def footnote_index @footnote_index ||= FootnoteIndex.parse(lines()) @footnote_index end |
#headline(caption) ⇒ Object
158 159 160 |
# File 'lib/review/book/compilable.rb', line 158 def headline(caption) headline_index()[caption] end |
#headline_index ⇒ Object
162 163 164 |
# File 'lib/review/book/compilable.rb', line 162 def headline_index @headline_index ||= HeadlineIndex.parse(lines(), self) end |
#icon_index ⇒ Object
134 135 136 137 138 139 |
# File 'lib/review/book/compilable.rb', line 134 def icon_index @icon_index ||= IconIndex.parse(lines(), id(), "#{book.basedir}/#{@book.image_dir}", @book.image_types, @book.config['builder']) @icon_index end |
#image(id) ⇒ Object
113 114 115 116 117 118 |
# File 'lib/review/book/compilable.rb', line 113 def image(id) return image_index()[id] if image_index().has_key?(id) return icon_index()[id] if icon_index().has_key?(id) return numberless_image_index()[id] if numberless_image_index().has_key?(id) indepimage_index()[id] end |
#image_index ⇒ Object
127 128 129 130 131 132 |
# File 'lib/review/book/compilable.rb', line 127 def image_index @image_index ||= ImageIndex.parse(lines(), id(), "#{book.basedir}/#{@book.image_dir}", @book.image_types, @book.config['builder']) @image_index end |
#indepimage_index ⇒ Object
141 142 143 144 145 146 |
# File 'lib/review/book/compilable.rb', line 141 def indepimage_index @indepimage_index ||= IndepImageIndex.parse(lines(), id(), "#{book.basedir}/#{@book.image_dir}", @book.image_types, @book.config['builder']) end |
#lines ⇒ Object
81 82 83 84 |
# File 'lib/review/book/compilable.rb', line 81 def lines # FIXME: we cannot duplicate Enumerator on ruby 1.9 HEAD (@lines ||= content().lines.to_a).dup end |
#list(id) ⇒ Object
86 87 88 |
# File 'lib/review/book/compilable.rb', line 86 def list(id) list_index()[id] end |
#list_index ⇒ Object
90 91 92 93 |
# File 'lib/review/book/compilable.rb', line 90 def list_index @list_index ||= ListIndex.parse(lines()) @list_index end |
#name ⇒ Object Also known as: id
34 35 36 37 |
# File 'lib/review/book/compilable.rb', line 34 def name return nil unless @name File.basename(@name, '.*') end |
#next_chapter ⇒ Object
174 175 176 |
# File 'lib/review/book/compilable.rb', line 174 def next_chapter book.next_chapter(self) end |
#numberless_image_index ⇒ Object
120 121 122 123 124 125 |
# File 'lib/review/book/compilable.rb', line 120 def numberless_image_index @numberless_image_index ||= NumberlessImageIndex.parse(lines(), id(), "#{book.basedir}/#{@book.image_dir}", @book.image_types, @book.config['builder']) end |
#open(&block) ⇒ Object
68 69 70 71 |
# File 'lib/review/book/compilable.rb', line 68 def open(&block) return (block_given?() ? yield(@io) : @io) if @io File.open(path(), &block) end |
#prev_chapter ⇒ Object
178 179 180 |
# File 'lib/review/book/compilable.rb', line 178 def prev_chapter book.prev_chapter(self) end |
#size ⇒ Object
56 57 58 |
# File 'lib/review/book/compilable.rb', line 56 def size File.size(path()) end |
#table(id) ⇒ Object
95 96 97 |
# File 'lib/review/book/compilable.rb', line 95 def table(id) table_index()[id] end |
#table_index ⇒ Object
99 100 101 102 |
# File 'lib/review/book/compilable.rb', line 99 def table_index @table_index ||= TableIndex.parse(lines()) @table_index end |
#title ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/review/book/compilable.rb', line 41 def title return @title if @title @title = '' open {|f| f.each_line {|l| if l =~ /\A=+/ @title = l.sub(/\A=+(\[.+?\])?(\{.+?\})?/, '').strip break end } } @title end |
#volume ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/review/book/compilable.rb', line 60 def volume if !@volume @volume = Volume.count_file(path()) @volume.page_per_kbyte = @book.page_metric.page_per_kbyte end @volume end |