lib/y_petri/agent.rb in y_petri-2.3.10 vs lib/y_petri/agent.rb in y_petri-2.3.11
- old
+ new
@@ -4,9 +4,22 @@
require_relative 'agent/hash_key_pointer'
require_relative 'agent/petri_net_aspect'
require_relative 'agent/simulation_aspect'
# A dumb agent that represents and helps the user.
+#
+# An instance of this class (an agent) helps the user to interact
+# with the world (YPetri::World instance) and the objects in it
+# (Petri net places, transitions, nets etc.). In particular, this
+# (YPetri::Agent) class is a convenient place to store various
+# "shortcuts" meant to reduce the amount of typing the user has to
+# do in order to construct and manipulate the world and its objects
+# (such as "pl" instead of "place", "tr" instead of "transition" etc.)
+# It would not be a good practice to encumber the classes where these
+# methods are implemented with these semi-idiosyncratic shortcuts. This
+# way, the implementation of the methods stays the concern of the mother
+# classes, and Agent class is responsible for improving the ergonomy
+# of their invocation.
#
class YPetri::Agent
★ PetriNetAspect # ★ means include
★ SimulationAspect