Sha256: 2058fb046785f376b2e9809542b19be854746fc0d09bc7aed48f035edd4cac46

Contents?: true

Size: 998 Bytes

Versions: 3

Compression:

Stored size: 998 Bytes

Contents

# frozen_string_literal: true

module JupyterOnRails
  module Initializer
    def self.run(root:, sandbox:)
      # Load Daru extensions
      begin
        require 'daru'
        require 'active_record'
      rescue LoadError
      else
        require 'jupyter_on_rails/daru/active_record_ext'
        require 'jupyter_on_rails/daru/data_frame_ext'

        ::ActiveRecord::Base.instance_eval do
          include ::JupyterOnRails::Daru::ActiveRecordExt
        end
        ::Daru::DataFrame.instance_eval do
          include ::JupyterOnRails::Daru::DataFrameExt
        end
      end

      original = Dir.pwd
      Dir.chdir root
      app_file = File.expand_path('config/environment.rb', root)
      require app_file
      Rails.application.require_environment!
      Dir.chdir original

      return unless sandbox

      ActiveRecord::Base.connection.begin_transaction(joinable: false)
      at_exit do
        ActiveRecord::Base.connection.rollback_transaction
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
jupyter_on_rails-0.11.0 lib/jupyter_on_rails/initializer.rb
jupyter_on_rails-0.10.0 lib/jupyter_on_rails/initializer.rb
jupyter_on_rails-0.9.0 lib/jupyter_on_rails/initializer.rb