class Rake::Funnel::Support::Finder

Public Class Methods

new(search_pattern, task, message = nil) click to toggle source
# File lib/rake/funnel/support/internal/finder.rb, line 9
def initialize(search_pattern, task, message = nil)
  @search_pattern = search_pattern
  @task = task
  @message = message
end

Public Instance Methods

all() click to toggle source
# File lib/rake/funnel/support/internal/finder.rb, line 36
def all
  if candidates.empty?
    raise Rake::Funnel::AmbiguousFileError.new(@message, @task.name, @search_pattern, candidates)
  end

  candidates
end
all_or_default() click to toggle source
# File lib/rake/funnel/support/internal/finder.rb, line 32
def all_or_default
  candidates
end
each() { |x| ... } click to toggle source
# File lib/rake/funnel/support/internal/finder.rb, line 15
def each
  block_given? || (return enum_for(__method__))
  all_or_default.each { |x| yield x }
end
single() click to toggle source
# File lib/rake/funnel/support/internal/finder.rb, line 24
def single
  if first_sln.nil?
    raise Rake::Funnel::AmbiguousFileError.new(@message, @task.name, @search_pattern, candidates)
  end

  first_sln
end
single_or_default() click to toggle source
# File lib/rake/funnel/support/internal/finder.rb, line 20
def single_or_default
  first_sln
end

Private Instance Methods

candidates() click to toggle source
# File lib/rake/funnel/support/internal/finder.rb, line 52
def candidates
  Dir[*@search_pattern.dup].select { |f| File.file?(f) }.uniq
end
first_sln() click to toggle source
# File lib/rake/funnel/support/internal/finder.rb, line 46
def first_sln
  return candidates.first if candidates.one?

  nil
end