redhillonrails_core 1.1.3 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -24,3 +24,4 @@ log
24
24
  debug.log
25
25
  development
26
26
  *.db
27
+ .rvmrc
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ 1.2.0
2
+ * compatibility with mysql 0.2.X line
3
+ * quoting fixes
4
+ * proper foreign keys ordering
5
+ * views support for mysql and sqlite
1
6
  1.1.3
2
7
  * switched from jeweler to bundler
3
8
  * sorting of indexes and foreign keys on schema dumper
@@ -1,29 +1,30 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- redhillonrails_core (1.1.3)
4
+ redhillonrails_core (1.2.0)
5
5
  activerecord (>= 2)
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
- activemodel (3.0.4)
11
- activesupport (= 3.0.4)
10
+ activemodel (3.0.9)
11
+ activesupport (= 3.0.9)
12
12
  builder (~> 2.1.2)
13
- i18n (~> 0.4)
14
- activerecord (3.0.4)
15
- activemodel (= 3.0.4)
16
- activesupport (= 3.0.4)
17
- arel (~> 2.0.2)
13
+ i18n (~> 0.5.0)
14
+ activerecord (3.0.9)
15
+ activemodel (= 3.0.9)
16
+ activesupport (= 3.0.9)
17
+ arel (~> 2.0.10)
18
18
  tzinfo (~> 0.3.23)
19
- activesupport (3.0.4)
20
- arel (2.0.9)
19
+ activesupport (3.0.9)
20
+ arel (2.0.10)
21
21
  builder (2.1.2)
22
22
  diff-lcs (1.1.2)
23
23
  i18n (0.5.0)
24
24
  mysql (2.8.1)
25
- mysql2 (0.2.6)
25
+ mysql2 (0.2.11)
26
26
  pg (0.10.1)
27
+ rake (0.8.7)
27
28
  rspec (2.4.0)
28
29
  rspec-core (~> 2.4.0)
29
30
  rspec-expectations (~> 2.4.0)
@@ -35,16 +36,16 @@ GEM
35
36
  sqlite3 (1.3.3)
36
37
  sqlite3-ruby (1.3.3)
37
38
  sqlite3 (>= 1.3.3)
38
- tzinfo (0.3.24)
39
+ tzinfo (0.3.29)
39
40
 
40
41
  PLATFORMS
41
42
  ruby
42
43
 
43
44
  DEPENDENCIES
44
- activerecord (>= 2)
45
45
  mysql
46
- mysql2
46
+ mysql2 (~> 0.2.11)
47
47
  pg
48
+ rake
48
49
  redhillonrails_core!
49
50
  rspec (~> 2.4.0)
50
51
  sqlite3-ruby (~> 1.3.1)
@@ -162,7 +162,12 @@ First you have to fetch sources from github as specs are not inculded in a gem.
162
162
  $ bundle exec rake spec
163
163
 
164
164
  # to run postgresql specs only
165
- $ bundle exec rake spec postgresql:spec
165
+ $ bundle exec rake spec postgresql:spec
166
+
167
+ === Support
168
+
169
+ Don't hesitate to ask questions on our mailing list.
170
+ http://groups.google.com/group/rails-db
166
171
 
167
172
  === Contributors
168
173
 
@@ -170,4 +175,5 @@ First you have to fetch sources from github as specs are not inculded in a gem.
170
175
  * François Beausoleil - https://github.com/francois
171
176
  * Greg Barnett
172
177
  * Romulo A. Ceccon - https://github.com/romuloceccon
173
-
178
+ * Laurynas Butkus - http://lauris.night.lt
179
+ * Fernando García Samblas - http://nando.lacoctelera.com
data/Rakefile CHANGED
@@ -19,15 +19,16 @@ end
19
19
 
20
20
  task :default => :spec
21
21
 
22
+ DBNAME = 'rhcore_test'
22
23
  namespace :postgresql do
23
24
  desc 'Build the PostgreSQL test databases'
24
25
  task :build_databases do
