class ReVIEW::Book::Chapter
Attributes
book[R]
number[R]
Public Class Methods
new(book, number, name, path, io = nil)
click to toggle source
# File lib/review/book/chapter.rb, line 21 def initialize(book, number, name, path, io = nil) @book = book @number = number @name = name @path = path @io = io @title = nil if @io begin @content = @io.read rescue @content = nil end else @content = nil end if !@content && @path && File.exist?(@path) @content = File.read(@path, :mode => 'r:BOM|utf-8') @number = nil if ['nonum', 'nodisp', 'notoc'].include?(find_first_header_option) end @list_index = nil @table_index = nil @footnote_index = nil @image_index = nil @icon_index = nil @numberless_image_index = nil @indepimage_index = nil @headline_index = nil @column_index = nil @volume = nil end
Public Instance Methods
find_first_header_option()
click to toggle source
# File lib/review/book/chapter.rb, line 53 def find_first_header_option f = LineInput.new(Preprocessor::Strip.new(StringIO.new(@content))) while f.next? case f.peek when /\A=+[\[\s\{]/ m = /\A(=+)(?:\[(.+?)\])?(?:\{(.+?)\})?(.*)/.match(f.gets) return m[2] # tag when %r</\A//[a-z]+/> line = f.gets if line.rstrip[-1,1] == "{" f.until_match(%r<\A//\}>) end end f.gets end nil end
format_number(heading = true)
click to toggle source
# File lib/review/book/chapter.rb, line 75 def format_number(heading = true) return "" unless @number if on_PREDEF? return "#{@number}" end if on_APPENDIX? return "#{@number}" if @number < 1 || @number > 27 if @book.config["appendix_format"] raise ReVIEW::ConfigError, "'appendix_format:' in config.yml is obsoleted." end i18n_appendix = I18n.get("appendix") fmt = i18n_appendix.scan(/%\w{1,3}/).first || "%s" I18n.update({"appendix_without_heading" => fmt}) if heading return I18n.t("appendix", @number) else return I18n.t("appendix_without_heading", @number) end end if heading "#{I18n.t("chapter", @number)}" else "#{@number}" end end
inspect()
click to toggle source
# File lib/review/book/chapter.rb, line 71 def inspect "\#<#{self.class} #{@number} #{@path}>" end
on_APPENDIX?()
click to toggle source
# File lib/review/book/chapter.rb, line 115 def on_APPENDIX? on_FILE?(@book.read_APPENDIX) end
on_CHAPS?()
click to toggle source
# File lib/review/book/chapter.rb, line 107 def on_CHAPS? on_FILE?(@book.read_CHAPS) end
on_POSTDEF?()
click to toggle source
# File lib/review/book/chapter.rb, line 119 def on_POSTDEF? on_FILE?(@book.read_POSTDEF) end
on_PREDEF?()
click to toggle source
# File lib/review/book/chapter.rb, line 111 def on_PREDEF? on_FILE?(@book.read_PREDEF) end
Private Instance Methods
on_FILE?(contents)
click to toggle source
# File lib/review/book/chapter.rb, line 125 def on_FILE?(contents) contents.lines.map(&:strip).include?("#{id()}#{@book.ext()}") end