]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/gems/composite_primary_keys-1.1.0/lib/composite_primary_keys/migration.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 / migration.rb
diff --git a/vendor/gems/composite_primary_keys-1.1.0/lib/composite_primary_keys/migration.rb b/vendor/gems/composite_primary_keys-1.1.0/lib/composite_primary_keys/migration.rb
new file mode 100644 (file)
index 0000000..2a50404
--- /dev/null
@@ -0,0 +1,20 @@
+ActiveRecord::ConnectionAdapters::ColumnDefinition.send(:alias_method, :to_s_without_composite_keys, :to_s)
+
+ActiveRecord::ConnectionAdapters::ColumnDefinition.class_eval <<-'EOF'
+  def to_s
+    if name.is_a? Array
+      "PRIMARY KEY (#{name.join(',')})"
+    else
+      to_s_without_composite_keys
+    end
+  end
+EOF
+
+ActiveRecord::ConnectionAdapters::TableDefinition.class_eval <<-'EOF'
+  def [](name)
+    @columns.find { |column|
+      !column.name.is_a?(Array) && column.name.to_s == name.to_s
+    }
+  end
+EOF
\ No newline at end of file