Class: DjVuNumberer
- Defined in:
- lib/djvu-tools/djvu-numberer.rb
Overview
Page title management for page number generation
Constant Summary
Constants inherited from DjVuTools
Instance Method Summary collapse
-
#add_section(section) ⇒ Object
Add a labeled section.
-
#initialize(file) ⇒ DjVuNumberer
constructor
A new instance of DjVuNumberer.
Methods inherited from DjVuTools
Constructor Details
#initialize(file) ⇒ DjVuNumberer
Returns a new instance of DjVuNumberer.
5 6 7 8 |
# File 'lib/djvu-tools/djvu-numberer.rb', line 5 def initialize file super @sections = [] end |
Instance Method Details
#add_section(section) ⇒ Object
Add a labeled section.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# 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 |