Sha256: 7841e139ecc49b78aa924576b7efc9f2ffe2880ee9ac46bad9a9d9fea48e1df2

Contents?: true

Size: 960 Bytes

Versions: 5

Compression:

Stored size: 960 Bytes

Contents

class DBEBootstrapChanges
  class << self
    def add(class_object, selector)
      @changes ||= []
      @changes.push([class_object, selector, class_object.__source_for_selector(selector, :smalltalk)[0]])
    end

    def undo_all_changes
      @changes ||= []
      @redo_changes = []

      @changes.each do |ch|
        @redo_changes.push([ch[0], ch[1], ch[0].__source_for_selector(ch[1], :smalltalk)[0]])
        ch[0].__compile(ch[2])
      end

      @changes = []
    end

    def redo_all_changes
      @redo_changes.each do |ch|
        ch[0].__compile(ch[2])
      end
    end
  end
end

# Save original method source that will be changed later
DBEBootstrapChanges.add(AbstractException, :signalNotTrappable)

# Change some Smalltalk methods
Object.__evaluate_smalltalk(File.open("#{MaglevDatabaseExplorer.full_gem_path}/lib/maglev-database-explorer/database_views/smalltalk_classes.st", "r").read)

DBEHalt = __resolve_smalltalk_global(:DBEHalt)

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
maglev-database-explorer-0.0.5 lib/maglev-database-explorer/database_views/smalltalk_classes.rb
maglev-database-explorer-0.0.4 lib/maglev-database-explorer/database_views/smalltalk_classes.rb
maglev-database-explorer-0.0.3 lib/maglev-database-explorer/database_views/smalltalk_classes.rb
maglev-database-explorer-0.0.2 lib/maglev-database-explorer/database_views/smalltalk_classes.rb
maglev-database-explorer-0.0.1 lib/maglev-database-explorer/database_views/smalltalk_classes.rb