Method: Jsus::Pool#initialize

Defined in:
lib/jsus/pool.rb

#initialize(dir_or_dirs = nil) ⇒ Pool

Basic constructor.

Parameters:

  • dir_or_dirs (Array, String, nil) (defaults to: nil)

    directory or list of directories to load source packages from.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/jsus/pool.rb', line 18

def initialize(dir_or_dirs = nil)
  if dir_or_dirs
    directories = Array(dir_or_dirs)
    directories.each do |dir|
      # '**{,/*/**}' thingie is to resolve problem with not following symlinks
      # one level of symlinks
      # See also: http://stackoverflow.com/questions/357754/can-i-traverse-symlinked-directories-in-ruby-with-a-glob
      Dir[File.join(dir, '**{,/*/**}', 'package.{yml,json}')].uniq.each do |package_path|
        Package.new(File.dirname(package_path), :pool => self)
      end
    end
  end
  flush_cache!
end