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)

Generate an HTML string using Phlex’ HTML DSL
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)

Generate an SVG string using Phlex’ SVG DSL
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