Sha256: 24efde420fb1371f7f5808455d4e74ad8063789c2c94f03796e931be029d5549

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

# frozen_string_literal: true

module PUNK
  def self.require_all(path)
    path = File.expand_path(path)
    PUNK.profile_debug("require_all", path: path) do
      if PUNK.get.app.reloadable?
        PUNK.loader.require(path)
      else
        Dir.glob(File.join(path, "**/*.rb")).sort.each { |file| require(file) }
      end
    end
  end
end

PUNK::Interface.register(:loader) do
  require "rack/unreloader"
  raise PUNK::InternalServerError, "App is not reloadable" unless PUNK.get.app.reloadable?
  retval = Rack::Unreloader.new { PUNK::App }
  require_relative "./monkey_unreloader"
  retval
end

PUNK::Interface.register(:app) do
  require_relative "app"
  PUNK.require_all(File.join(__dir__, "..", "routes"))
  PUNK.require_all(File.join(PUNK.get.app.path, "routes"))
  retval = PUNK.get.app.reloadable ? PUNK.loader : PUNK::App.freeze.app
  SemanticLogger.flush
  retval
end

PUNK.inject :loader, :app

["actions", "models", "views", "services", "workers"].each do |dir|
  PUNK.require_all(File.join(__dir__, "..", dir))
  PUNK.require_all(File.join(PUNK.get.app.path, dir))
end

PUNK.store[:state] = :started

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
punk-0.4.1 lib/punk/core/exec.rb