Sha256: 21b7aa8701d946f210434240fbd6613177ccbc6baa2a16dcb2ade6247adfbc71
Contents?: true
Size: 1.18 KB
Versions: 3
Compression:
Stored size: 1.18 KB
Contents
# frozen_string_literal: true module Rake module Funnel module Support class Finder include Enumerable def initialize(search_pattern, task, message = nil) @search_pattern = search_pattern @task = task @message = message end def each block_given? || (return enum_for(__method__)) all_or_default.each { |x| yield x } end def single_or_default first_sln end def single if first_sln.nil? raise Rake::Funnel::AmbiguousFileError.new(@message, @task.name, @search_pattern, candidates) end first_sln end def all_or_default candidates end def all if candidates.empty? raise Rake::Funnel::AmbiguousFileError.new(@message, @task.name, @search_pattern, candidates) end candidates end private def first_sln return candidates.first if candidates.one? nil end def candidates Dir[*@search_pattern.dup].select { |f| File.file?(f) }.uniq end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rake-funnel-0.24.0 | lib/rake/funnel/support/internal/finder.rb |
rake-funnel-0.23.0 | lib/rake/funnel/support/internal/finder.rb |
rake-funnel-0.22.3 | lib/rake/funnel/support/internal/finder.rb |