Sha256: 2da58ce09d2caa181f11e4e136c6534e966b5ea9e9ac8876022648ec289d5d6a

Contents?: true

Size: 1.52 KB

Versions: 15

Compression:

Stored size: 1.52 KB

Contents

# encoding: utf-8
#
# Copyright (c) 2008-2014 Minero Aoki, Kenshi Muto, Masayoshi Takahashi,
#                         KADO Masanori
#
# This program is free software.
# You can distribute or modify this program under the terms of
# the GNU LGPL, Lesser General Public License version 2.1.
#

module ReVIEW

  # Secion Counter class
  #
  class SecCounter
    def initialize(n, chapter)
      @chapter = chapter
      reset(n)
    end

    def reset(n)
      @counter = Array.new(n, 0)
    end

    def inc(level)
      n = level - 2
      if n >= 0
        @counter[n] += 1
      end
      if @counter.size > n
        (n+1 .. @counter.size).each do |i|
          @counter[i] = 0
        end
      end
    end

    def anchor(level)
      str = "#{@chapter.format_number(false)}"
      0.upto(level-2) do |i|
        str << "-#{@counter[i]}"
      end
      str
    end

    def prefix(level, secnolevel)
      return nil if @chapter.number.blank?

      if level == 1
        if secnolevel >= 1
          if @chapter.is_a? ReVIEW::Book::Part
            num = @chapter.number
            return "#{I18n.t('part', num)}#{I18n.t("chapter_postfix")}"
          else
            return "#{@chapter.format_number}#{I18n.t("chapter_postfix")}"
          end
        end
      else
        if secnolevel >= level
          prefix = @chapter.format_number(false)
          0.upto(level - 2) do |i|
            prefix << ".#{@counter[i]}"
          end
          prefix << I18n.t("chapter_postfix")
          return prefix
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
review-2.1.0 lib/review/sec_counter.rb
review-2.0.0 lib/review/sec_counter.rb
review-1.7.2 lib/review/sec_counter.rb
review-1.7.1 lib/review/sec_counter.rb
review-peg-0.2.2 lib/review/sec_counter.rb
review-peg-0.2.1 lib/review/sec_counter.rb
review-peg-0.2.0 lib/review/sec_counter.rb
review-peg-0.1.3 lib/review/sec_counter.rb
review-peg-0.1.2 lib/review/sec_counter.rb
review-peg-0.1.1 lib/review/sec_counter.rb
review-peg-0.1.0 lib/review/sec_counter.rb
review-1.7.0 lib/review/sec_counter.rb
review-1.6.0 lib/review/sec_counter.rb
review-2.0.0.beta1 lib/review/sec_counter.rb
review-1.5.0 lib/review/sec_counter.rb