Sha256: 0b8a744cdd33c510664beab90d5d733972bdc284b42df99f94bdd950dc96908c

Contents?: true

Size: 1.09 KB

Versions: 7

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

7 entries across 7 versions & 1 rubygems

Version Path
punk-0.3.6 lib/punk/core/exec.rb
punk-0.3.5 lib/punk/core/exec.rb
punk-0.3.4 lib/punk/core/exec.rb
punk-0.3.3 lib/punk/core/exec.rb
punk-0.3.2 lib/punk/core/exec.rb
punk-0.3.1 lib/punk/core/exec.rb
punk-0.2.0 lib/punk/core/exec.rb