Sha256: 40b85a5e6625b980a4ccc641915bf7ab151bc86ac31643b54083c4560ddcd829
Contents?: true
Size: 1.69 KB
Versions: 3
Compression:
Stored size: 1.69 KB
Contents
class Layout < Erector::Widget class << self def inherited(page_class) puts page_class (@@page_classes ||= []) << page_class end def generate_site FileUtils.mkdir_p(site_dir) @@page_classes.each do |page_class| page_class.generate_html unless page_class.abstract? puts page_class end end def generate_html File.open(absolute_path, 'w') do |file| file.write(new.to_html) end end def absolute_path absolutize(relative_path) end def relative_path "#{name.gsub('::', '_').underscore}.html" end def absolutize(relative_path) File.join(site_dir, relative_path) end def abstract @abstract = true end def abstract? @abstract end def site_dir File.join(File.dirname(__FILE__), "../website") end end def bluecloth(relative_path) File.open(File.join(File.dirname(__FILE__), relative_path)) do |file| rawtext BlueCloth.new(file.read).to_html end end def absolutize(relative_path) self.class.absolutize(relative_path) end def link_to(link_text, page_class, section_class=nil) if instance_of?(page_class) || section_class && is_a?(section_class) text link_text else a link_text, :href => page_class.relative_path end end end class String def underscore camel_cased_word = self return camel_cased_word unless camel_cased_word =~ /[A-Z-]|::/ word = camel_cased_word.to_s.gsub('::'.freeze, '/'.freeze) word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2'.freeze) word.gsub!(/([a-z\d])([A-Z])/, '\1_\2'.freeze) word.tr!("-".freeze, "_".freeze) word.downcase! word end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
treetop-1.6.10 | doc/sitegen.rb |
treetop-1.6.9 | doc/sitegen.rb |
treetop-1.6.8 | doc/sitegen.rb |