Module: Engine::Serializable::ClassMethods
- Defined in:
- lib/engine/serialization/serializable.rb
Instance Method Summary collapse
- #create(**attrs) ⇒ Object
- #inherited(subclass) ⇒ Object
- #serializable_attributes ⇒ Object
- #serialize(*attributes) ⇒ Object
Instance Method Details
#create(**attrs) ⇒ Object
63 64 65 66 67 68 69 70 71 |
# File 'lib/engine/serialization/serializable.rb', line 63 def create(**attrs) instance = allocate instance.instance_variable_set(:@uuid, SecureRandom.uuid) attrs.each do |attr, value| instance.instance_variable_set("@#{attr}", value) end instance.awake instance end |
#inherited(subclass) ⇒ Object
43 44 45 46 |
# File 'lib/engine/serialization/serializable.rb', line 43 def inherited(subclass) super Serializable.register_class(subclass) end |
#serializable_attributes ⇒ Object
53 54 55 56 57 58 59 60 61 |
# File 'lib/engine/serialization/serializable.rb', line 53 def serializable_attributes parent_attrs = if superclass.respond_to?(:serializable_attributes) superclass.serializable_attributes else [] end own_attrs = @own_serializable_attributes || [] parent_attrs + own_attrs end |
#serialize(*attributes) ⇒ Object
48 49 50 51 |
# File 'lib/engine/serialization/serializable.rb', line 48 def serialize(*attributes) @own_serializable_attributes ||= [] @own_serializable_attributes.concat(attributes) end |