module Swee::Lodder

Constants

CACHE_FILE_MTIME_DIR
EXTENSION_NAMES

Public Instance Methods

all() click to toggle source
# File lib/swee/lodder.rb, line 87
def all
  conditional_require
  base_require
end
app_require() click to toggle source

用户配置

# File lib/swee/lodder.rb, line 70
def app_require
  # require_relative './application'
  begin
    require File.expand_path('config', ENV["app_path"])
  rescue LoadError
    raise "未找到config.rb" 
  end
end
base_require() click to toggle source
# File lib/swee/lodder.rb, line 34
def base_require
  require_relative './support'
  require_relative './config'
  # require_relative './application'

  # patches
  require_relative './patches/logger.rb'

  # app
  require_relative './routes'
  require_relative './helper'
  require_relative './controller_filter'
  require_relative './controller'
  require_relative './view'
  require_relative './app_executor'

  # middlewaves
  require_relative './middlewaves/content_length'
  require_relative './middlewaves/common_logger'
  require_relative './middlewaves/reloader'

  # thin
  require_relative './thin/headers'
  require_relative './thin/request'
  require_relative './thin/response'

  # server
  require_relative './swee_logger'
  require_relative './daemonize'
  require_relative './connection'
  require_relative './server'
  require_relative './exception'

end
cache_file_mtime() click to toggle source
# File lib/swee/lodder.rb, line 10
def cache_file_mtime
  CACHE_FILE_MTIME_DIR.each { |d| Lodder.search_app_file(d) }
end
conditional_require() click to toggle source

条件读取

# File lib/swee/lodder.rb, line 80
def conditional_require
  # 存在 AR 读取
  unless Gem.find_files("active_record").empty? 
    require 'active_record'
  end
end
mtime_files() click to toggle source
# File lib/swee/lodder.rb, line 14
def mtime_files
  @@mtime_files_cache
end
search_app_file(dir) click to toggle source

递归寻找目录下所有文件 保存为如下结构(用于 代码修改 reload) filename => mtime

# File lib/swee/lodder.rb, line 21
def search_app_file dir
  app_path = ENV["app_path"]
  Dir.glob("#{app_path}/#{dir}/*") do |file|
    if EXTENSION_NAMES.include? File.extname(file).downcase
      @@mtime_files_cache[file] = File.mtime(file)
    else
      if File.directory?(file)
        search_app_file(dir + "/" + file.split("/").last)
      end
    end
  end
end