Module: Phlex
- Defined in:
- lib/phlex.rb,
lib/phlex/version.rb
Defined Under Namespace
Modules: Error, Helpers, Kit Classes: ArgumentError, CSV, DoubleRenderError, FIFO, FIFOCacheStore, HTML, NameError, RuntimeError, SGML, SVG
Constant Summary collapse
- Loader =
Zeitwerk::Loader.for_gem.tap do |loader| loader.ignore("#{__dir__}/ruby_lsp") loader.inflector.inflect( "csv" => "CSV", "fifo" => "FIFO", "fifo_cache_store" => "FIFOCacheStore", "html" => "HTML", "sgml" => "SGML", "svg" => "SVG", ) loader.collapse("#{__dir__}/phlex/errors") loader.setup end
- Escape =
ERB::Escape
- DEPLOYED_AT =
Process.clock_gettime(Process::CLOCK_MONOTONIC, :millisecond)
- CACHED_FILES =
Set.new
- ATTRIBUTE_CACHE =
FIFO.new
- VERSION =
"2.3.1"
Class Method Summary collapse
- .__expand_attribute_cache__(file_path) ⇒ Object
-
.html(&block) ⇒ Object
Generate an HTML string using Phlex’ HTML DSL.
-
.svg(&block) ⇒ Object
Generate an SVG string using Phlex’ SVG DSL.
Class Method Details
.__expand_attribute_cache__(file_path) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/phlex.rb', line 30 def self.(file_path) unless CACHED_FILES.include?(file_path) CACHED_FILES << file_path Phlex::ATTRIBUTE_CACHE.(File.size(file_path)) end end |
.html(&block) ⇒ Object
Generate an HTML string using Phlex’ HTML DSL
38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/phlex.rb', line 38 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 |
.svg(&block) ⇒ Object
Generate an SVG string using Phlex’ SVG DSL
54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/phlex.rb', line 54 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 |