]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/gems/composite_primary_keys-1.1.0/lib/composite_primary_keys/composite_arrays.rb
Freezing composite primary key so that we can apply TomH's patch to it, and that...
[rails.git] / vendor / gems / composite_primary_keys-1.1.0 / lib / composite_primary_keys / composite_arrays.rb
diff --git a/vendor/gems/composite_primary_keys-1.1.0/lib/composite_primary_keys/composite_arrays.rb b/vendor/gems/composite_primary_keys-1.1.0/lib/composite_primary_keys/composite_arrays.rb
new file mode 100644 (file)
index 0000000..030c416
--- /dev/null
@@ -0,0 +1,30 @@
+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