Sha256: 65aae5333667389e94a408041e06c8aef3575c27f9a99910a3adcf5470726fc2
Contents?: true
Size: 969 Bytes
Versions: 4
Compression:
Stored size: 969 Bytes
Contents
module Flutterby class View attr_reader :node alias_method :page, :node def initialize(node) @node = node end def date_format(date, fmt) date.strftime(fmt) end def render(expr, *args) find(expr).render(*args) end def find(expr) node.find(expr) or raise "No node found for #{expr}" end class << self def for(file) # create a new view instance view = new(file) # walk the tree up to dynamically extend the view file.walk_down do |e| if view_node = e.sibling("_view.rb") case view_node.ext when "rb" then mod = Module.new mod.class_eval(view_node.source) view.extend mod else raise "Unknown view extension #{view_node.full_name}" end end end # return the finished view object view end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
flutterby-0.0.16 | lib/flutterby/view.rb |
flutterby-0.0.15 | lib/flutterby/view.rb |
flutterby-0.0.14 | lib/flutterby/view.rb |
flutterby-0.0.13 | lib/flutterby/view.rb |