Module: Engine2
- Defined in:
- lib/engine2/core.rb,
lib/engine2/meta.rb,
lib/engine2/model.rb,
lib/engine2/action.rb,
lib/engine2/scheme.rb,
lib/engine2/handler.rb,
lib/engine2/version.rb,
lib/engine2/templates.rb,
lib/engine2/type_info.rb,
lib/engine2/models/Files.rb,
lib/engine2/meta/form_meta.rb,
lib/engine2/meta/link_meta.rb,
lib/engine2/meta/list_meta.rb,
lib/engine2/meta/save_meta.rb,
lib/engine2/meta/view_meta.rb,
lib/engine2/meta/infra_meta.rb,
lib/engine2/models/UserInfo.rb,
lib/engine2/meta/decode_meta.rb,
lib/engine2/meta/delete_meta.rb
Defined Under Namespace
Modules: BlobSupportMeta, MemoryModel, MetaAPISupport, MetaAngularSupport, MetaApproveSupport, MetaBulkDeleteSupport, MetaDeleteSupport, MetaListSupport, MetaMenuSupport, MetaModelSupport, MetaOnChangeSupport, MetaPanelSupport, MetaQuerySupport, MetaTabSupport, MetaViewSupport, Model
Classes: Action, ActionBundle, ActionMenuBuilder, BlobStoreMeta, BulkDeleteMeta, ConfirmMeta, CreateMeta, DecodeEntryMeta, DecodeListMeta, DecodeMeta, DeleteMeta, DeleteMetaBase, DownloadBlobStoreMeta, DownloadFileStoreMeta, DownloadForeignBlobStoreMeta, DummyMeta, E2Error, E2Files, FileStoreMeta, ForeignBlobStoreMeta, FormMeta, Handler, InsertMeta, ListMeta, LoginFormMeta, LoginMeta, LogoutFormMeta, LogoutMeta, ManyToOneListMeta, MenuBuilder, MenuMeta, Meta, ModifyMeta, SaveMeta, Schemes, SearchTemplates, StarToManyBulkUnlinkMeta, StarToManyFieldLinkListMeta, StarToManyFieldMeta, StarToManyFieldUnlinkMeta, StarToManyLinkListMeta, StarToManyLinkMeta, StarToManyListMeta, StarToManyUnlinkMeta, StarToManyUnlinkMetaBase, Templates, TypeAheadMeta, TypeInfo, UpdateMeta, UploadBlobStoreMeta, UploadFileStoreMeta, UserInfo, ViewMeta
Constant Summary
collapse
- VERSION =
[MAJOR, MINOR, TINY].join('.').freeze
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
Returns the value of attribute app.
438
439
440
|
# File 'lib/engine2/core.rb', line 438
def app
@app
end
|
.core_loaded ⇒ Object
Returns the value of attribute core_loaded.
439
440
441
|
# File 'lib/engine2/core.rb', line 439
def core_loaded
@core_loaded
end
|
.reloading ⇒ Object
Returns the value of attribute reloading.
438
439
440
|
# File 'lib/engine2/core.rb', line 438
def reloading
@reloading
end
|
Class Method Details
.boot(&blk) ⇒ Object
450
451
452
|
# File 'lib/engine2/core.rb', line 450
def boot &blk
@boot_blk = blk
end
|
.bootstrap(app, opts = {}) ⇒ Object
493
494
495
496
497
498
499
500
501
|
# File 'lib/engine2/core.rb', line 493
def bootstrap app, opts = {}
@app = app
@reloading = opts[:reloading]
bootstrap_e2db
require 'engine2/pre_bootstrap'
reload
require 'engine2/post_bootstrap'
end
|
.bootstrap_e2db ⇒ Object
458
459
460
461
462
463
|
# File 'lib/engine2/core.rb', line 458
def bootstrap_e2db
e2_db_file = (defined? JRUBY_VERSION) ? "jdbc:sqlite:#{@app}/engine2.db" : "sqlite://#{@app}/engine2.db"
Engine2.const_set :E2DB, connect(e2_db_file, loggers: [Logger.new($stdout)], convert_types: false, name: :engine2)
Engine2.const_set :DUMMYDB, Sequel::Database.new(uri: 'dummy')
def DUMMYDB.synchronize *args;end
end
|
.connect(*args) ⇒ Object
445
446
447
448
|
# File 'lib/engine2/core.rb', line 445
def connect *args
db = Sequel.connect *args
db
end
|
.database(name) ⇒ Object
441
442
443
|
# File 'lib/engine2/core.rb', line 441
def database name
Object.const_set(name, yield) unless Object.const_defined?(name)
end
|
.model_boot(&blk) ⇒ Object
454
455
456
|
# File 'lib/engine2/core.rb', line 454
def model_boot &blk
@model_boot_blk = blk
end
|
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
|
# File 'lib/engine2/core.rb', line 465
def reload
@core_loaded = true
t = Time.now
Action.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 "#{app}/boot.rb"
Sequel::DATABASES.each &:load_schema_cache_from_file
@model_boot_blk.() if @model_boot_blk
load 'engine2/models/Files.rb'
load 'engine2/models/UserInfo.rb'
Dir["#{app}/models/*"].each{|m| load m}
puts "MODELS: #{Sequel::DATABASES.reduce(0){|s, d|s + d.models.size}}, Time: #{Time.now - t}"
Sequel::DATABASES.each &:dump_schema_cache_to_file
Engine2.send(:remove_const, :ROOT) if defined? ROOT
Engine2.const_set(:ROOT, Action.new(nil, :api, DummyMeta, {}))
@boot_blk.(ROOT)
ROOT.setup_action_tree
puts "BOOTSTRAP #{app}, Time: #{Time.new - t}"
end
|
6
7
8
|
# File 'lib/engine2/version.rb', line 6
def self.version
VERSION
end
|