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