module Engine2
Constants
- TINY
- VERSION
Attributes
core_loaded[R]
Public Class Methods
boot(&blk)
click to toggle source
# File lib/engine2/core.rb, line 532 def boot &blk @boot_blk = blk end
bootstrap(path, settings = {})
click to toggle source
# File lib/engine2/core.rb, line 579 def bootstrap path, settings = {} SETTINGS.merge! settings SETTINGS[:path] = path SETTINGS[:name] ||= File::basename(path) SETTINGS.freeze Handler.set :public_folder, "public" Handler.set :views, [SETTINGS.path_for(:view_path), "#{Engine2::PATH}/views"] bootstrap_e2db require 'engine2/pre_bootstrap' reload require 'engine2/post_bootstrap' end
bootstrap_e2db()
click to toggle source
# File lib/engine2/core.rb, line 540 def bootstrap_e2db e2_db_path = "#{Engine2::SETTINGS.path_for(:db_path)}/engine2.db" e2_db_url = (defined? JRUBY_VERSION) ? "jdbc:sqlite:#{e2_db_path}" : "sqlite://#{e2_db_path}" const_set :E2DB, connect(e2_db_url, loggers: [Logger.new($stdout)], convert_types: false, name: :engine2) const_set :DUMMYDB, Sequel::Database.new(uri: 'dummy') def DUMMYDB.synchronize *args;end end
connect(*args)
click to toggle source
# File lib/engine2/core.rb, line 527 def connect *args db = Sequel.connect *args db end
database(name) { || ... }
click to toggle source
# File lib/engine2/core.rb, line 523 def database name Object.const_set(name, yield) unless Object.const_defined?(name) end
model_boot(&blk)
click to toggle source
# File lib/engine2/core.rb, line 536 def model_boot &blk @model_boot_blk = blk end
reload()
click to toggle source
# File lib/engine2/core.rb, line 548 def reload @core_loaded = true t = Time.now ActionNode.count = 0 SCHEMES.user.clear Sequel::DATABASES.each do |db| db.models.each{|n, m| Object.send(:remove_const, n) if Object.const_defined?(n)} unless db == E2DB || db == DUMMYDB end load "#{Engine2::SETTINGS[:app_path]}/boot.rb" Sequel::DATABASES.each &:load_schema_cache_from_file load 'engine2/models/Files.rb' load 'engine2/models/UserInfo.rb' Dir["#{Engine2::SETTINGS.path_for(:model_path)}/*"].each{|m| load m} @model_boot_blk.() if @model_boot_blk puts "MODELS: #{Sequel::DATABASES.reduce(0){|s, d|s + d.models.size}}, Time: #{Time.now - t}" Sequel::DATABASES.each do |db| db.dump_schema_cache_to_file db.models.each{|n, m|m.synchronize_type_info} end send(:remove_const, :ROOT) if defined? ROOT const_set(:ROOT, ActionNode.new(nil, :api, RootAction, {})) @boot_blk.(ROOT) ROOT.setup_node_tree puts "BOOTSTRAP #{Engine2::SETTINGS[:name]}, Time: #{Time.new - t}" end
version()
click to toggle source
# File lib/engine2/version.rb, line 7 def self.version VERSION end