about summary refs log tree commit homepage
path: root/HACKING
diff options
context:
space:
mode:
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING12
1 files changed, 12 insertions, 0 deletions
diff --git a/HACKING b/HACKING
new file mode 100644
index 0000000..88b675b
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,12 @@
+serialization (dtas-player)
+---------------------------
+
+* objects serialize using the "to_hsh" method (like "to_hash", but omits
+  default values) and then to YAML.  We avoid exposing the fact we use
+  Ruby (or any programming language) in any formats.
+
+* every serializable class defines a "load" singleton method which takes the
+  output Hash of "to_hsh"
+
+* we avoid serializing default values to make the state file shorter and
+  more suitable for human viewing and editing.