class Eco::Data::Files::FilePattern

Public Class Methods

new(file = "") click to toggle source
# File lib/eco/data/files/file_pattern.rb, line 5
def initialize(file = "")
  @source_file = file
end

Public Instance Methods

any?(files, dir: nil) click to toggle source
# File lib/eco/data/files/file_pattern.rb, line 17
def any?(files, dir: nil)
  return false unless files.is_a?(Array)
  files.any? { |file|  match?(file, dir: dir) }
end
match?(file, dir: nil) click to toggle source
# File lib/eco/data/files/file_pattern.rb, line 13
def match?(file, dir: nil)
  /#{Regexp.escape(self.pattern(dir))}/i.match?(file)
end
pattern(dir = nil) click to toggle source
# File lib/eco/data/files/file_pattern.rb, line 22
def pattern(dir = nil)
  return File.join(dir, "*") if @source_file.to_s.empty?
  filename = File.basename(@source_file)
  path = File.dirname(@source_file)
  path = File.join(dir, path) if dir
  wildcard = (filename =~ /\*/)? "" : "*"
  File.join(path, wildcard + filename)
end
resolve(dir: nil, start: "") click to toggle source
# File lib/eco/data/files/file_pattern.rb, line 9
def resolve(dir: nil, start: "")
  pattern(dir).gsub('*', start)
end