class Grouik::Helpers::Loader

Loader helper, see “Grouik::Loader“

Public Instance Methods

collect_loadables(paths) click to toggle source

Collect loadables by paths

@param [Array<String>] paths @return [Grouik::Types::Loadables]

# File src/lib/grouik/helpers/loader.rb, line 61
def collect_loadables(paths)
  loadables = self.make_loadables

  paths.each do |path|
    self.files_in_path(path).each do |file|
      loadables = loadables.add_file(file, path.to_s)
    end
  end

  loadables
end
files_in_path(path) click to toggle source

@param [String] path @return [Array<Pathname>]

# File src/lib/grouik/helpers/loader.rb, line 47
def files_in_path(path)
  loaddir = path.to_s
  basereg = %r{^#{Regexp.quote(loaddir)}\/}

  Dir.glob(path.join('**/*.rb'))
    .sort
    .map { |file| file.gsub(basereg, '') }
    .map { |file| Pathname.new(file) }
end
make_ignores(input) click to toggle source

Make ignores

@param [Array<String|Regexp>] input @return [Array<Regexp>]

# File src/lib/grouik/helpers/loader.rb, line 24
def make_ignores(input)
  input.to_a.map { |s| s.is_a?(Regexp) ? s : /^#{s}$/ }
end
make_loadables() click to toggle source

Make loadables

@@return [Grouik::Types::Loadables]

# File src/lib/grouik/helpers/loader.rb, line 16
def make_loadables
  Grouik::Types::Loadables.new
end
pwd() click to toggle source

@return [Pathname]

# File src/lib/grouik/helpers/loader.rb, line 41
def pwd
  Pathname.new(Dir.pwd)
end
register_paths(basedir, paths) click to toggle source

Register paths

@param [String] basedir @param [Array<String|Pathname>] paths

# File src/lib/grouik/helpers/loader.rb, line 32
def register_paths(basedir, paths)
  basedir = Pathname.new(basedir)

  paths.reverse.each do |path|
    $LOAD_PATH.unshift basedir.realpath.join(path).to_s
  end
end