Sha256: e6a8ca8f142d69f3c0feec7ea90f1753df22600b768a4ade1aa2cc14e9f92ceb

Contents?: true

Size: 616 Bytes

Versions: 4

Compression:

Stored size: 616 Bytes

Contents

# frozen_string_literal: true

module Phlex
	class Compiler
		module Optimizers
			class BaseOptimizer
				def initialize(node, compiler:)
					@node = node
					@compiler = compiler
				end

				def call
					if standard_element?
						@node.extend(self.class::StandardElement)
					elsif void_element?
						@node.extend(self.class::VoidElement)
					else
						false
					end
				end

				private

				def standard_element?
					HTML::STANDARD_ELEMENTS[name] && !@compiler.redefined?(name)
				end

				def void_element?
					HTML::VOID_ELEMENTS[name] && !@compiler.redefined?(name)
				end
			end
		end
	end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
phlex-0.4.0 lib/phlex/compiler/optimizers/base_optimizer.rb
phlex-0.3.2 lib/phlex/compiler/optimizers/base_optimizer.rb
phlex-0.3.1 lib/phlex/compiler/optimizers/base_optimizer.rb
phlex-0.3.0 lib/phlex/compiler/optimizers/base_optimizer.rb