automatic_foreign_key 1.1.8 → 1.2.0
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/.gitignore +22 -0
- data/CHANGELOG +5 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +48 -0
- data/Rakefile +5 -54
- data/automatic_foreign_key.gemspec +23 -100
- data/lib/automatic_foreign_key.rb +2 -0
- data/lib/automatic_foreign_key/active_record/connection_adapters/table_definition.rb +11 -1
- data/lib/automatic_foreign_key/version.rb +3 -0
- data/lib/generators/automatic_foreign_key/install_generator.rb +13 -0
- data/lib/generators/automatic_foreign_key/migration_generator.rb +24 -22
- data/lib/generators/automatic_foreign_key/templates/automatic_foreign_key.rb +16 -0
- data/spec/migration_spec.rb +1 -4
- data/spec/schema_spec.rb +64 -0
- data/spec/spec_helper.rb +2 -3
- data/spec/support/helpers.rb +8 -0
- metadata +40 -74
- data/VERSION +0 -1
data/.gitignore
ADDED
data/CHANGELOG
CHANGED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
automatic_foreign_key (1.2.0)
|
5
|
+
activerecord (>= 2)
|
6
|
+
redhillonrails_core (~> 1.1.2)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: http://rubygems.org/
|
10
|
+
specs:
|
11
|
+
activemodel (3.0.3)
|
12
|
+
activesupport (= 3.0.3)
|
13
|
+
builder (~> 2.1.2)
|
14
|
+
i18n (~> 0.4)
|
15
|
+
activerecord (3.0.3)
|
16
|
+
activemodel (= 3.0.3)
|
17
|
+
activesupport (= 3.0.3)
|
18
|
+
arel (~> 2.0.2)
|
19
|
+
tzinfo (~> 0.3.23)
|
20
|
+
activesupport (3.0.3)
|
21
|
+
arel (2.0.7)
|
22
|
+
builder (2.1.2)
|
23
|
+
diff-lcs (1.1.2)
|
24
|
+
i18n (0.5.0)
|
25
|
+
mysql (2.8.1)
|
26
|
+
mysql2 (0.2.6)
|
27
|
+
pg (0.10.0)
|
28
|
+
redhillonrails_core (1.1.2)
|
29
|
+
activerecord
|
30
|
+
rspec (2.4.0)
|
31
|
+
rspec-core (~> 2.4.0)
|
32
|
+
rspec-expectations (~> 2.4.0)
|
33
|
+
rspec-mocks (~> 2.4.0)
|
34
|
+
rspec-core (2.4.0)
|
35
|
+
rspec-expectations (2.4.0)
|
36
|
+
diff-lcs (~> 1.1.2)
|
37
|
+
rspec-mocks (2.4.0)
|
38
|
+
tzinfo (0.3.24)
|
39
|
+
|
40
|
+
PLATFORMS
|
41
|
+
ruby
|
42
|
+
|
43
|
+
DEPENDENCIES
|
44
|
+
automatic_foreign_key!
|
45
|
+
mysql
|
46
|
+
mysql2
|
47
|
+
pg
|
48
|
+
rspec (~> 2.4.0)
|
data/Rakefile
CHANGED
@@ -1,52 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'rake'
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
4
3
|
|
5
|
-
|
6
|
-
require 'jeweler'
|
7
|
-
Jeweler::Tasks.new do |gem|
|
8
|
-
gem.name = "automatic_foreign_key"
|
9
|
-
gem.summary = %Q{Automatically generate foreign-key constraints when creating tables}
|
10
|
-
gem.description = %Q{Automatic Foreign Key automatically generates foreign-key
|
11
|
-
constraints when creating tables or adding columns. It uses SQL-92 syntax and as such should be compatible with most databases that support foreign-key constraints.}
|
12
|
-
gem.email = "michal.lomnicki@gmail.com"
|
13
|
-
gem.homepage = "http://github.com/mlomnicki/automatic_foreign_key"
|
14
|
-
gem.authors = ["Michał Łomnicki"]
|
15
|
-
gem.files.exclude "Gemfile"
|
16
|
-
gem.files.exclude "Gemfile.lock"
|
17
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
18
|
-
end
|
19
|
-
Jeweler::GemcutterTasks.new
|
20
|
-
rescue LoadError
|
21
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
22
|
-
end
|
23
|
-
|
24
|
-
require 'rake/testtask'
|
25
|
-
Rake::TestTask.new(:test) do |test|
|
26
|
-
test.libs << 'lib' << 'test'
|
27
|
-
test.pattern = 'test/**/test_*.rb'
|
28
|
-
test.verbose = true
|
29
|
-
end
|
30
|
-
|
31
|
-
begin
|
32
|
-
require 'rcov/rcovtask'
|
33
|
-
Rcov::RcovTask.new do |test|
|
34
|
-
test.libs << 'test'
|
35
|
-
test.pattern = 'test/**/test_*.rb'
|
36
|
-
test.verbose = true
|
37
|
-
end
|
38
|
-
rescue LoadError
|
39
|
-
task :rcov do
|
40
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
require 'spec/rake/spectask'
|
4
|
+
require 'rspec/core/rake_task'
|
45
5
|
%w[postgresql mysql mysql2].each do |adapter|
|
46
6
|
namespace adapter do
|
47
|
-
|
48
|
-
spec.
|
49
|
-
spec.spec_files = FileList['spec/**/*_spec.rb']
|
7
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
8
|
+
spec.rspec_opts = "-Ispec/connections/#{adapter}"
|
50
9
|
end
|
51
10
|
end
|
52
11
|
end
|
@@ -60,12 +19,6 @@ end
|
|
60
19
|
|
61
20
|
task :default => :spec
|
62
21
|
|
63
|
-
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
64
|
-
spec.libs << 'lib' << 'spec'
|
65
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
66
|
-
spec.rcov = true
|
67
|
-
end
|
68
|
-
|
69
22
|
require 'rake/rdoctask'
|
70
23
|
Rake::RDocTask.new do |rdoc|
|
71
24
|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
@@ -80,13 +33,11 @@ namespace :postgresql do
|
|
80
33
|
desc 'Build the PostgreSQL test databases'
|
81
34
|
task :build_databases do
|
82
35
|
%x( createdb -E UTF8 afk_unittest )
|
83
|
-
%x( createdb -E UTF8 afk_unittest2 )
|
84
36
|
end
|
85
37
|
|
86
38
|
desc 'Drop the PostgreSQL test databases'
|
87
39
|
task :drop_databases do
|
88
40
|
%x( dropdb afk_unittest )
|
89
|
-
%x( dropdb afk_unittest2 )
|
90
41
|
end
|
91
42
|
|
92
43
|
desc 'Rebuild the PostgreSQL test databases'
|
@@ -1,108 +1,31 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "automatic_foreign_key/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
6
|
+
s.name = "automatic_foreign_key"
|
7
|
+
s.version = AutomaticForeignKey::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Michał Łomnicki"]
|
10
|
+
s.email = ["michal.lomnicki@gmail.com"]
|
11
|
+
s.homepage = "https://github.com/mlomnicki/automatic_foreign_key"
|
12
|
+
s.summary = "Automatically generate foreign-key constraints when creating tables"
|
13
|
+
s.description = "Automatic Foreign Key automatically generates foreign-key \
|
14
|
+
constraints when creating tables or adding columns. It uses SQL-92 syntax and as such should be compatible with most databases that support foreign-key constraints."
|
9
15
|
|
10
|
-
s.
|
11
|
-
s.authors = ["Michał Łomnicki"]
|
12
|
-
s.date = %q{2011-01-10}
|
13
|
-
s.description = %q{Automatic Foreign Key automatically generates foreign-key
|
14
|
-
constraints when creating tables or adding columns. It uses SQL-92 syntax and as such should be compatible with most databases that support foreign-key constraints.}
|
15
|
-
s.email = %q{michal.lomnicki@gmail.com}
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"README.rdoc"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
"CHANGELOG",
|
22
|
-
"MIT-LICENSE",
|
23
|
-
"README.rdoc",
|
24
|
-
"Rakefile",
|
25
|
-
"VERSION",
|
26
|
-
"automatic_foreign_key.gemspec",
|
27
|
-
"init.rb",
|
28
|
-
"install.rb",
|
29
|
-
"lib/automatic_foreign_key.rb",
|
30
|
-
"lib/automatic_foreign_key/active_record/base.rb",
|
31
|
-
"lib/automatic_foreign_key/active_record/connection_adapters/schema_statements.rb",
|
32
|
-
"lib/automatic_foreign_key/active_record/connection_adapters/table_definition.rb",
|
33
|
-
"lib/automatic_foreign_key/active_record/migration.rb",
|
34
|
-
"lib/generators/automatic_foreign_key/migration_generator.rb",
|
35
|
-
"lib/generators/automatic_foreign_key/templates/migration.rb",
|
36
|
-
"spec/aaa_create_tables_spec.rb",
|
37
|
-
"spec/connections/mysql/connection.rb",
|
38
|
-
"spec/connections/mysql2/connection.rb",
|
39
|
-
"spec/connections/postgresql/connection.rb",
|
40
|
-
"spec/migration_spec.rb",
|
41
|
-
"spec/models/comment.rb",
|
42
|
-
"spec/models/post.rb",
|
43
|
-
"spec/models/user.rb",
|
44
|
-
"spec/references_spec.rb",
|
45
|
-
"spec/schema/schema.rb",
|
46
|
-
"spec/schema_dumper_spec.rb",
|
47
|
-
"spec/spec_helper.rb",
|
48
|
-
"spec/support/matchers/automatic_foreign_key_matchers.rb",
|
49
|
-
"spec/support/matchers/have_index.rb",
|
50
|
-
"spec/support/matchers/reference.rb"
|
51
|
-
]
|
52
|
-
s.homepage = %q{http://github.com/mlomnicki/automatic_foreign_key}
|
53
|
-
s.require_paths = ["lib"]
|
54
|
-
s.rubygems_version = %q{1.3.7}
|
55
|
-
s.summary = %q{Automatically generate foreign-key constraints when creating tables}
|
56
|
-
s.test_files = [
|
57
|
-
"spec/aaa_create_tables_spec.rb",
|
58
|
-
"spec/connections/mysql/connection.rb",
|
59
|
-
"spec/connections/mysql2/connection.rb",
|
60
|
-
"spec/connections/postgresql/connection.rb",
|
61
|
-
"spec/migration_spec.rb",
|
62
|
-
"spec/models/comment.rb",
|
63
|
-
"spec/models/post.rb",
|
64
|
-
"spec/models/user.rb",
|
65
|
-
"spec/references_spec.rb",
|
66
|
-
"spec/schema/schema.rb",
|
67
|
-
"spec/schema_dumper_spec.rb",
|
68
|
-
"spec/spec_helper.rb",
|
69
|
-
"spec/support/matchers/automatic_foreign_key_matchers.rb",
|
70
|
-
"spec/support/matchers/have_index.rb",
|
71
|
-
"spec/support/matchers/reference.rb"
|
72
|
-
]
|
16
|
+
s.rubyforge_project = "automatic_foreign_key"
|
73
17
|
|
74
|
-
|
75
|
-
|
76
|
-
|
18
|
+
s.files = `git ls-files`.split("\n")
|
19
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
20
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
+
s.require_paths = ["lib"]
|
77
22
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
s.add_development_dependency(%q<mysql>, [">= 0"])
|
86
|
-
s.add_development_dependency(%q<mysql2>, [">= 0"])
|
87
|
-
else
|
88
|
-
s.add_dependency(%q<activerecord>, [">= 0"])
|
89
|
-
s.add_dependency(%q<redhillonrails_core>, ["~> 1.1.2"])
|
90
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5"])
|
91
|
-
s.add_dependency(%q<rspec>, ["~> 1.3"])
|
92
|
-
s.add_dependency(%q<railties>, [">= 0"])
|
93
|
-
s.add_dependency(%q<pg>, [">= 0"])
|
94
|
-
s.add_dependency(%q<mysql>, [">= 0"])
|
95
|
-
s.add_dependency(%q<mysql2>, [">= 0"])
|
96
|
-
end
|
97
|
-
else
|
98
|
-
s.add_dependency(%q<activerecord>, [">= 0"])
|
99
|
-
s.add_dependency(%q<redhillonrails_core>, ["~> 1.1.2"])
|
100
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5"])
|
101
|
-
s.add_dependency(%q<rspec>, ["~> 1.3"])
|
102
|
-
s.add_dependency(%q<railties>, [">= 0"])
|
103
|
-
s.add_dependency(%q<pg>, [">= 0"])
|
104
|
-
s.add_dependency(%q<mysql>, [">= 0"])
|
105
|
-
s.add_dependency(%q<mysql2>, [">= 0"])
|
106
|
-
end
|
23
|
+
s.add_dependency("activerecord", ">= 2")
|
24
|
+
s.add_dependency("redhillonrails_core", "~> 1.1.2")
|
25
|
+
|
26
|
+
s.add_development_dependency("rspec", "~> 2.4.0")
|
27
|
+
s.add_development_dependency("pg")
|
28
|
+
s.add_development_dependency("mysql")
|
29
|
+
s.add_development_dependency("mysql2")
|
107
30
|
end
|
108
31
|
|
@@ -24,7 +24,7 @@ module AutomaticForeignKey::ActiveRecord::ConnectionAdapters
|
|
24
24
|
if references
|
25
25
|
AutomaticForeignKey.set_default_update_and_delete_actions!(options)
|
26
26
|
foreign_key(name, references.first, references.last, options)
|
27
|
-
if index = options
|
27
|
+
if index = afk_index_options(options)
|
28
28
|
# append [column_name, index_options] pair
|
29
29
|
self.indices << [name, AutomaticForeignKey.options_for_index(index)]
|
30
30
|
end
|
@@ -40,5 +40,15 @@ module AutomaticForeignKey::ActiveRecord::ConnectionAdapters
|
|
40
40
|
options[:on_delete] = options.delete(:dependent) if options.has_key?(:dependent)
|
41
41
|
column("#{table.to_s.singularize}_id".to_sym, :integer, options)
|
42
42
|
end
|
43
|
+
|
44
|
+
protected
|
45
|
+
def afk_index_options(options)
|
46
|
+
options.fetch(:index, afk_use_auto_index?)
|
47
|
+
end
|
48
|
+
|
49
|
+
def afk_use_auto_index?
|
50
|
+
AutomaticForeignKey.auto_index && !ActiveRecord::Schema.defining?
|
51
|
+
end
|
52
|
+
|
43
53
|
end
|
44
54
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module AutomaticForeignKey
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < ::Rails::Generators::Base
|
4
|
+
desc "Copy automatic foreign key default files"
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
|
+
|
7
|
+
def copy_initializers
|
8
|
+
copy_file 'automatic_foreign_key.rb', 'config/initializers/automatic_foreign_key.rb'
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -2,35 +2,37 @@ require 'rails/generators'
|
|
2
2
|
require 'rails/generators/active_record'
|
3
3
|
|
4
4
|
module AutomaticForeignKey
|
5
|
-
|
6
|
-
|
5
|
+
module Generators
|
6
|
+
class MigrationGenerator < ::ActiveRecord::Generators::Base
|
7
|
+
argument :name, :default => 'create_foreign_keys'
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
def self.source_root
|
10
|
+
File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
|
11
|
+
end
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
def create_migration_file
|
14
|
+
set_local_assigns!
|
15
|
+
migration_template 'migration.rb', "db/migrate/#{file_name}"
|
16
|
+
end
|
16
17
|
|
17
|
-
|
18
|
-
|
18
|
+
protected
|
19
|
+
attr_reader :foreign_keys
|
19
20
|
|
20
|
-
|
21
|
-
|
22
|
-
|
21
|
+
def set_local_assigns!
|
22
|
+
@foreign_keys = determine_foreign_keys
|
23
|
+
end
|
23
24
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
def determine_foreign_keys
|
26
|
+
foreign_keys = []
|
27
|
+
connection = ::ActiveRecord::Base.connection
|
28
|
+
connection.tables.each do |table_name|
|
29
|
+
connection.columns(table_name).each do |column|
|
30
|
+
references = ::ActiveRecord::Base.references(table_name, column.name)
|
31
|
+
foreign_keys << ::RedhillonrailsCore::ActiveRecord::ConnectionAdapters::ForeignKeyDefinition.new(nil, table_name, column.name, references.first, references.last) if references
|
32
|
+
end
|
31
33
|
end
|
34
|
+
foreign_keys
|
32
35
|
end
|
33
|
-
foreign_keys
|
34
36
|
end
|
35
37
|
end
|
36
38
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
AutomaticForeignKey.setup do |config|
|
2
|
+
|
3
|
+
# Default ON UPDATE action
|
4
|
+
# Available values are :cascade, :restrict, :set_null, :set_default, :no_action
|
5
|
+
# config.on_update = :cascade
|
6
|
+
#
|
7
|
+
# Default ON DELETE action
|
8
|
+
# Available values are :cascade, :restrict, :set_null, :set_default, :no_action
|
9
|
+
# config.on_delete = :restrict
|
10
|
+
#
|
11
|
+
# Auto indexing foreign keys.
|
12
|
+
# It's relevant for PostgreSQL only.
|
13
|
+
# MySQL engines auto-index foreign keys by default
|
14
|
+
# config.auto_index = true
|
15
|
+
|
16
|
+
end
|
data/spec/migration_spec.rb
CHANGED
@@ -13,6 +13,7 @@ describe ActiveRecord::Base do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
describe ActiveRecord::Migration do
|
16
|
+
include AutomaticForeignKeyHelpers
|
16
17
|
|
17
18
|
context "when table is created" do
|
18
19
|
|
@@ -241,10 +242,6 @@ describe ActiveRecord::Migration do
|
|
241
242
|
model.foreign_keys.detect { |fk| fk.table_name == model.table_name && fk.column_names == columns }
|
242
243
|
end
|
243
244
|
|
244
|
-
def mysql?
|
245
|
-
ActiveRecord::Base.connection.adapter_name =~ /^mysql/i
|
246
|
-
end
|
247
|
-
|
248
245
|
def create_table(model, columns_with_options)
|
249
246
|
ActiveRecord::Migration.suppress_messages do
|
250
247
|
ActiveRecord::Migration.create_table model.table_name, :force => true do |t|
|
data/spec/schema_spec.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe ActiveRecord::Schema do
|
4
|
+
|
5
|
+
let(:schema) { ActiveRecord::Schema }
|
6
|
+
|
7
|
+
let(:connection) { ActiveRecord::Base.connection }
|
8
|
+
|
9
|
+
after(:all) do
|
10
|
+
# revert to general schema
|
11
|
+
ActiveRecord::Migration.suppress_messages do
|
12
|
+
load 'schema/schema.rb'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "defining with auto_index" do
|
17
|
+
|
18
|
+
it "should pass" do
|
19
|
+
|
20
|
+
with_auto_index do
|
21
|
+
expect { define_schema }.should_not raise_error
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should create only explicity added indexes" do
|
27
|
+
with_auto_index do
|
28
|
+
define_schema
|
29
|
+
connection.tables.collect { |table| connection.indexes(table) }.flatten.should have(1).item
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
protected
|
36
|
+
def define_schema
|
37
|
+
ActiveRecord::Migration.suppress_messages do
|
38
|
+
schema.define do
|
39
|
+
|
40
|
+
create_table :users, :force => true do
|
41
|
+
end
|
42
|
+
|
43
|
+
create_table :posts, :force => true do |t|
|
44
|
+
t.integer :user_id
|
45
|
+
end
|
46
|
+
# mysql will create index on FK automatically
|
47
|
+
unless AutomaticForeignKeyHelpers.mysql?
|
48
|
+
add_index :posts, :user_id
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def with_auto_index(value = true)
|
55
|
+
old_value = AutomaticForeignKey.auto_index
|
56
|
+
AutomaticForeignKey.auto_index = value
|
57
|
+
begin
|
58
|
+
yield
|
59
|
+
ensure
|
60
|
+
AutomaticForeignKey.auto_index = old_value
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
2
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
3
|
require 'rubygems'
|
4
|
+
require 'rspec'
|
4
5
|
require 'automatic_foreign_key'
|
5
|
-
require 'spec'
|
6
|
-
require 'spec/autorun'
|
7
6
|
require 'connection'
|
8
7
|
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
|
9
8
|
|
10
|
-
|
9
|
+
RSpec.configure do |config|
|
11
10
|
config.include(AutomaticForeignKeyMatchers)
|
12
11
|
end
|
13
12
|
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 1
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 1.
|
7
|
+
- 2
|
8
|
+
- 0
|
9
|
+
version: 1.2.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- "Micha\xC5\x82 \xC5\x81omnicki"
|
@@ -14,24 +14,25 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-01-
|
17
|
+
date: 2011-01-23 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: activerecord
|
22
|
+
prerelease: false
|
22
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
23
24
|
none: false
|
24
25
|
requirements:
|
25
26
|
- - ">="
|
26
27
|
- !ruby/object:Gem::Version
|
27
28
|
segments:
|
28
|
-
-
|
29
|
-
version: "
|
29
|
+
- 2
|
30
|
+
version: "2"
|
30
31
|
type: :runtime
|
31
|
-
prerelease: false
|
32
32
|
version_requirements: *id001
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: redhillonrails_core
|
35
|
+
prerelease: false
|
35
36
|
requirement: &id002 !ruby/object:Gem::Requirement
|
36
37
|
none: false
|
37
38
|
requirements:
|
@@ -43,52 +44,26 @@ dependencies:
|
|
43
44
|
- 2
|
44
45
|
version: 1.1.2
|
45
46
|
type: :runtime
|
46
|
-
prerelease: false
|
47
47
|
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: jeweler
|
50
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
|
-
requirements:
|
53
|
-
- - ~>
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
segments:
|
56
|
-
- 1
|
57
|
-
- 5
|
58
|
-
version: "1.5"
|
59
|
-
type: :development
|
60
|
-
prerelease: false
|
61
|
-
version_requirements: *id003
|
62
48
|
- !ruby/object:Gem::Dependency
|
63
49
|
name: rspec
|
64
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
segments:
|
70
|
-
- 1
|
71
|
-
- 3
|
72
|
-
version: "1.3"
|
73
|
-
type: :development
|
74
50
|
prerelease: false
|
75
|
-
|
76
|
-
- !ruby/object:Gem::Dependency
|
77
|
-
name: railties
|
78
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
79
52
|
none: false
|
80
53
|
requirements:
|
81
|
-
- -
|
54
|
+
- - ~>
|
82
55
|
- !ruby/object:Gem::Version
|
83
56
|
segments:
|
57
|
+
- 2
|
58
|
+
- 4
|
84
59
|
- 0
|
85
|
-
version:
|
60
|
+
version: 2.4.0
|
86
61
|
type: :development
|
87
|
-
|
88
|
-
version_requirements: *id005
|
62
|
+
version_requirements: *id003
|
89
63
|
- !ruby/object:Gem::Dependency
|
90
64
|
name: pg
|
91
|
-
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
92
67
|
none: false
|
93
68
|
requirements:
|
94
69
|
- - ">="
|
@@ -97,11 +72,11 @@ dependencies:
|
|
97
72
|
- 0
|
98
73
|
version: "0"
|
99
74
|
type: :development
|
100
|
-
|
101
|
-
version_requirements: *id006
|
75
|
+
version_requirements: *id004
|
102
76
|
- !ruby/object:Gem::Dependency
|
103
77
|
name: mysql
|
104
|
-
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
105
80
|
none: false
|
106
81
|
requirements:
|
107
82
|
- - ">="
|
@@ -110,11 +85,11 @@ dependencies:
|
|
110
85
|
- 0
|
111
86
|
version: "0"
|
112
87
|
type: :development
|
113
|
-
|
114
|
-
version_requirements: *id007
|
88
|
+
version_requirements: *id005
|
115
89
|
- !ruby/object:Gem::Dependency
|
116
90
|
name: mysql2
|
117
|
-
|
91
|
+
prerelease: false
|
92
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
118
93
|
none: false
|
119
94
|
requirements:
|
120
95
|
- - ">="
|
@@ -123,25 +98,25 @@ dependencies:
|
|
123
98
|
- 0
|
124
99
|
version: "0"
|
125
100
|
type: :development
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
constraints when creating tables or adding columns. It uses SQL-92 syntax and as such should be compatible with most databases that support foreign-key constraints.
|
131
|
-
email: michal.lomnicki@gmail.com
|
101
|
+
version_requirements: *id006
|
102
|
+
description: Automatic Foreign Key automatically generates foreign-key constraints when creating tables or adding columns. It uses SQL-92 syntax and as such should be compatible with most databases that support foreign-key constraints.
|
103
|
+
email:
|
104
|
+
- michal.lomnicki@gmail.com
|
132
105
|
executables: []
|
133
106
|
|
134
107
|
extensions: []
|
135
108
|
|
136
|
-
extra_rdoc_files:
|
137
|
-
|
109
|
+
extra_rdoc_files: []
|
110
|
+
|
138
111
|
files:
|
139
112
|
- .document
|
113
|
+
- .gitignore
|
140
114
|
- CHANGELOG
|
115
|
+
- Gemfile
|
116
|
+
- Gemfile.lock
|
141
117
|
- MIT-LICENSE
|
142
118
|
- README.rdoc
|
143
119
|
- Rakefile
|
144
|
-
- VERSION
|
145
120
|
- automatic_foreign_key.gemspec
|
146
121
|
- init.rb
|
147
122
|
- install.rb
|
@@ -150,7 +125,10 @@ files:
|
|
150
125
|
- lib/automatic_foreign_key/active_record/connection_adapters/schema_statements.rb
|
151
126
|
- lib/automatic_foreign_key/active_record/connection_adapters/table_definition.rb
|
152
127
|
- lib/automatic_foreign_key/active_record/migration.rb
|
128
|
+
- lib/automatic_foreign_key/version.rb
|
129
|
+
- lib/generators/automatic_foreign_key/install_generator.rb
|
153
130
|
- lib/generators/automatic_foreign_key/migration_generator.rb
|
131
|
+
- lib/generators/automatic_foreign_key/templates/automatic_foreign_key.rb
|
154
132
|
- lib/generators/automatic_foreign_key/templates/migration.rb
|
155
133
|
- spec/aaa_create_tables_spec.rb
|
156
134
|
- spec/connections/mysql/connection.rb
|
@@ -163,12 +141,14 @@ files:
|
|
163
141
|
- spec/references_spec.rb
|
164
142
|
- spec/schema/schema.rb
|
165
143
|
- spec/schema_dumper_spec.rb
|
144
|
+
- spec/schema_spec.rb
|
166
145
|
- spec/spec_helper.rb
|
146
|
+
- spec/support/helpers.rb
|
167
147
|
- spec/support/matchers/automatic_foreign_key_matchers.rb
|
168
148
|
- spec/support/matchers/have_index.rb
|
169
149
|
- spec/support/matchers/reference.rb
|
170
150
|
has_rdoc: true
|
171
|
-
homepage:
|
151
|
+
homepage: https://github.com/mlomnicki/automatic_foreign_key
|
172
152
|
licenses: []
|
173
153
|
|
174
154
|
post_install_message:
|
@@ -194,24 +174,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
194
174
|
version: "0"
|
195
175
|
requirements: []
|
196
176
|
|
197
|
-
rubyforge_project:
|
177
|
+
rubyforge_project: automatic_foreign_key
|
198
178
|
rubygems_version: 1.3.7
|
199
179
|
signing_key:
|
200
180
|
specification_version: 3
|
201
181
|
summary: Automatically generate foreign-key constraints when creating tables
|
202
|
-
test_files:
|
203
|
-
|
204
|
-
- spec/connections/mysql/connection.rb
|
205
|
-
- spec/connections/mysql2/connection.rb
|
206
|
-
- spec/connections/postgresql/connection.rb
|
207
|
-
- spec/migration_spec.rb
|
208
|
-
- spec/models/comment.rb
|
209
|
-
- spec/models/post.rb
|
210
|
-
- spec/models/user.rb
|
211
|
-
- spec/references_spec.rb
|
212
|
-
- spec/schema/schema.rb
|
213
|
-
- spec/schema_dumper_spec.rb
|
214
|
-
- spec/spec_helper.rb
|
215
|
-
- spec/support/matchers/automatic_foreign_key_matchers.rb
|
216
|
-
- spec/support/matchers/have_index.rb
|
217
|
-
- spec/support/matchers/reference.rb
|
182
|
+
test_files: []
|
183
|
+
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.1.8
|