@m_seki の

I like ruby tooから引っ越し

ReVIEW

書籍を書く予定は当面ないのだけど、青木さんのReVIEWがまた人気っぽいのでtarを展開してみた。
フォーマッタを見かけたらWikiを作りたくなるので、さっそく練習。

とりあえず文字列を与えてHTML片を返してもらうことに。ファイルを作らずに変換させたかったけど、自然に書けなかったので一時ファイルを作るようにしました。

require 'review/env'
require 'review/compiler'
require 'review/htmlbuilder'
require 'monitor'
require 'fileutils'

class ReHTML
  include MonitorMixin
  def initialize(dir='work')
    super()
    @dir = dir
    FileUtils.rm_r(@dir, :force => true)
    FileUtils.mkdir(@dir)
    File.open(File.join(@dir, 'CHAPS'), 'w') {|f| f.write("volatile.re\n")}
    @env = ReVIEW::Environment.load(@dir)
    @compiler = ReVIEW::Compiler.new(ReVIEW::HTMLBuilder.new(false))
  end
  
  def compile(str)
    synchronize do
      File.open(File.join(@dir, 'volatile.re'), 'w') {|f| f.write(str)}
      @compiler.compile(@env.chapter('volatile'))
    end
  end
end  

if __FILE__ == $0
  rhtml = ReHTML.new
  puts rhtml.compile(<<EOS)
= Hello
Hello, World.

== Again
Hello, Again
EOS
end