INNER CODE UNIT · Ruby

self

cenit-io/cenit · config/application.rb:256

    def self.setup_build_in(apps)
      apps.each do |app|
        app_module = app.app_module
        puts "Setting up #{app_module}..."
        app.tenant.switch do
          app_module.setups.each do |setup_block|
            # Keep app builder state deterministic per app/setup run and recover once from stale IDs.
            app_module.instance_variable_set(:@app_id, app.id)
            begin
              app_module.instance_eval(&setup_block)
            rescue Mongoid::Errors::DocumentNotFound => e
              fallback_app = Cenit::BuildInApp.where(namespace: app.namespace, name: app.name).first
              if fallback_app
                puts "Recovering stale build-in app reference for #{app_module}: #{e.message}"
                app_module.instance_variable_set(:@app_id, fallback_app.id)
                app_module.instance_eval(&setup_block)
              else
                raise

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…