Class: Grouik::Helpers::Loader

Inherits:
Object
  • Object
show all
Defined in:
src/lib/grouik/helpers/loader.rb

Overview

Loader helper, see Grouik::Loader

Instance Method Summary collapse

Instance Method Details

#collect_loadables(paths) ⇒ Grouik::Types::Loadables

Collect loadables by paths

Parameters:

  • paths (Array<String>)

Returns:



61
62
63
64
65
66
67
68
69
70
71
# 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) ⇒ Array<Pathname>

Parameters:

  • path (String)

Returns:

  • (Array<Pathname>)


47
48
49
50
51
52
53
54
55
# 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) ⇒ Array<Regexp>

Make ignores

Parameters:

  • input (Array<String|Regexp>)

Returns:

  • (Array<Regexp>)


24
25
26
# 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_loadablesObject

Make loadables

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



16
17
18
# File 'src/lib/grouik/helpers/loader.rb', line 16

def make_loadables
  Grouik::Types::Loadables.new
end

#pwdPathname

Returns:

  • (Pathname)


41
42
43
# File 'src/lib/grouik/helpers/loader.rb', line 41

def pwd
  Pathname.new(Dir.pwd)
end

#register_paths(basedir, paths) ⇒ Object

Register paths

Parameters:

  • basedir (String)
  • paths (Array<String|Pathname>)


32
33
34
35
36
37
38
# 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