rein 0.8.2 → 0.8.3

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.
@@ -4,7 +4,7 @@ module RC
4
4
  referencing_attribute = (options[:referencing] || "#{referenced_table.to_s.singularize}_id").to_sym
5
5
  referenced_attribute = (options[:referenced] || "id").to_sym
6
6
 
7
- name = (options[:name] || "#{referencing_attribute}_fk").to_sym
7
+ name = options[:name] || default_constraint_name(referencing_table, referencing_attribute)
8
8
 
9
9
  sql = "ALTER TABLE #{referencing_table}".tap do |sql|
10
10
  sql << " ADD CONSTRAINT #{name}"
@@ -24,7 +24,7 @@ module RC
24
24
  def remove_foreign_key_constraint(referencing_table, referenced_table, options = {})
25
25
  referencing_attribute = options[:referencing] || "#{referenced_table.to_s.singularize}_id".to_sym
26
26
 
27
- name = options[:name] || "#{referencing_attribute}_fk".to_sym
27
+ name = options[:name] || default_constraint_name(referencing_table, referencing_attribute)
28
28
 
29
29
  if is_a_mysql_adapter?
30
30
  execute "ALTER TABLE #{referencing_table} DROP FOREIGN KEY #{name}"
@@ -58,5 +58,9 @@ module RC
58
58
  def is_a_mysql_adapter?
59
59
  self.class.to_s =~ /Mysql[2]?Adapter/
60
60
  end
61
+
62
+ def default_constraint_name(referencing_table, referencing_attribute)
63
+ "#{referencing_table}_#{referencing_attribute}_fk".to_sym
64
+ end
61
65
  end
62
66
  end
@@ -1,3 +1,3 @@
1
1
  module Rein
2
- VERSION = "0.8.2"
2
+ VERSION = "0.8.3"
3
3
  end
@@ -17,22 +17,22 @@ describe RC::ForeignKey do
17
17
 
18
18
  context "with no options" do
19
19
  before { adapter.add_foreign_key_constraint(:books, :people) }
20
- it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT person_id_fk FOREIGN KEY (person_id) REFERENCES people (id)") }
20
+ it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT books_person_id_fk FOREIGN KEY (person_id) REFERENCES people (id)") }
21
21
  end
22
22
 
23
23
  context "with a given referencing attribute" do
24
24
  before { adapter.add_foreign_key_constraint(:books, :people, :referencing => :author_id) }
25
- it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT author_id_fk FOREIGN KEY (author_id) REFERENCES people (id)") }
25
+ it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT books_author_id_fk FOREIGN KEY (author_id) REFERENCES people (id)") }
26
26
  end
27
27
 
28
28
  context "with a given referenced attribute" do
29
29
  before { adapter.add_foreign_key_constraint(:books, :people, :referenced => :person_id) }
30
- it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT person_id_fk FOREIGN KEY (person_id) REFERENCES people (person_id)") }
30
+ it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT books_person_id_fk FOREIGN KEY (person_id) REFERENCES people (person_id)") }
31
31
  end
32
32
 
33
33
  context "with a given referencing attribute and referenced attribute" do
34
34
  before { adapter.add_foreign_key_constraint(:books, :people, :referencing => :author_id, :referenced => :person_id) }
35
- it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT author_id_fk FOREIGN KEY (author_id) REFERENCES people (person_id)") }
35
+ it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT books_author_id_fk FOREIGN KEY (author_id) REFERENCES people (person_id)") }
36
36
  end
37
37
 
38
38
  context "with a given name" do
@@ -42,22 +42,22 @@ describe RC::ForeignKey do
42
42
 
43
43
  context "with a given on delete referential action" do
44
44
  before { adapter.add_foreign_key_constraint(:books, :people, :on_delete => :cascade) }
45
- it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT person_id_fk FOREIGN KEY (person_id) REFERENCES people (id) ON DELETE CASCADE") }
45
+ it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT books_person_id_fk FOREIGN KEY (person_id) REFERENCES people (id) ON DELETE CASCADE") }
46
46
  end
47
47
 
48
48
  context "with a given on update referential action" do
49
49
  before { adapter.add_foreign_key_constraint(:books, :people, :on_update => :cascade) }
50
- it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT person_id_fk FOREIGN KEY (person_id) REFERENCES people (id) ON UPDATE CASCADE") }
50
+ it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT books_person_id_fk FOREIGN KEY (person_id) REFERENCES people (id) ON UPDATE CASCADE") }
51
51
  end
52
52
 
53
53
  context "with a 'cascade' on delete and update referential action" do
54
54
  before { adapter.add_foreign_key_constraint(:books, :people, :on_delete => :cascade, :on_update => :cascade) }
55
- it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT person_id_fk FOREIGN KEY (person_id) REFERENCES people (id) ON DELETE CASCADE ON UPDATE CASCADE") }
55
+ it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT books_person_id_fk FOREIGN KEY (person_id) REFERENCES people (id) ON DELETE CASCADE ON UPDATE CASCADE") }
56
56
  end
57
57
 
58
58
  context "with a 'no action' on delete and update referential action" do
59
59
  before { adapter.add_foreign_key_constraint(:books, :people, :on_delete => :no_action, :on_update => :no_action) }
60
- it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT person_id_fk FOREIGN KEY (person_id) REFERENCES people (id) ON DELETE NO ACTION ON UPDATE NO ACTION") }
60
+ it { should have_received.execute("ALTER TABLE books ADD CONSTRAINT books_person_id_fk FOREIGN KEY (person_id) REFERENCES people (id) ON DELETE NO ACTION ON UPDATE NO ACTION") }
61
61
  end
62
62
 
63
63
  describe "with a given add_index option" do
@@ -81,12 +81,12 @@ describe RC::ForeignKey do
81
81
 
82
82
  context "with no options" do
83
83
  before { adapter.remove_foreign_key_constraint(:books, :people) }
84
- it { should have_received.execute("ALTER TABLE books DROP CONSTRAINT person_id_fk") }
84
+ it { should have_received.execute("ALTER TABLE books DROP CONSTRAINT books_person_id_fk") }
85
85
  end
86
86
 
87
87
  context "with a given referencing attribute" do
88
88
  before { adapter.remove_foreign_key_constraint(:books, :people, :referencing => :author_id) }
89
- it { should have_received.execute("ALTER TABLE books DROP CONSTRAINT author_id_fk") }
89
+ it { should have_received.execute("ALTER TABLE books DROP CONSTRAINT books_author_id_fk") }
90
90
  end
91
91
 
92
92
  context "with a given name" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rein
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-04 00:00:00.000000000 Z
12
+ date: 2012-12-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -132,18 +132,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
132
  - - ! '>='
133
133
  - !ruby/object:Gem::Version
134
134
  version: '0'
135
- segments:
136
- - 0
137
- hash: 2852352367581315615
138
135
  required_rubygems_version: !ruby/object:Gem::Requirement
139
136
  none: false
140
137
  requirements:
141
138
  - - ! '>='
142
139
  - !ruby/object:Gem::Version
143
140
  version: '0'
144
- segments:
145
- - 0
146
- hash: 2852352367581315615
147
141
  requirements: []
148
142
  rubyforge_project: rein
149
143
  rubygems_version: 1.8.23