Sha256: df4e221f129cc95aff99edbebcb6b4bac031469fd27358facbdd8286e88625bf

Contents?: true

Size: 1.42 KB

Versions: 6

Compression:

Stored size: 1.42 KB

Contents

require 'slim-rails/version'
require 'rails'
require 'slim'
require 'slim-rails/register_engine'

module Slim
  module Rails
    class Railtie < ::Rails::Railtie
      config.app_generators.template_engine :slim

      initializer 'slim_rails.configure_template_digestor' do |app|
        Slim::Rails::RegisterEngine.register_engine(app, config)

        ActiveSupport.on_load(:action_view) do
          ActiveSupport.on_load(:after_initialize) do
            begin
              if defined?(CacheDigests::DependencyTracker)
                # 'cache_digests' gem being used (overrides Rails 4 implementation)
                CacheDigests::DependencyTracker.register_tracker :slim, CacheDigests::DependencyTracker::ERBTracker

                if ::Rails.env.development?
                  # recalculate cache digest keys for each request
                  CacheDigests::TemplateDigestor.cache = ActiveSupport::Cache::NullStore.new
                end
              elsif ::Rails.version.to_s >= '4.0'
                # will only apply if Rails 4, which includes 'action_view/dependency_tracker'
                require 'action_view/dependency_tracker'
                ActionView::DependencyTracker.register_tracker :slim, ActionView::DependencyTracker::ERBTracker
              end
            rescue
              # likely this version of Rails doesn't support dependency tracking
            end
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
slim-rails-3.4.0 lib/slim-rails.rb
slim-rails-3.3.0 lib/slim-rails.rb
slim-rails-3.2.0 lib/slim-rails.rb
slim-rails-3.1.3 lib/slim-rails.rb
slim-rails-3.1.2 lib/slim-rails.rb
slim-rails-3.1.1 lib/slim-rails.rb