module Deface::Search::ClassMethods

Public Instance Methods

find(details) click to toggle source

finds all applicable overrides for supplied template

# File lib/deface/search.rb, line 7
def find(details)
  return [] if self.all.empty? || details.empty?

  virtual_path = details[:virtual_path].dup
  return [] if virtual_path.nil?

  [/^\//, /\.\w+\z/].each { |regex| virtual_path.gsub!(regex, '') }

  result = []
  result << self.all[virtual_path.to_sym].try(:values)

  result.flatten.compact.sort_by &:sequence
end
find_using(virtual_path) click to toggle source

finds all overrides that are using a template / parital as there source

# File lib/deface/search.rb, line 23
def find_using(virtual_path)
  self.all.map do |key, overrides_by_name|
    overrides_by_name.values.select do |override|
      [:template, :partial].include?(override.source_argument) && override.args[override.source_argument] == virtual_path
    end
  end.flatten
end