class DjVuNumberer
Page title management for page number generation
Public Class Methods
new(file)
click to toggle source
@see ObjectName#method
Calls superclass method
DjVuTools::new
# File lib/djvu-tools/djvu-numberer.rb, line 5 def initialize file super @sections = [] end
Public Instance Methods
add_section(section)
click to toggle source
Add a labeled section. @param [Hash] section @see file:README.rdoc The Numberer section in the README
# File lib/djvu-tools/djvu-numberer.rb, line 13 def add_section section section[:delta] ||= 1 if section[:start].nil? raise ArgumentError, 'Cannot label a range of pages with the same title' if ( section[:range].max - section[:range].min > 0 ) section[:range].each { |n| @djvu.title_page n, section[:title] } else section[:range].each_with_index do |n, i| number = section[:start] + i * section[:delta].to_i number = case section[:type] when :arabic number.to_s when :upper_roman RomanNumerals::to_roman(number).upcase when :lower_roman RomanNumerals::to_roman(number).downcase end @djvu.title_page n, "#{section[:prefix]}#{number}#{section[:suffix]}" end end end