Class: ActionView::FileSystemResolver

Inherits:
Resolver
  • Object
show all
Defined in:
lib/action_view/template/resolver.rb

Overview

A resolver that loads files from the filesystem.

Direct Known Subclasses

FixtureResolver

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Resolver

#find_all

Constructor Details

#initialize(path) ⇒ FileSystemResolver

Returns a new instance of FileSystemResolver.

Raises:

  • (ArgumentError)


94
95
96
97
98
99
100
# File 'lib/action_view/template/resolver.rb', line 94

def initialize(path)
  raise ArgumentError, "path already is a Resolver class" if path.is_a?(Resolver)
  @unbound_templates = Concurrent::Map.new
  @path_parser = PathParser.new
  @path = File.expand_path(path)
  super()
end

Instance Attribute Details

#pathObject (readonly)

Returns the value of attribute path.



92
93
94
# File 'lib/action_view/template/resolver.rb', line 92

def path
  @path
end

Instance Method Details

#all_template_pathsObject

:nodoc:



118
119
120
121
122
123
124
125
# File 'lib/action_view/template/resolver.rb', line 118

def all_template_paths # :nodoc:
  paths = template_glob("**/*")
  paths.map do |filename|
    filename.from(@path.size + 1).remove(/\.[^\/]*\z/)
  end.uniq.map do |filename|
    TemplatePath.parse(filename)
  end
end

#built_templatesObject

:nodoc:



127
128
129
# File 'lib/action_view/template/resolver.rb', line 127

def built_templates # :nodoc:
  @unbound_templates.values.flatten.flat_map(&:built_templates)
end

#clear_cacheObject



102
103
104
105
106
# File 'lib/action_view/template/resolver.rb', line 102

def clear_cache
  @unbound_templates.clear
  @path_parser = PathParser.new
  super
end

#eql?(resolver) ⇒ Boolean Also known as: ==

Returns:

  • (Boolean)


113
114
115
# File 'lib/action_view/template/resolver.rb', line 113

def eql?(resolver)
  self.class.equal?(resolver.class) && to_path == resolver.to_path
end

#to_sObject Also known as: to_path



108
109
110
# File 'lib/action_view/template/resolver.rb', line 108

def to_s
  @path.to_s
end