module Archfiend::Generators::Utils

Public Class Methods

find_directory(*names) click to toggle source
# File lib/archfiend/generators/utils.rb, line 13
def find_directory(*names)
  search_up(*names) do |dirname|
    return dirname if File.directory?(dirname)
  end
end
find_file(*names) click to toggle source

Methods borrowed from Bundler source: bundler/lib/bundler/shared_helpers.rb

# File lib/archfiend/generators/utils.rb, line 7
def find_file(*names)
  search_up(*names) do |filename|
    return filename if File.file?(filename)
  end
end

Private Class Methods

search_up(*names) { |filename| ... } click to toggle source
# File lib/archfiend/generators/utils.rb, line 21
def search_up(*names)
  previous = nil
  current  = File.expand_path(Pathname.pwd).untaint

  until !File.directory?(current) || current == previous
    names.each do |name|
      filename = File.join(current, name)
      yield filename
    end
    previous = current
    current = File.expand_path('..', current)
  end
end