class SourceFinder::SourceFileGlobber
Give configuration, finds source file locations by using an inclusion and exclusion glob
Attributes
exclude_files_arr[W]
See README.md for documentation on these configuration parameters.
extra_source_files_arr[W]
See README.md for documentation on these configuration parameters.
source_dirs_arr[W]
See README.md for documentation on these configuration parameters.
source_file_extensions_arr[W]
See README.md for documentation on these configuration parameters.
source_files_exclude_glob[W]
See README.md for documentation on these configuration parameters.
source_files_glob[W]
See README.md for documentation on these configuration parameters.
Public Class Methods
new(globber: Dir)
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 20 def initialize(globber: Dir) @globber = globber @exclude_files_arr = nil @source_files_exclude_glob = nil @exclude_files_arr = nil end
Public Instance Methods
arr2glob(arr)
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 100 def arr2glob(arr) !arr.empty? ? "#{arr.join(',')}," : '' end
default_source_file_extensions_arr()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 59 def default_source_file_extensions_arr %w(swift cpp c html java py clj cljs scala yml sh json) end
default_source_files_exclude_glob()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 39 def default_source_files_exclude_glob '**/vendor/**' end
doc_file_extensions_arr()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 72 def doc_file_extensions_arr @doc_file_extensions_arr ||= %w(md) end
emacs_lockfile?(filename)
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 114 def emacs_lockfile?(filename) File.basename(filename) =~ /^\.#/ end
exclude_files_arr()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 43 def exclude_files_arr return @exclude_files_arr if @exclude_files_arr exclude_garbage(@globber.glob(source_files_exclude_glob)) end
exclude_garbage(files_arr)
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 118 def exclude_garbage(files_arr) files_arr.reject { |filename| emacs_lockfile?(filename) }.sort.uniq end
extra_source_files_arr()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 32 def extra_source_files_arr @extra_source_files_arr ||= (extra_ruby_files_arr + extra_js_files_arr + extra_python_files_arr + extra_groovy_files_arr) .concat(%w(Dockerfile)).sort.uniq end
make_extensions_arr(arr_var, default_arr)
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 110 def make_extensions_arr(arr_var, default_arr) arr_var || default_arr end
make_files_glob(extra_source_files_arr, dirs_arr, extensions_glob)
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 104 def make_files_glob(extra_source_files_arr, dirs_arr, extensions_glob) '{' + arr2glob(extra_source_files_arr) + "{*,.*}.{#{extensions_glob}}," + File.join("{#{dirs_arr.join(',')}}", '**', "{*,.*}.{#{extensions_glob}}") + '}' end
source_and_doc_file_extensions_arr()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 80 def source_and_doc_file_extensions_arr exclude_garbage(doc_file_extensions_arr + source_file_extensions_arr) end
source_and_doc_file_extensions_glob()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 84 def source_and_doc_file_extensions_glob source_and_doc_file_extensions_arr.join(',') end
source_and_doc_files_glob()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 95 def source_and_doc_files_glob make_files_glob(extra_source_files_arr, source_dirs_arr, source_and_doc_file_extensions_glob) end
source_dirs_arr()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 27 def source_dirs_arr @source_dirs_arr ||= (ruby_dirs_arr + js_dirs_arr + python_dirs_arr + groovy_dirs_arr).sort.uniq end
source_file_extensions_arr()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 63 def source_file_extensions_arr @source_file_extensions_arr ||= exclude_garbage((ruby_file_extensions_arr + js_file_extensions_arr + python_file_extensions_arr + groovy_file_extensions_arr + default_source_file_extensions_arr)) end
source_file_extensions_glob()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 76 def source_file_extensions_glob source_file_extensions_arr.join(',') end
source_files_arr()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 122 def source_files_arr exclude_garbage(@globber.glob(source_files_glob) - exclude_files_arr) end
source_files_exclude_glob()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 49 def source_files_exclude_glob if @exclude_files_arr "{#{exclude_files_arr.join(',')}}" elsif @source_files_exclude_glob @source_files_exclude_glob else default_source_files_exclude_glob end end
source_files_glob()
click to toggle source
# File lib/source_finder/source_file_globber.rb, line 88 def source_files_glob glob = @source_files_glob if defined? @source_files_glob glob || make_files_glob(extra_source_files_arr, source_dirs_arr, source_file_extensions_glob) end