Sha256: c816ad216d785b09fce0b5a54a36b6289ff98449973b858c78871b0b4da54543

Contents?: true

Size: 1015 Bytes

Versions: 7

Compression:

Stored size: 1015 Bytes

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(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(PUNK.get.app.path, dir))
end

PUNK.store[:state] = :started

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
punk-0.1.4 lib/punk/core/exec.rb
punk-0.1.3 lib/punk/core/exec.rb
punk-0.1.2 lib/punk/core/exec.rb
punk-0.1.0 lib/punk/core/exec.rb
punk-0.0.3 lib/punk/core/exec.rb
punk-0.0.2 lib/punk/core/exec.rb
punk-0.0.1 lib/punk/core/exec.rb