25
- %x( createdb -E UTF8 rh_core_unittest )
26
+ %x( createdb -E UTF8 #{DBNAME} )
26
27
  end
27
28
 
28
29
  desc 'Drop the PostgreSQL test databases'
29
30
  task :drop_databases do
30
- %x( dropdb rh_core_unittest )
31
+ %x( dropdb #{DBNAME} )
31
32
  end
32
33
 
33
34
  desc 'Rebuild the PostgreSQL test databases'
@@ -38,16 +39,16 @@ task :build_postgresql_databases => 'postgresql:build_databases'
38
39
  task :drop_postgresql_databases => 'postgresql:drop_databases'
39
40
  task :rebuild_postgresql_databases => 'postgresql:rebuild_databases'
40
41
 
41
- MYSQL_DB_USER = 'rh_core'
42
+ MYSQL_DB_USER = 'rhcore'
42
43
  namespace :mysql do
43
44
  desc 'Build the MySQL test databases'
44
45
  task :build_databases do
45
- %x( echo "create DATABASE rh_core_unittest DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci " | mysql --user=#{MYSQL_DB_USER})
46
+ %x( echo "create DATABASE #{DBNAME} DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci " | mysql --user=#{MYSQL_DB_USER})
46
47
  end
47
48
 
48
49
  desc 'Drop the MySQL test databases'
49
50
  task :drop_databases do
50
- %x( mysqladmin --user=#{MYSQL_DB_USER} -f drop rh_core_unittest )
51
+ %x( mysqladmin --user=#{MYSQL_DB_USER} -f drop #{DBNAME} )
51
52
  end
52
53
 
53
54
  desc 'Rebuild the MySQL test databases'
@@ -15,10 +15,12 @@ require 'redhillonrails_core/active_record/connection_adapters/foreign_key_defin
15
15
  require 'redhillonrails_core/active_record/connection_adapters/column'
16
16
  require 'redhillonrails_core/active_record/connection_adapters/index_definition'
17
17
  require 'redhillonrails_core/active_record/connection_adapters/mysql_column'
18
+ require 'redhillonrails_core/active_record/connection_adapters/schema_statements'
18
19
  require 'redhillonrails_core/active_record/connection_adapters/table_definition'
19
20
 
20
21
  module RedhillonrailsCore::ActiveRecord::ConnectionAdapters
21
22
  autoload :MysqlAdapter, 'redhillonrails_core/active_record/connection_adapters/mysql_adapter'
23
+ autoload :MysqlAdapterFixes, 'redhillonrails_core/active_record/connection_adapters/mysql_adapter_fixes'
22
24
  autoload :PostgresqlAdapter, 'redhillonrails_core/active_record/connection_adapters/postgresql_adapter'
23
25
  autoload :Sqlite3Adapter, 'redhillonrails_core/active_record/connection_adapters/sqlite3_adapter'
24
26
  end
@@ -30,3 +32,4 @@ ActiveRecord::ConnectionAdapters::IndexDefinition.send(:include, RedhillonrailsC
30
32
  ActiveRecord::ConnectionAdapters::TableDefinition.send(:include, RedhillonrailsCore::ActiveRecord::ConnectionAdapters::TableDefinition)
31
33
  ActiveRecord::ConnectionAdapters::Column.send(:include, RedhillonrailsCore::ActiveRecord::ConnectionAdapters::Column)
32
34
  ActiveRecord::ConnectionAdapters::AbstractAdapter.send(:include, RedhillonrailsCore::ActiveRecord::ConnectionAdapters::AbstractAdapter)
35
+ ActiveRecord::ConnectionAdapters::SchemaStatements.send(:include, RedhillonrailsCore::ActiveRecord::ConnectionAdapters::SchemaStatements)
@@ -43,7 +43,7 @@ module RedhillonrailsCore
43
43
  end
44
44
 
45
45
  def pluralized_table_name(table_name)
46
- ActiveRecord::Base.pluralize_table_names ? table_name.to_s.pluralize : table_name
46
+ ::ActiveRecord::Base.pluralize_table_names ? table_name.to_s.pluralize : table_name
47
47
  end
48
48
 
49
49
  def indexes
@@ -53,11 +53,11 @@ module RedhillonrailsCore
53
53
 
54
54
  def add_foreign_key(table_name, column_names, references_table_name, references_column_names, options = {})
55
55
  foreign_key = ForeignKeyDefinition.new(options[:name], table_name, column_names, ::ActiveRecord::Migrator.proper_table_name(references_table_name), references_column_names, options[:on_update], options[:on_delete], options[:deferrable])
56
- execute "ALTER TABLE #{table_name} ADD #{foreign_key}"
56
+ execute "ALTER TABLE #{quote_table_name(table_name)} ADD #{foreign_key}"
57
57
  end
58
58
 
59
59
  def remove_foreign_key(table_name, foreign_key_name, options = {})
60
- execute "ALTER TABLE #{table_name} DROP CONSTRAINT #{foreign_key_name}"
60
+ execute "ALTER TABLE #{quote_table_name(table_name)} DROP CONSTRAINT #{foreign_key_name}"
61
61
  end
62
62
 
63
63
  def drop_table_with_redhillonrails_core(name, options = {})
@@ -20,7 +20,14 @@ module RedhillonrailsCore
20
20
  end
21
21
 
22
22
  def to_sql
23
- sql = name ? "CONSTRAINT #{name} " : ""
23
+ if name
24
+ sql = "CONSTRAINT #{name} "
25
+ elsif table_name.present?
26
+ sql = "CONSTRAINT #{table_name}_#{Array(column_names).join('_')}_fkey "
27
+ else
28
+ sql = ""
29
+ end
30
+
24
31
  sql << "FOREIGN KEY (#{quoted_column_names.join(", ")}) REFERENCES #{quoted_references_table_name} (#{quoted_references_column_names.join(", ")})"
25
32
  sql << " ON UPDATE #{ACTIONS[on_update]}" if on_update
26
33
  sql << " ON DELETE #{ACTIONS[on_delete]}" if on_delete
@@ -2,7 +2,10 @@ module RedhillonrailsCore
2
2
  module ActiveRecord
3
3
  module ConnectionAdapters
4
4
  module MysqlAdapter
5
+ include MysqlAdapterFixes
6
+
5
7
  def self.included(base)
8
+ super
6
9
  base.class_eval do
7
10
  alias_method_chain :remove_column, :redhillonrails_core
8
11
  end
@@ -72,6 +75,16 @@ module RedhillonrailsCore
72
75
  foreign_keys
73
76
  end
74
77
 
78
+ def views(name = nil)
79
+ views = []
80
+ execute("SHOW FULL TABLES WHERE TABLE_TYPE='VIEW'", name).each { |row| views << row[0] }
81
+ views
82
+ end
83
+
84
+ def view_definition(view_name, name = nil)
85
+ select_one("SHOW CREATE VIEW #{quote_table_name(view_name)}", name)["Create View"]
86
+ end
87
+
75
88
  end
76
89
  end
77
90
  end
@@ -0,0 +1,22 @@
1
+ module RedhillonrailsCore
2
+ module ActiveRecord
3
+ module ConnectionAdapters
4
+ module MysqlAdapterFixes
5
+
6
+ # Starting from mysql2 0.2.7 Mysql2IndexDefinition is used.
7
+ # In 0.2 line it is inculuded in gem itself.
8
+ # Starting from version 0.3 it has gone to active_record mysql adapter
9
+ # We have to additionally monkey patch it.
10
+ def self.included(base)
11
+ super
12
+ if defined?(::ActiveRecord::ConnectionAdapters::Mysql2IndexDefinition)
13
+ ::ActiveRecord::ConnectionAdapters::Mysql2IndexDefinition.class_eval do
14
+ include ::RedhillonrailsCore::ActiveRecord::ConnectionAdapters::IndexDefinition
15
+ end
16
+ end
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,16 @@
1
+ module RedhillonrailsCore::ActiveRecord::ConnectionAdapters
2
+ module SchemaStatements
3
+ def self.included(base)
4
+ base.module_eval do
5
+ alias_method_chain :create_table, :redhillonrails_core
6
+ end
7
+ end
8
+
9
+ def create_table_with_redhillonrails_core(name, options = {})
10
+ create_table_without_redhillonrails_core(name, options) do |table_definition|
11
+ table_definition.name = name
12
+ yield table_definition if block_given?
13
+ end
14
+ end
15
+ end
16
+ end
@@ -59,6 +59,14 @@ module RedhillonrailsCore
59
59
  load_foreign_keys("to_table_name", table_name, name)
60
60
  end
61
61
 
62
+ def views(name = nil)
63
+ execute("SELECT name FROM sqlite_master WHERE type = 'view'").collect { |definition| definition["name"] }
64
+ end
65
+
66
+ def view_definition(view_name, name = nil)
67
+ select_one("SELECT sql FROM sqlite_master WHERE type = 'view' AND name = #{quote_table_name(view_name)}")["sql"]
68
+ end
69
+
62
70
  private
63
71
 
64
72
  def quoted_columns(columns)
@@ -16,7 +16,9 @@ module RedhillonrailsCore
16
16
  end
17
17
 
18
18
  def foreign_key(column_names, references_table_name, references_column_names, options = {})
19
- @foreign_keys << ForeignKeyDefinition.new(options[:name], nil, column_names, ::ActiveRecord::Migrator.proper_table_name(references_table_name), references_column_names, options[:on_update], options[:on_delete], options[:deferrable])
19
+ @foreign_keys << ForeignKeyDefinition.new(options[:name], name, column_names,
20
+ ::ActiveRecord::Migrator.proper_table_name(references_table_name), references_column_names,
21
+ options[:on_update], options[:on_delete], options[:deferrable])
20
22
  self
21
23
  end
22
24
 
@@ -1,3 +1,3 @@
1
1
  module RedhillonrailsCore
2
- VERSION = "1.1.3"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.add_development_dependency("rspec", "~> 2.4.0")
25
25
  s.add_development_dependency("pg")
26
26
  s.add_development_dependency("mysql")
27
- s.add_development_dependency("mysql2")
27
+ s.add_development_dependency("mysql2", "~> 0.2.11")
28
28
  s.add_development_dependency("sqlite3-ruby", "~> 1.3.1")
29
+ s.add_development_dependency("rake")
29
30
  end
@@ -6,13 +6,12 @@ ActiveRecord::Base.logger = Logger.new("debug.log")
6
6
  ActiveRecord::Base.configurations = {
7
7
  'redhillonrails' => {
8
8
  :adapter => 'mysql',
9
- :database => 'redhillonrails_core_test',
10
- :username => 'redhillonrails',
9
+ :database => 'rhcore_test',
10
+ :username => 'rhcore',
11
11
  :encoding => 'utf8',
12
12
  :socket => '/var/run/mysqld/mysqld.sock',
13
13
  :min_messages => 'warning'
14
14
  }
15
-
16
15
  }
17
16
 
18
17
  ActiveRecord::Base.establish_connection 'redhillonrails'
@@ -6,8 +6,8 @@ ActiveRecord::Base.logger = Logger.new("debug.log")
6
6
  ActiveRecord::Base.configurations = {
7
7
  'redhillonrails' => {
8
8
  :adapter => 'mysql2',
9
- :database => 'redhillonrails_core_test',
10
- :username => 'redhillonrails',
9
+ :database => 'rhcore_test',
10
+ :username => 'rhcore',
11
11
  :encoding => 'utf8',
12
12
  :socket => '/var/run/mysqld/mysqld.sock',
13
13
  :min_messages => 'warning'
@@ -6,7 +6,7 @@ ActiveRecord::Base.logger = Logger.new("debug.log")
6
6
  ActiveRecord::Base.configurations = {
7
7
  'redhillonrails' => {
8
8
  :adapter => 'postgresql',
9
- :database => 'redhillonrails_core_test',
9
+ :database => 'rhcore_test',
10
10
  :min_messages => 'warning'
11
11
  }
12
12
 
@@ -4,12 +4,36 @@ require 'models/user'
4
4
 
5
5
  describe "Foreign Key definition" do
6
6
 
7
- let(:definition) { RedhillonrailsCore::ActiveRecord::ConnectionAdapters::ForeignKeyDefinition.new("posts_user_fkey", :posts, :user, :users, :id) }
7
+ let(:fk_definition) { RedhillonrailsCore::ActiveRecord::ConnectionAdapters::ForeignKeyDefinition }
8
8
 
9
9
  it "it is dumped to sql with quoted values" do
10
- definition.to_sql.should == %Q{CONSTRAINT posts_user_fkey FOREIGN KEY (#{quote_column_name('user')}) REFERENCES #{quote_table_name('users')} (#{quote_column_name('id')})}
10
+ definition = fk_definition.new("named_fkey", :posts, :user, :users, :id)
11
+ definition.to_sql.should == foreign_key_sql("named_fkey")
11
12
  end
12
13
 
14
+ context "when name isn't given" do
15
+
16
+ it "builds name from table and column name" do
17
+ definition = fk_definition.new(nil, :posts, :user, :users, :id)
18
+ definition.to_sql.should == foreign_key_sql("posts_user_fkey")
19
+ end
20
+
21
+ it "build name with column joined with underscore for compsite key" do
22
+ definition = fk_definition.new(nil, :orders, [:inquiry_id, :user_id], :inquiries, [:id, :user_id])
23
+ expected_definition = "CONSTRAINT orders_inquiry_id_user_id_fkey FOREIGN KEY \
24
+ (#{quote_column_name("inquiry_id")}, #{quote_column_name("user_id")}) \
25
+ REFERENCES #{quote_table_name("inquiries")} (#{quote_column_name("id")}, #{quote_column_name("user_id")})".squeeze(" ")
26
+ definition.to_sql.should == expected_definition
27
+ end
28
+
29
+ end
30
+
31
+ it "does not include name if no name or table_name is given" do
32
+ definition = fk_definition.new(nil, nil, :user, :users, :id)
33
+ definition.to_sql.should == foreign_key_sql(nil)
34
+ end
35
+
36
+ protected
13
37
  def quote_table_name(table)
14
38
  ActiveRecord::Base.connection.quote_table_name(table)
15
39
  end
@@ -18,4 +42,9 @@ describe "Foreign Key definition" do
18
42
  ActiveRecord::Base.connection.quote_column_name(column)
19
43
  end
20
44
 
45
+ def foreign_key_sql(fk_name)
46
+ [("CONSTRAINT #{fk_name}" if fk_name), "FOREIGN KEY (#{quote_column_name('user')}) "\
47
+ "REFERENCES #{quote_table_name('users')} (#{quote_column_name('id')})"].compact.join(' ')
48
+ end
49
+
21
50
  end
@@ -10,7 +10,7 @@ describe "Foreign Key" do
10
10
 
11
11
  context "when is added", "posts(author_id)" do
12
12
 
13
- before(:each) do
13
+ before(:each) do
14
14
  add_foreign_key(:posts, :author_id, :users, :id, :on_update => :cascade, :on_delete => :restrict)
15
15
  end
16
16
 
@@ -60,7 +60,7 @@ describe "Foreign Key" do
60
60
  it "is no longer available in Post.foreign_keys" do
61
61
  Comment.foreign_keys.collect(&:column_names).should_not include(%w[post_id])
62
62
  end
63
-
63
+
64
64
  it "is no longer available in User.reverse_foreign_keys" do
65
65
  Post.reverse_foreign_keys.collect(&:column_names).should_not include(%w[post_id])
66
66
  end
@@ -78,6 +78,19 @@ describe "Foreign Key" do
78
78
 
79
79
  end
80
80
 
81
+ it "shouldn't raise when restrited keyword in table name is used" do
82
+ migration.suppress_messages do
83
+ migration.create_table :select, :force => true do |t|
84
+ t.integer :post_id
85
+ end
86
+ end
87
+ expect do
88
+ add_foreign_key(:select, :post_id, :posts, :id, :name => "test_fk")
89
+ remove_foreign_key(:select, "test_fk")
90
+ end.should_not raise_error(Exception)
91
+ migration.suppress_messages { migration.drop_table :select }
92
+ end
93
+
81
94
  protected
82
95
  def add_foreign_key(*args)
83
96
  migration.suppress_messages do
@@ -0,0 +1,28 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ require 'models/post'
4
+
5
+ describe "Table definition" do
6
+
7
+ let(:connection) { ::ActiveRecord::Migration.connection }
8
+
9
+ unless ::ActiveRecord::Base.connection.class.include?(
10
+ RedhillonrailsCore::ActiveRecord::ConnectionAdapters::Sqlite3Adapter)
11
+
12
+ it "sets table_name of foreign key definition when running migrations" do
13
+ connection.create_table :votes, :force => true do |t|
14
+ t.integer :kind
15
+ t.integer :application_id
16
+ t.integer :user_id
17
+ t.foreign_key :user_id, :users, :id
18
+ end
19
+
20
+ Vote = Class.new(ActiveRecord::Base)
21
+ Vote.foreign_keys.size.should == 1
22
+ Vote.foreign_keys[0].table_name.should == 'votes'
23
+ connection.drop_table :votes
24
+ end
25
+
26
+ end
27
+
28
+ end
@@ -0,0 +1,41 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ require 'models/user'
4
+
5
+ describe "views" do
6
+
7
+ let(:migration) { ::ActiveRecord::Migration }
8
+
9
+ let(:dump) do
10
+ stream = StringIO.new
11
+ ActiveRecord::SchemaDumper.ignore_tables = %w[users comments]
12
+ ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, stream)
13
+ stream.string
14
+ end
15
+
16
+ let(:view_statement) { "SELECT * FROM users where deleted_at IS NULL" }
17
+
18
+ it "should return views" do
19
+ with_view "active_users", view_statement do
20
+ migration.connection.views.should have(1).view
21
+ end
22
+ end
23
+
24
+ it "should be included in schema dump" do
25
+ with_view "active_users", view_statement do
26
+ dump.should match /active_users/
27
+ # I don't test view definition as it is transformed to different form
28
+ # comparing to original statement
29
+ end
30
+ end
31
+
32
+ protected
33
+ def with_view(name, definition)
34
+ migration.suppress_messages do
35
+ migration.create_view name, definition
36
+ yield
37
+ migration.drop_view name
38
+ end
39
+ end
40
+
41
+ end
metadata CHANGED
@@ -1,108 +1,102 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: redhillonrails_core
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 1
8
- - 3
9
- version: 1.1.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
12
- - "Micha\xC5\x82 \xC5\x81omnicki"
7
+ authors:
8
+ - Michał Łomnicki
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-02-25 00:00:00 +01:00
12
+ date: 2011-07-21 00:00:00.000000000 +02:00
18
13
  default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
21
16
  name: activerecord
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 2
29
- version: "2"
17
+ requirement: &84719870 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
30
23
  type: :runtime
31
- version_requirements: *id001
32
- - !ruby/object:Gem::Dependency
33
- name: rspec
34
24
  prerelease: false
35
- requirement: &id002 !ruby/object:Gem::Requirement
36
- requirements:
25
+ version_requirements: *84719870
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ requirement: &84719590 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
37
31
  - - ~>
38
- - !ruby/object:Gem::Version
39
- segments:
40
- - 2
41
- - 4
42
- - 0
32
+ - !ruby/object:Gem::Version
43
33
  version: 2.4.0
44
34
  type: :development
45
- version_requirements: *id002
46
- - !ruby/object:Gem::Dependency
47
- name: pg
48
35
  prerelease: false
49
- requirement: &id003 !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- segments:
54
- - 0
55
- version: "0"
36
+ version_requirements: *84719590
37
+ - !ruby/object:Gem::Dependency
38
+ name: pg
39
+ requirement: &84719370 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
56
45
  type: :development
57
- version_requirements: *id003
58
- - !ruby/object:Gem::Dependency
59
- name: mysql
60
46
  prerelease: false
61
- requirement: &id004 !ruby/object:Gem::Requirement
62
- requirements:
63
- - - ">="
64
- - !ruby/object:Gem::Version
65
- segments:
66
- - 0
67
- version: "0"
47
+ version_requirements: *84719370
48
+ - !ruby/object:Gem::Dependency
49
+ name: mysql
50
+ requirement: &84719110 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
68
56
  type: :development
69
- version_requirements: *id004
70
- - !ruby/object:Gem::Dependency
71
- name: mysql2
72
57
  prerelease: false
73
- requirement: &id005 !ruby/object:Gem::Requirement
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- segments:
78
- - 0
79
- version: "0"
58
+ version_requirements: *84719110
59
+ - !ruby/object:Gem::Dependency
60
+ name: mysql2
61
+ requirement: &84718820 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: 0.2.11
80
67
  type: :development
81
- version_requirements: *id005
82
- - !ruby/object:Gem::Dependency
83
- name: sqlite3-ruby
84
68
  prerelease: false
85
- requirement: &id006 !ruby/object:Gem::Requirement
86
- requirements:
69
+ version_requirements: *84718820
70
+ - !ruby/object:Gem::Dependency
71
+ name: sqlite3-ruby
72
+ requirement: &84718540 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
87
75
  - - ~>
88
- - !ruby/object:Gem::Version
89
- segments:
90
- - 1
91
- - 3
92
- - 1
76
+ - !ruby/object:Gem::Version
93
77
  version: 1.3.1
94
78
  type: :development
95
- version_requirements: *id006
96
- description: Adds support in ActiveRecord for foreign_keys, complex indexes and other database-related stuff. Easily create foreign_keys, complex indexes and views.
97
- email:
79
+ prerelease: false
80
+ version_requirements: *84718540
81
+ - !ruby/object:Gem::Dependency
82
+ name: rake
83
+ requirement: &84718340 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: *84718340
92
+ description: Adds support in ActiveRecord for foreign_keys, complex indexes and other
93
+ database-related stuff. Easily create foreign_keys, complex indexes and views.
94
+ email:
98
95
  - michal.lomnicki@gmail.com
99
96
  executables: []
100
-
101
97
  extensions: []
102
-
103
98
  extra_rdoc_files: []
104
-
105
- files:
99
+ files:
106
100
  - .gitignore
107
101
  - CHANGELOG
108
102
  - Gemfile
@@ -118,8 +112,10 @@ files:
118
112
  - lib/redhillonrails_core/active_record/connection_adapters/foreign_key_definition.rb
119
113
  - lib/redhillonrails_core/active_record/connection_adapters/index_definition.rb
120
114
  - lib/redhillonrails_core/active_record/connection_adapters/mysql_adapter.rb
115
+ - lib/redhillonrails_core/active_record/connection_adapters/mysql_adapter_fixes.rb
121
116
  - lib/redhillonrails_core/active_record/connection_adapters/mysql_column.rb
122
117
  - lib/redhillonrails_core/active_record/connection_adapters/postgresql_adapter.rb
118
+ - lib/redhillonrails_core/active_record/connection_adapters/schema_statements.rb
123
119
  - lib/redhillonrails_core/active_record/connection_adapters/sqlite3_adapter.rb
124
120
  - lib/redhillonrails_core/active_record/connection_adapters/table_definition.rb
125
121
  - lib/redhillonrails_core/active_record/schema.rb
@@ -142,35 +138,32 @@ files:
142
138
  - spec/schema_dumper_spec.rb
143
139
  - spec/spec_helper.rb
144
140
  - spec/support/reference.rb
141
+ - spec/table_definition_spec.rb
142
+ - spec/view_spec.rb
145
143
  has_rdoc: true
146
144
  homepage: https://github.com/mlomnicki/redhillonrails_core
147
145
  licenses: []
148
-
149
146
  post_install_message:
150
147
  rdoc_options: []
151
-
152
- require_paths:
148
+ require_paths:
153
149
  - lib
154
- required_ruby_version: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- segments:
159
- - 0
160
- version: "0"
161
- required_rubygems_version: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- segments:
166
- - 0
167
- version: "0"
150
+ required_ruby_version: !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ! '>='
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ required_rubygems_version: !ruby/object:Gem::Requirement
157
+ none: false
158
+ requirements:
159
+ - - ! '>='
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
168
162
  requirements: []
169
-
170
163
  rubyforge_project: redhillonrails_core
171
- rubygems_version: 1.3.6
164
+ rubygems_version: 1.6.2
172
165
  signing_key:
173
166
  specification_version: 3
174
- summary: Adds support in ActiveRecord for foreign_keys, complex indexes and other database-related stuff
167
+ summary: Adds support in ActiveRecord for foreign_keys, complex indexes and other
168
+ database-related stuff
175
169
  test_files: []
176
-