class ActionView::FixtureResolver
Use FixtureResolver in your tests to simulate the presence of files on the file system. This is used internally by Rails' own test suite, and is useful for testing extensions that have no way of knowing what the file system will look like at runtime.
Public Class Methods
new(hash = {}, pattern = nil)
click to toggle source
Calls superclass method
ActionView::FileSystemResolver.new
# File lib/action_view/testing/resolvers.rb, line 10 def initialize(hash = {}, pattern = nil) super("") if pattern ActiveSupport::Deprecation.warn "Specifying a custom path for #{self.class} is deprecated. Implement a custom Resolver subclass instead." @pattern = pattern end @hash = hash @path = "" end
Public Instance Methods
data()
click to toggle source
# File lib/action_view/testing/resolvers.rb, line 20 def data @hash end
to_s()
click to toggle source
# File lib/action_view/testing/resolvers.rb, line 24 def to_s @hash.keys.join(", ") end
Private Instance Methods
query(path, exts, _, locals, cache:)
click to toggle source
# File lib/action_view/testing/resolvers.rb, line 29 def query(path, exts, _, locals, cache:) regex = build_regex(path, exts) @hash.select do |_path, _| ("/" + _path).match?(regex) end.map do |_path, source| handler, format, variant = extract_handler_and_format_and_variant(_path) Template.new(source, _path, handler, virtual_path: path.virtual, format: format, variant: variant, locals: locals ) end.sort_by do |t| match = ("/" + t.identifier).match(regex) EXTENSIONS.keys.reverse.map do |ext| if ext == :variants && exts[ext] == :any match[ext].nil? ? 0 : 1 elsif match[ext].nil? exts[ext].length else found = match[ext].to_sym exts[ext].index(found) end end end end