Sha256: f146ff7d0b063fdae1a7dd7e043086874846ab12cfbe500613af885dc0141650
Contents?: true
Size: 1.57 KB
Versions: 2
Compression:
Stored size: 1.57 KB
Contents
# frozen_string_literal: true module Phlex::Rails::HelperMacros # Register a Rails helper that returns safe HTML to be pushed to the output buffer. def register_output_helper(method_name) class_eval(<<-RUBY, __FILE__, __LINE__ + 1) # frozen_string_literal: true def #{method_name}(*args, **kwargs, &block) context = @_context return if context.fragments && !context.in_target_fragment output = if block helpers.#{method_name}(*args, **kwargs) { capture(&block) } else helpers.#{method_name}(*args, **kwargs) end raw(output) end RUBY end # Register a Rails helper that returns a value that shouldn’t be pushed to the output buffer. def register_value_helper(method_name) class_eval(<<-RUBY, __FILE__, __LINE__ + 1) # frozen_string_literal: true def #{method_name}(*args, **kwargs, &block) if block helpers.#{method_name}(*args, **kwargs) { capture(&block) } else helpers.#{method_name}(*args, **kwargs) end end RUBY end # @api private def register_builder_yielding_helper(method_name, builder) class_eval(<<-RUBY, __FILE__, __LINE__ + 1) # frozen_string_literal: true def #{method_name}(*args, **kwargs) context = @_context return if context.fragments && !context.in_target_fragment output = if block_given? helpers.#{method_name}(*args, **kwargs) { |form| capture do yield( #{builder.name}.new(form, view: self ) ) end } else helpers.#{method_name}(*args, **kwargs) end raw(output) end RUBY end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
phlex-rails-2.0.0.beta2 | lib/phlex/rails/helper_macros.rb |
phlex-rails-2.0.0.beta1 | lib/phlex/rails/helper_macros.rb |