foreigner 1.2.0 → 1.2.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/lib/foreigner/schema_dumper.rb +7 -3
- data/test/foreigner/schema_dumper_test.rb +10 -0
- metadata +2 -2
@@ -8,11 +8,11 @@ module Foreigner
|
|
8
8
|
|
9
9
|
module ClassMethods
|
10
10
|
def dump_foreign_key(foreign_key)
|
11
|
-
statement_parts = [ ('add_foreign_key ' + foreign_key.from_table.inspect) ]
|
12
|
-
statement_parts << foreign_key.to_table.inspect
|
11
|
+
statement_parts = [ ('add_foreign_key ' + remove_prefix_and_suffix(foreign_key.from_table).inspect) ]
|
12
|
+
statement_parts << remove_prefix_and_suffix(foreign_key.to_table).inspect
|
13
13
|
statement_parts << (':name => ' + foreign_key.options[:name].inspect)
|
14
14
|
|
15
|
-
if foreign_key.options[:column] != "#{foreign_key.to_table.singularize}_id"
|
15
|
+
if foreign_key.options[:column] != "#{remove_prefix_and_suffix(foreign_key.to_table).singularize}_id"
|
16
16
|
statement_parts << (':column => ' + foreign_key.options[:column].inspect)
|
17
17
|
end
|
18
18
|
if foreign_key.options[:primary_key] != 'id'
|
@@ -24,6 +24,10 @@ module Foreigner
|
|
24
24
|
|
25
25
|
statement_parts.join(', ')
|
26
26
|
end
|
27
|
+
|
28
|
+
def remove_prefix_and_suffix(table)
|
29
|
+
table.gsub(/^(#{ActiveRecord::Base.table_name_prefix})(.+)(#{ActiveRecord::Base.table_name_suffix})$/, "\\2")
|
30
|
+
end
|
27
31
|
end
|
28
32
|
|
29
33
|
def tables_with_foreign_keys(stream)
|
@@ -48,6 +48,16 @@ class Foreigner::SchemaDumperTest < Foreigner::UnitTest
|
|
48
48
|
assert_equal ['bar'].to_set, dumper.processed_tables.to_set
|
49
49
|
end
|
50
50
|
|
51
|
+
test 'removes table name suffix and prefix' do
|
52
|
+
begin
|
53
|
+
ActiveRecord::Base.table_name_prefix = 'pre_'
|
54
|
+
ActiveRecord::Base.table_name_suffix = '_suf'
|
55
|
+
assert_dump "add_foreign_key \"foos\", \"bars\", :name => \"lulz\"", Foreigner::ConnectionAdapters::ForeignKeyDefinition.new('pre_foos_suf', 'pre_bars_suf', column: 'bar_id', primary_key: 'id', name: 'lulz')
|
56
|
+
ensure
|
57
|
+
ActiveRecord::Base.table_name_suffix = ActiveRecord::Base.table_name_prefix = ''
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
51
61
|
private
|
52
62
|
def assert_dump(expected, definition)
|
53
63
|
assert_equal expected, MockSchemaDumper.dump_foreign_key(definition)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreigner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
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
|
+
date: 2012-08-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|