Sha256: 4fc254f8950201ab1e0a5e3dd53fff1b58edc9041e9fafb6085392fb5c125e87
Contents?: true
Size: 938 Bytes
Versions: 1
Compression:
Stored size: 938 Bytes
Contents
# frozen_string_literal: true module Phlex class Component include Node, Context module Initializer def initialize(*args, assigns: [], **kwargs, &block) assigns.each do |k, v| instance_variable_get(k) || instance_variable_set(k, v) end super(*args, **kwargs) template(&block) end end def initialize(**attributes) attributes.each { |k, v| instance_variable_set("@#{k}", v) } end def self.inherited(child) child.prepend(Initializer) end def render_context @_render_context ||= self end def <<(node) render_context.children << node end def render(&block) instance_eval(&block) if block_given? end def render_tag(tag, &block) old_render_context = render_context.dup @_render_context = tag instance_eval(&block) @_render_context = old_render_context end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
phlex-0.1.0 | lib/phlex/component.rb |