module EacRubyUtils::Fs

def extname(path, limit = -1)

A [File.extname] which find multiple extensions (Ex.: .tar.gz).
def extname(path, limit = -1)
  recursive_extension(::File.basename(path), limit)
end

def extname2(path)

Shortcut to +extname(2)+.
def extname2(path)
  extname(path, 2)
end

def recursive_extension(basename, limit)

def recursive_extension(basename, limit)
  return '' if limit.zero?
  m = /\A(.+)(\.[a-z][a-z0-9]*)\z/i.match(basename)
  if m
    "#{recursive_extension(m[1], limit - 1)}#{m[2]}"
  else
    ''
  end
end