Sha256: 5f14af07ba6f5ffb19525944df0346bb905c5cd18e9dcd1f5f6d164ac8ac704e

Contents?: true

Size: 938 Bytes

Versions: 6

Compression:

Stored size: 938 Bytes

Contents

# frozen_string_literal: true

module Heartml
  class Railtie < ::Rails::Railtie
    module ReloadDocsInDevelopment
      extend ActiveSupport::Concern

      included do
        before_action :reload_docs
      end

      def reload_docs
        Heartml.registered_elements.each { _1.instance_variable_set(:@doc, nil) }
      end
    end

    initializer "heartml.reload_docs_in_development" do |_app|
      unless Rails.env.production?
        ActiveSupport.on_load(:action_controller_base) do
          include ReloadDocsInDevelopment
        end
      end
    end

    config.to_prepare do
      next if Rails.env.production?

      components_folder = Rails.root.join("app", "components")
      unless File.directory?(components_folder)
        Rails.logger.error "Heartml: missing `app/components' folder, cannot load elements"
        next
      end

      Rails.autoloaders.main.eager_load_dir components_folder
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
heartml-1.0.0.beta12 lib/heartml/railtie.rb
heartml-1.0.0.beta11 lib/heartml/railtie.rb
heartml-1.0.0.beta10 lib/heartml/railtie.rb
heartml-1.0.0.beta9 lib/heartml/railtie.rb
heartml-1.0.0.beta8 lib/heartml/railtie.rb
heartml-1.0.0.beta7 lib/heartml/railtie.rb