class Dot_Why::Template
Attributes
sections[R]
Public Class Methods
def_sections(*args)
click to toggle source
# File lib/dot_why.rb, line 13 def def_sections *args @sections ||= {} args.each { |v| @sections[v] = true } end
Also aliased as: def_section
new(raw_file, *args)
click to toggle source
Calls superclass method
# File lib/dot_why.rb, line 31 def initialize raw_file, *args @file = file = File.expand_path(raw_file).sub(".rb", "") + '.rb' @_blocks = {} super(*args) end
Public Instance Methods
content()
click to toggle source
# File lib/dot_why.rb, line 58 def content main end
def_sections(*args)
click to toggle source
# File lib/dot_why.rb, line 26 def def_sections *args self.class.def_sections *args end
Also aliased as: def_section
eval_main()
click to toggle source
# File lib/dot_why.rb, line 41 def eval_main eval(File.read(@file.to_s), nil, @file, 1) end
file_stamp()
click to toggle source
main_file()
click to toggle source
# File lib/dot_why.rb, line 37 def main_file @file end
partial(file_or_dir, file = nil)
click to toggle source
# File lib/dot_why.rb, line 45 def partial file_or_dir, file = nil file = if file dir = Dir.exist?(file_or_dir) ? file_or_dir : File.dirname(file_or_dir) File.join(dir, file) else file_or_dir end eval(File.read(file), nil, file, 1) end
script(*args)
click to toggle source
Calls superclass method
Ok#script
# File lib/dot_why.rb, line 115 def script *args if args.size == 1 && args.first.is_a?(String) name = args.first full = "#{name}.js?#{file_stamp}" super(:type=>"text/javascript", :src=>"#{use_file full}") else super end end
section(name, pos = :bottom, *args, &b)
click to toggle source
# File lib/dot_why.rb, line 70 def section name, pos = :bottom, *args, &b raise "Section not defined: #{name}" if !self.class.sections[name] if not block_given? (@_blocks[name] || []).each { |bl| bl.call } return end @_blocks[name] ||= [] if (pos == :top) @_blocks[name].unshift(b) elsif (pos == :replace) @_blocks[name] = [b] else @_blocks[name].push(b) end end
stylesheet(name)
click to toggle source
# File lib/dot_why.rb, line 102 def stylesheet name filename = if name[/\:/] name else if name['/'] "#{name}.css?#{file_stamp}" else "/css/#{name}.css?#{file_stamp}" end end link(:rel=>'stylesheet', :type=>'text/css', :href=>use_file(filename), :media=>'screen') end
use_file(raw_name)
click to toggle source
# File lib/dot_why.rb, line 62 def use_file raw_name name = raw_name.split('?').first @files ||= {} raise "File already used: #{name.inspect}" if @files[name] @files[name] = true raw_name end
view_name()
click to toggle source
# File lib/dot_why.rb, line 88 def view_name @view_name ||= begin base = File.basename(main_file).sub(".rb", '') dir = File.basename(File.dirname main_file) "#{dir}/#{base}" end end