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
         
     |