Sha256: 7cb1c038d44219214a945ab7878f669c23e21c909b366ce7b1098862d7c50789

Contents?: true

Size: 981 Bytes

Versions: 10

Compression:

Stored size: 981 Bytes

Contents

require 'review'
module ReVIEW
  class HTMLToc
    def initialize(basedir)
      @tochtmltxt = "toc-html.txt"
      @basedir = basedir
    end

    def add_item(level, filename, title, args)
      args_str = encode_args(args)
      line = [level, filename, title, args_str].join("\t")
      File.open(tocfilename, "a") do |f|
        f.write "#{line}\n"
      end
    end

    def each_item
      File.open(tocfilename) do |f|
        f.each_line do |line|
          level, file, title, args_str = line.chomp.split("\t")
          args = decode_args(args_str)
          yield level, file, title, args
        end
      end
    end

    def tocfilename
      File.join(@basedir, @tochtmltxt)
    end

    def decode_args(args_str)
      args = Hash.new
      args_str.split(/,\s*/).each do |pair|
        key, val = pair.split("=")
        args[key.to_sym] = val
      end
      args
    end

    def encode_args(args)
      args.map{|k,v| "#{k}=#{v}"}.join(",")
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
review-1.7.2 lib/review/htmltoc.rb
review-1.7.1 lib/review/htmltoc.rb
review-peg-0.2.2 lib/review/htmltoc.rb
review-peg-0.2.1 lib/review/htmltoc.rb
review-peg-0.2.0 lib/review/htmltoc.rb
review-peg-0.1.3 lib/review/htmltoc.rb
review-peg-0.1.2 lib/review/htmltoc.rb
review-peg-0.1.1 lib/review/htmltoc.rb
review-peg-0.1.0 lib/review/htmltoc.rb
review-1.7.0 lib/review/htmltoc.rb