prototype/lib/protodoc.rb

38 lines
723 B
Ruby
Raw Permalink Normal View History

2007-01-18 22:24:27 +00:00
require 'erb'
class String
def lines
split $/
end
def strip_whitespace_at_line_ends
lines.map {|line| line.gsub(/\s+$/, '')} * $/
end
end
module Protodoc
module Environment
def include(*filenames)
filenames.map {|filename| Preprocessor.new(filename).to_s}.join("\n")
end
end
class Preprocessor
include Environment
def initialize(filename)
filename = File.join(filename.split('/'))
2007-01-18 22:24:27 +00:00
@filename = File.expand_path(filename)
@template = ERB.new(IO.read(@filename), nil, '%')
end
def to_s
@template.result(binding).strip_whitespace_at_line_ends
end
end
end
if __FILE__ == $0
print Protodoc::Preprocessor.new(ARGV.first)
end