Sha256: b0272eaa71c62ad811488c02b0e4f12a37adff2f4d8336a4457fe7310bae4e05
Contents?: true
Size: 1.18 KB
Versions: 1
Compression:
Stored size: 1.18 KB
Contents
module Nyanko class Function attr_reader :block, :unit, :label class << self def units @units ||= [] end def current_unit units.last end end def initialize(unit, label, &block) @unit = unit @label = label @block = block end def invoke(context, options = {}) with_unit_stack(context) do with_unit_view_path(context) do context.instance_eval(&block) end end end def css_classes if Config.compatible_css_class %W[ extension ext_#{unit.unit_name} ext_#{unit.unit_name}-#{label} ] else %W[ unit unit__#{unit.unit_name} unit__#{unit.unit_name}__#{label} ] end end private def with_unit_stack(context) context.units << @unit self.class.units << @unit yield ensure self.class.units.pop context.units.pop end def with_unit_view_path(context) if context.view? context.view_paths.unshift unit.resolver end yield ensure context.view_paths.paths.shift if context.view? end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
nyanko-0.0.7 | lib/nyanko/function.rb |