class Onboard::Finder

Attributes

haystack[R]
needle[R]

Public Class Methods

new(needle, haystack) click to toggle source
# File lib/onboard/find.rb, line 9
def initialize(needle, haystack)
  @needle = needle
  @haystack = haystack
end

Public Instance Methods

info_ext?(file) click to toggle source
# File lib/onboard/find.rb, line 32
def info_ext?(file)
  File.extname(file) == '.info'
end
info_file(dir) click to toggle source
# File lib/onboard/find.rb, line 25
def info_file(dir)
  Find.find(dir).select do |f|
    next unless File.file?(f)
    return f if info_ext?(f)
  end
end
locate() click to toggle source
# File lib/onboard/find.rb, line 14
def locate
  found = {}
  Find.find(haystack) do |e|
    next unless File.directory?(e)
    next unless needle.include?(File.basename(e))
    file = info_file(e)
    found[e] = version(file)
  end
  found
end
version(file) click to toggle source
# File lib/onboard/find.rb, line 36
def version(file)
  File.open(file) do |g|
    g.each_line do |line|
      if line =~ /version/
        return line.scan(/.*?"(.*?)".*$/)[0].nil? ? false : line.scan(/.*?"(.*?)".*$/)[0][0]
      end
    end
  end
end