Sha256: a05b097e48a69c8ddf8af01c7c26d0f6875ffae07468038e658f4cc920ccbd22

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 KB

Contents

# frozen_string_literal: true

module Ruby2html
  class TemplateHandler
    class_attribute :default_format
    self.default_format = :html

    def self.call(template, source)
      new.call(template, source)
    end

    def call(template, source)
      <<-RUBY
      begin
        previous_renderer = Thread.current[:__ruby2html_renderer__]
        renderer = Ruby2html::Render.new(self) do
          #{source}
        end
        Thread.current[:__ruby2html_renderer__] = renderer
        renderer.render_from_rails(#{template.identifier.inspect})
      ensure
        Thread.current[:__ruby2html_renderer__] = previous_renderer
      end
      RUBY
    end
  end

  class Railtie < Rails::Railtie
    initializer 'ruby2html.initializer' do
      Rails.autoloaders.main.ignore(
        Rails.root.join('app/views/**/*.html.rb'),
        Rails.root.join('app/components/**/*.html.rb')
      )
    end
  end
end

ActionView::Template.register_template_handler :rb, Ruby2html::TemplateHandler if defined? ActionView::Template

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby2html-1.4.0 lib/gem/ruby2html/railtie.rb
ruby2html-1.3.3 lib/gem/ruby2html/railtie.rb