module Phlex
def self.__expand_attribute_cache__(file_path)
def self.__expand_attribute_cache__(file_path) unless CACHED_FILES.include?(file_path) CACHED_FILES << file_path Phlex::ATTRIBUTE_CACHE.expand(File.size(file_path)) end end
def self.eager_load
def self.eager_load queue = [self] while (mod = queue.shift) mod.constants.each do |const_name| const = mod.const_get(const_name) queue << const if Module === const end end end
def self.html(&block)
def self.html(&block) HTML.call do |component| receiver = block.binding.receiver receiver.instance_variables.each do |ivar| next if component.instance_variable_defined?(ivar) value = receiver.instance_variable_get(ivar) component.instance_variable_set(ivar, value) end component.instance_exec(receiver, &block) end end
def self.svg(&block)
def self.svg(&block) SVG.call do |component| receiver = block.binding.receiver receiver.instance_variables.each do |ivar| next if component.instance_variable_defined?(ivar) value = receiver.instance_variable_get(ivar) component.instance_variable_set(ivar, value) end component.instance_exec(receiver, &block) end end