class I18n::Processes::Scanners::Files::CachingFileFinderProvider
Finds the files and provides their contents.
@note This class is thread-safe. All methods are cached. @since 0.9.0
Public Class Methods
new(exclude: [])
click to toggle source
@param exclude [Array<String>]
# File lib/i18n/processes/scanners/files/caching_file_finder_provider.rb, line 12 def initialize(exclude: []) @cache = {} @mutex = Mutex.new @defaults = { exclude: exclude } end
Public Instance Methods
get(**file_finder_args)
click to toggle source
Initialize a {CachingFileFinder} or get one from cache based on the constructor arguments.
@param (see FileFinder#initialize) @return [CachingFileFinder]
# File lib/i18n/processes/scanners/files/caching_file_finder_provider.rb, line 22 def get(**file_finder_args) @cache[file_finder_args] || @mutex.synchronize do @cache[file_finder_args] ||= begin args = file_finder_args.dup args[:exclude] = @defaults[:exclude] + (args[:exclude] || []) args[:exclude].uniq! CachingFileFinder.new(**args) end end end