module Pakyow::Application::Behavior::Aspects

Maintains known aspects and loads them.

Public Instance Methods

aspect(name) click to toggle source

Registers an app aspect by name.

# File lib/pakyow/application/behavior/aspects.rb, line 28
def aspect(name)
  (config.aspects << name.to_sym).uniq!
end

Private Instance Methods

__load_aspect(aspect, path: File.join(config.src, aspect.to_s), target: self.class) click to toggle source
# File lib/pakyow/application/behavior/aspects.rb, line 39
def __load_aspect(aspect, path: File.join(config.src, aspect.to_s), target: self.class)
  Dir.glob(File.join(path, "*.rb")).sort.each do |file_path|
    Loader.new(file_path).call(target)
  end

  Dir.glob(File.join(path, "*")).select { |sub_path| File.directory?(sub_path) }.sort.each do |directory|
    __load_aspect(aspect, path: directory, target: target)
  end
end
load_aspect(aspect, path: File.join(config.src, aspect.to_s), target: self.class) click to toggle source
# File lib/pakyow/application/behavior/aspects.rb, line 35
def load_aspect(aspect, path: File.join(config.src, aspect.to_s), target: self.class)
  __load_aspect(aspect, path: path, target: target)
end