module Parcels::Utils::PathUtils

Public Class Methods

maybe_path_under(path, under_what) click to toggle source
# File lib/parcels/utils/path_utils.rb, line 10
def maybe_path_under(path, under_what)
  path = path.to_s.strip
  under_what = under_what.to_s.strip

  if (path.length - under_what.length) > 1 && path[0..(under_what.length - 1)] == under_what &&
    path[under_what.length..under_what.length] == File::SEPARATOR

    path[(under_what.length + 1)..-1]
  end
end
path_under(path, under_what) click to toggle source
# File lib/parcels/utils/path_utils.rb, line 5
def path_under(path, under_what)
  maybe_path_under(path, under_what) ||
    raise(Errno::ENOENT, %{Path #{path.inspect} is not underneath directory #{under_what.inspect}.})
end
widget_class_file_for_alongside_file(alongside_file) click to toggle source
# File lib/parcels/utils/path_utils.rb, line 21
def widget_class_file_for_alongside_file(alongside_file)
  directory = File.dirname(alongside_file)
  basename = File.basename(alongside_file)
  basename = $1 if basename =~ /^(.+?)\./

  entries = Dir.entries(directory).select { |e| e =~ /^#{Regexp.escape(basename)}\./ && e =~ /\.rb$/i }
  entries = entries.sort_by(&:length)
  entry = entries[-1]

  File.join(directory, entry) if entry
end