--- /dev/null
+module CompositePrimaryKeys\r
+ ID_SEP = ','\r
+ ID_SET_SEP = ';'\r
+\r
+ module ArrayExtension\r
+ def to_composite_keys\r
+ CompositeKeys.new(self)\r
+ end\r
+\r
+ def to_composite_ids\r
+ CompositeIds.new(self)\r
+ end\r
+ end\r
+\r
+ class CompositeArray < Array\r
+ def to_s\r
+ join(ID_SEP)\r
+ end\r
+ end\r
+\r
+ class CompositeKeys < CompositeArray\r
+\r
+ end\r
+\r
+ class CompositeIds < CompositeArray\r
+\r
+ end\r
+end\r
+\r
+Array.send(:include, CompositePrimaryKeys::ArrayExtension)\r