Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Aethyr
- module Core
- module Storage
- module Hydration
- @@volatile = []
- def self.volatile(*attrs)
- @@volatile += attrs
- @@volatile.uniq!
- end
- # removes all volatle data but provides it as a map for restoration in rehydrate
- def dehydrate
- volatile_data = {}
- @@volatile.each do |attr|
- if self.instance_variable_defined?(attr)
- volatile_data[attr] = self.instance_variable_get(attr)
- begin
- self.remove_instance_variable(attr)
- rescue NameError
- end
- end
- end
- return volatile_data
- end
- def rehydrate(volatile_data)
- volatile_data.each do |attr, data|
- self.instance_variable_set(attr, data) if @@volatile.include? attr
- end
- end
- end
- end
- end
- end
- #second file =============================
- require 'aethyr/core/util/hydration'
- require 'aethyr/core/util/marshaller'
- require 'wisper'
- class Publisher
- include Aethyr::Core::Storage::Hydration
- include Marshaller[:@observer_peers, :@local_registrations]
- include Wisper::Publisher
- volatile :@local_registrations
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement