foreigner 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.rdoc
CHANGED
@@ -50,11 +50,11 @@ If the column is named article_id instead of post_id, use the :column option:
|
|
50
50
|
|
51
51
|
add_foreign_key(:comments, :posts, :column => 'article_id')
|
52
52
|
|
53
|
-
|
53
|
+
A name can be specified for the foreign key constraint:
|
54
54
|
|
55
55
|
add_foreign_key(:comments, :posts, :name => 'comment_article_foreign_key')
|
56
56
|
|
57
|
-
==
|
57
|
+
== Change Table Shorthand
|
58
58
|
|
59
59
|
Foreigner adds extra behavior to change_table, which lets you define foreign keys using shorthand.
|
60
60
|
|
@@ -51,6 +51,8 @@ module Foreigner
|
|
51
51
|
# [:dependent]
|
52
52
|
# If set to <tt>:delete</tt>, the associated records in from_table are deleted when records in to_table table are deleted.
|
53
53
|
# If set to <tt>:nullify</tt>, the foreign key column is set to +NULL+.
|
54
|
+
# [:options]
|
55
|
+
# Any extra options you want appended to the foreign key definition.
|
54
56
|
def add_foreign_key(from_table, to_table, options = {})
|
55
57
|
end
|
56
58
|
|
@@ -17,6 +17,7 @@ module Foreigner
|
|
17
17
|
"FOREIGN KEY (#{quote_column_name(column)}) " +
|
18
18
|
"REFERENCES #{quote_table_name(ActiveRecord::Migrator.proper_table_name(to_table))}(#{primary_key})"
|
19
19
|
sql << " #{dependency}" if dependency.present?
|
20
|
+
sql << " #{options[:options]}" if options[:options]
|
20
21
|
|
21
22
|
execute(sql)
|
22
23
|
end
|
data/test/helper.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
|
-
require 'test/unit'
|
2
1
|
require 'rubygems'
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
|
6
|
-
require 'active_record/test_case'
|
7
|
-
require 'active_record/connection_adapters/mysql_adapter'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rails/all'
|
4
|
+
|
8
5
|
require 'foreigner'
|
data/test/mysql_adapter_test.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
require
|
1
|
+
require 'helper'
|
2
|
+
require 'foreigner/connection_adapters/mysql_adapter'
|
2
3
|
|
3
4
|
class MysqlAdapterTest < ActiveRecord::TestCase
|
4
|
-
include Foreigner::MysqlAdapter
|
5
|
+
include Foreigner::ConnectionAdapters::MysqlAdapter
|
5
6
|
|
6
7
|
def test_add_without_options
|
7
8
|
assert_equal(
|
@@ -54,6 +55,14 @@ class MysqlAdapterTest < ActiveRecord::TestCase
|
|
54
55
|
add_foreign_key(:employees, :companies, :dependent => :restrict)
|
55
56
|
)
|
56
57
|
end
|
58
|
+
|
59
|
+
def test_add_with_options
|
60
|
+
assert_equal(
|
61
|
+
"ALTER TABLE `employees` ADD CONSTRAINT `employees_company_id_fk` FOREIGN KEY (`company_id`) REFERENCES `companies`(id) " +
|
62
|
+
"on delete foo",
|
63
|
+
add_foreign_key(:employees, :companies, :options => 'on delete foo')
|
64
|
+
)
|
65
|
+
end
|
57
66
|
|
58
67
|
def test_remove_by_table
|
59
68
|
assert_equal(
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreigner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 59
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
8
|
+
- 1
|
9
|
+
version: 0.9.1
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Matthew Higgins
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2010-
|
17
|
+
date: 2010-10-23 00:00:00 -07:00
|
19
18
|
default_executable:
|
20
19
|
dependencies: []
|
21
20
|
|
@@ -54,7 +53,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
54
53
|
requirements:
|
55
54
|
- - ">="
|
56
55
|
- !ruby/object:Gem::Version
|
57
|
-
hash: 59
|
58
56
|
segments:
|
59
57
|
- 1
|
60
58
|
- 8
|
@@ -65,7 +63,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
63
|
requirements:
|
66
64
|
- - ">="
|
67
65
|
- !ruby/object:Gem::Version
|
68
|
-
hash: 17
|
69
66
|
segments:
|
70
67
|
- 1
|
71
68
|
- 3
|