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