Sha256: 061faa69d220a51f5dacc8f2590ba1ce87a16cd10bd9ae45ba149fb60e3bdc1b

Contents?: true

Size: 949 Bytes

Versions: 3

Compression:

Stored size: 949 Bytes

Contents

# Copyright (c) 2023 M.J.N. Corino, The Netherlands
#
# This software is released under the MIT license.

module Wx

  # Function used to create the correct persistent adapter for the given object.
  def self.create_persistent_object(obj)
    obj.create_persistent_object
  end

  # A shorter synonym for {Wx::PersistenceManager#register_and_restore}.
  def self.persistent_register_and_restore(obj, name=nil)
    obj.name = name if name && !name.empty?
    PersistenceManager.get.register_and_restore(obj)
  end

  class PersistenceManager

    class << self

      # Cache the global instance to keep it safe from GC

      wx_get = instance_method :get
      define_method :get do
        @the_manager ||= wx_get.bind(self).call
      end

      wx_set = instance_method :set
      define_method :set do |pman|
        wx_set.bind(self).call(pman)
        @the_manager = pman
      end

    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
wxruby3-0.9.7-x64-mingw-ucrt lib/wx/core/persistence_manager.rb
wxruby3-0.9.5-x64-mingw-ucrt lib/wx/core/persistence_manager.rb
wxruby3-0.9.4-x64-mingw-ucrt lib/wx/core/persistence_manager.rb