Sha256: 2018dced32984bd38394da74cb99343384e7b7ed1c6586e74ed13ddcb925eafe

Contents?: true

Size: 725 Bytes

Versions: 1

Compression:

Stored size: 725 Bytes

Contents

# frozen_string_literal: true

module Ruby2html
  module ComponentHelper
    def html(&block)
      previous_renderer = __ruby2html_renderer__
      Ruby2html::Render.new(self, &block).yield_self do |component_renderer|
        Thread.current[:__ruby2html_renderer__] = component_renderer
        component_renderer.render.html_safe
      end
    ensure
      Thread.current[:__ruby2html_renderer__] = previous_renderer
    end

    def method_missing(method, *args, &block)
      if __ruby2html_renderer__.respond_to?(method)
        __ruby2html_renderer__.send(method, *args, &block)
      else
        super
      end
    end

    def __ruby2html_renderer__
      Thread.current[:__ruby2html_renderer__]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruby2html-1.3.0 lib/gem/ruby2html/component_helper.rb