class Vocco::Generator::SourceFile
require 'vocco/generator/source_file/html_template'
NOTE_FORMATS = '.{textile,md,mkd,markdown,rdoc}'
def initialize(file, generator)
@file = file
@gen = generator
end
attr_reader :file
def dirname
File.dirname(@file)
end
def basename
File.basename(@file)
end
def short_path
@short_path ||= @file.sub(@gen.glob_regex, '')
end
def short_dirname
File.dirname(short_path).sub(/^\.\//, '')
end
def doc_basename
doc_scope + basename + '.html'
end
def doc_path
File.join(@gen.out, doc_basename)
end
def doc_link
'./' + doc_basename
end
def notes
@notes ||= Dir[note_glob].map do |path|
Tilt.new(path).render
end
end
class_eval <<-EOF, '(template)'
def render_template
#{HTML_TEMPLATE}
end
EOF
private
def doc_scope
short_dirname == '.' ? '' : short_dirname.gsub('/', '-') + '-'
end
def note_dirs
@gen.notes.inject([dirname]) do |dirs, dir|
dirs << File.join(dir, short_dirname)
end
end
def note_glob
'{' + note_dirs.join(',') + '}/' + basename + NOTE_FORMATS
end
end
Generated: | Mon Mar 14 01:26:25 +0100 2011 |
---|