Sha256: 7c5e61e518d9187c6ab3bc0c3d035597c7c89fa20447c6d4681b794850b8d66d

Contents?: true

Size: 1.36 KB

Versions: 43

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

module ActionView # :nodoc:
  module PathRegistry # :nodoc:
    @view_paths_by_class = {}
    @file_system_resolvers = {}
    @file_system_resolver_mutex = Mutex.new
    @file_system_resolver_hooks = []

    class << self
      attr_reader :file_system_resolver_hooks
    end

    def self.get_view_paths(klass)
      @view_paths_by_class[klass] || get_view_paths(klass.superclass)
    end

    def self.set_view_paths(klass, paths)
      @view_paths_by_class[klass] = paths
    end

    def self.cast_file_system_resolvers(paths)
      paths = Array(paths)

      @file_system_resolver_mutex.synchronize do
        built_resolver = false
        paths = paths.map do |path|
          case path
          when String, Pathname
            path = File.expand_path(path)
            @file_system_resolvers[path] ||=
              begin
                built_resolver = true
                FileSystemResolver.new(path)
              end
          else
            path
          end
        end

        file_system_resolver_hooks.each(&:call) if built_resolver
      end

      paths
    end

    def self.all_resolvers
      resolvers = [all_file_system_resolvers]
      resolvers.concat @view_paths_by_class.values.map(&:to_a)
      resolvers.flatten.uniq
    end

    def self.all_file_system_resolvers
      @file_system_resolvers.values
    end
  end
end

Version data entries

43 entries across 43 versions & 6 rubygems

Version Path
actionview-8.0.2 lib/action_view/path_registry.rb
minato_ruby_api_client-0.2.2 vendor/bundle/ruby/3.2.0/gems/actionview-7.1.3.4/lib/action_view/path_registry.rb
actionview-8.0.1 lib/action_view/path_registry.rb
actionview-8.0.0.1 lib/action_view/path_registry.rb
actionview-7.2.2.1 lib/action_view/path_registry.rb
actionview-7.1.5.1 lib/action_view/path_registry.rb
actionview-8.0.0 lib/action_view/path_registry.rb
actionview-7.2.2 lib/action_view/path_registry.rb
actionview-7.1.5 lib/action_view/path_registry.rb
actionview-8.0.0.rc2 lib/action_view/path_registry.rb
actionview-7.2.1.2 lib/action_view/path_registry.rb
actionview-7.1.4.2 lib/action_view/path_registry.rb
actionview-8.0.0.rc1 lib/action_view/path_registry.rb
actionview-7.2.1.1 lib/action_view/path_registry.rb
actionview-7.1.4.1 lib/action_view/path_registry.rb
actionview-8.0.0.beta1 lib/action_view/path_registry.rb
omg-actionview-8.0.0.alpha9 lib/action_view/path_registry.rb
omg-actionview-8.0.0.alpha8 lib/action_view/path_registry.rb
omg-actionview-8.0.0.alpha7 lib/action_view/path_registry.rb
omg-actionview-8.0.0.alpha4 lib/action_view/path_registry.rb