Sha256: 6aeeda858c3a60a517a151351be975f31087ae2c64976ea998cff404b88ab99d

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

# Page title management for page number generation
class DjVuNumberer < DjVuTools

  # @see ObjectName#method
  def initialize file
    super
    @sections = []
  end

  # Add a labeled section.
  # @param [Hash] section
  # @see file:README.rdoc The Numberer section in the README
  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
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
djvu-tools-0.2.2 lib/djvu-tools/djvu-numberer.rb
djvu-tools-0.2.1 lib/djvu-tools/djvu-numberer.rb