class Metacosm::Model
Private Instance Methods
assemble_event(klass, addl_attrs={})
click to toggle source
# File lib/metacosm/model.rb, line 52 def assemble_event(klass, addl_attrs={}) klass.create(attributes_for_event(klass).merge(addl_attrs)) end
attributes_for_event(klass)
click to toggle source
trim down extenralized attrs for evt
# File lib/metacosm/model.rb, line 40 def attributes_for_event(klass) # assume evts attrs are attr_accessible? keys_to_keep = klass.instance_methods.find_all do |method| method != :== && method != :! && klass.instance_methods.include?(:"#{method}=") end attributes_with_external_id. delete_if {|k,v| !keys_to_keep.include?(k) } end
attributes_with_external_id()
click to toggle source
# File lib/metacosm/model.rb, line 30 def attributes_with_external_id attrs = to_h if attrs.key?(:id) new_id_key = self.class.name.split('::').last.underscore + "_id" attrs[new_id_key.to_sym] = attrs.delete(:id) end attrs end
blacklisted_attribute_names()
click to toggle source
# File lib/metacosm/model.rb, line 89 def blacklisted_attribute_names [ :@observer_peers ] end
created_event_class()
click to toggle source
# File lib/metacosm/model.rb, line 68 def created_event_class @created_event_class ||= ( created_event_name = self.class.name + "CreatedEvent" Object.const_get(created_event_name) rescue nil ) end
creation_event()
click to toggle source
# File lib/metacosm/model.rb, line 56 def creation_event assemble_event created_event_class end
destroyed_event_class()
click to toggle source
# File lib/metacosm/model.rb, line 82 def destroyed_event_class @destroyed_event_class ||= ( destroyed_event_name = self.class.name + "DestroyedEvent"; Object.const_get(destroyed_event_name) rescue nil ) end
destruction_event()
click to toggle source
# File lib/metacosm/model.rb, line 64 def destruction_event assemble_event destroyed_event_class end
emit(event)
click to toggle source
def register_observer
Simulation.current.watch(self)
end
# File lib/metacosm/model.rb, line 14 def emit(event) Simulation.current.receive(event) end
emit_creation_event()
click to toggle source
# File lib/metacosm/model.rb, line 18 def emit_creation_event emit(creation_event) if created_event_class end
emit_destruction_event()
click to toggle source
# File lib/metacosm/model.rb, line 26 def emit_destruction_event emit(destruction_event) if destroyed_event_class end
emit_updation_event()
click to toggle source
# File lib/metacosm/model.rb, line 22 def emit_updation_event emit(updation_event) if updated_event_class end
updated_event_class()
click to toggle source
# File lib/metacosm/model.rb, line 75 def updated_event_class @updated_event_class ||= ( updated_event_name = self.class.name + "UpdatedEvent"; Object.const_get(updated_event_name) rescue nil ) end
updation_event()
click to toggle source
# File lib/metacosm/model.rb, line 60 def updation_event assemble_event updated_event_class end