redhillonrails_core 1.0.9.1 → 1.1.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.
Files changed (58) hide show
  1. data/CHANGELOG +7 -0
  2. data/README.rdoc +31 -47
  3. data/lib/redhillonrails_core/active_record/base.rb +63 -0
  4. data/lib/redhillonrails_core/active_record/connection_adapters/abstract_adapter.rb +75 -0
  5. data/lib/redhillonrails_core/active_record/connection_adapters/column.rb +25 -0
  6. data/lib/redhillonrails_core/active_record/connection_adapters/foreign_key_definition.rb +30 -0
  7. data/lib/redhillonrails_core/active_record/connection_adapters/index_definition.rb +17 -0
  8. data/lib/redhillonrails_core/active_record/connection_adapters/mysql_adapter.rb +78 -0
  9. data/lib/redhillonrails_core/active_record/connection_adapters/mysql_column.rb +12 -0
  10. data/lib/redhillonrails_core/active_record/connection_adapters/postgresql_adapter.rb +160 -0
  11. data/lib/redhillonrails_core/active_record/connection_adapters/sqlite3_adapter.rb +111 -0
  12. data/lib/redhillonrails_core/active_record/connection_adapters/table_definition.rb +31 -0
  13. data/lib/redhillonrails_core/active_record/schema.rb +27 -0
  14. data/lib/redhillonrails_core/active_record/schema_dumper.rb +70 -0
  15. data/lib/redhillonrails_core.rb +20 -26
  16. data/redhillonrails_core.gemspec +34 -40
  17. data/spec/connections/mysql/connection.rb +18 -0
  18. data/spec/connections/mysql2/connection.rb +18 -0
  19. data/spec/connections/postgresql/connection.rb +15 -0
  20. data/spec/connections/sqlite3/connection.rb +14 -0
  21. data/spec/foreign_key_spec.rb +100 -0
  22. data/spec/index_definition_spec.rb +145 -0
  23. data/spec/index_spec.rb +67 -0
  24. data/spec/models/comment.rb +5 -0
  25. data/spec/models/post.rb +6 -0
  26. data/spec/models/user.rb +5 -0
  27. data/spec/schema/schema.rb +21 -0
  28. data/spec/schema_dumper_spec.rb +117 -0
  29. data/spec/spec_helper.rb +16 -0
  30. data/spec/support/reference.rb +66 -0
  31. metadata +32 -57
  32. data/.document +0 -5
  33. data/.gitignore +0 -23
  34. data/.rvmrc +0 -1
  35. data/Gemfile +0 -20
  36. data/Gemfile.lock +0 -50
  37. data/Rakefile +0 -76
  38. data/VERSION +0 -1
  39. data/examples/example_helper.rb +0 -44
  40. data/examples/postgresql_index_parser_example.rb +0 -198
  41. data/lib/red_hill_consulting/core/active_record/base.rb +0 -61
  42. data/lib/red_hill_consulting/core/active_record/connection_adapters/abstract_adapter.rb +0 -71
  43. data/lib/red_hill_consulting/core/active_record/connection_adapters/column.rb +0 -21
  44. data/lib/red_hill_consulting/core/active_record/connection_adapters/foreign_key_definition.rb +0 -26
  45. data/lib/red_hill_consulting/core/active_record/connection_adapters/index_definition.rb +0 -13
  46. data/lib/red_hill_consulting/core/active_record/connection_adapters/mysql4_adapter.rb +0 -37
  47. data/lib/red_hill_consulting/core/active_record/connection_adapters/mysql5_adapter.rb +0 -40
  48. data/lib/red_hill_consulting/core/active_record/connection_adapters/mysql_adapter.rb +0 -103
  49. data/lib/red_hill_consulting/core/active_record/connection_adapters/mysql_column.rb +0 -8
  50. data/lib/red_hill_consulting/core/active_record/connection_adapters/postgresql_adapter.rb +0 -178
  51. data/lib/red_hill_consulting/core/active_record/connection_adapters/schema_statements.rb +0 -23
  52. data/lib/red_hill_consulting/core/active_record/connection_adapters/sqlite3_adapter.rb +0 -109
  53. data/lib/red_hill_consulting/core/active_record/connection_adapters/table_definition.rb +0 -27
  54. data/lib/red_hill_consulting/core/active_record/schema.rb +0 -25
  55. data/lib/red_hill_consulting/core/active_record/schema_dumper.rb +0 -66
  56. data/lib/red_hill_consulting/core/active_record.rb +0 -4
  57. data/lib/red_hill_consulting/core.rb +0 -4
  58. data/tasks/db/comments.rake +0 -9
@@ -0,0 +1,145 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ require 'models/user'
4
+
5
+ describe "Index definition" do
6
+
7
+ let(:migration) { ::ActiveRecord::Migration }
8
+
9
+ context "when index is multicolumn" do
10
+ before(:each) do
11
+ migration.suppress_messages do
12
+ migration.execute "CREATE INDEX users_login_index ON users (login, deleted_at)"
13
+ end
14
+ User.reset_column_information
15
+ @index = index_definition(%w[login deleted_at])
16
+ end
17
+
18
+ after(:each) do
19
+ migration.suppress_messages do
20
+ migration.remove_index :users, :name => 'users_login_index'
21
+ end
22
+ end
23
+
24
+ it "is included in User.indexes" do
25
+ User.indexes.select { |index| index.columns == %w[login deleted_at] }.should have(1).item
26
+ end
27
+
28
+ end
29
+
30
+ if ::ActiveRecord::Base.connection.class.include?(RedhillonrailsCore::ActiveRecord::ConnectionAdapters::PostgresqlAdapter)
31
+
32
+ context "when case insensitive is added" do
33
+
34
+ before(:each) do
35
+ migration.suppress_messages do
36
+ migration.execute "CREATE INDEX users_login_index ON users(LOWER(login))"
37
+ end
38
+ User.reset_column_information
39
+ @index = User.indexes.detect { |i| i.expression =~ /lower\(\(login\)::text\)/i }
40
+ end
41
+
42
+ after(:each) do
43
+ migration.suppress_messages do
44
+ migration.remove_index :users, :name => 'users_login_index'
45
+ end
46
+ end
47
+
48
+ it "is included in User.indexes" do
49
+ @index.should_not be_nil
50
+ end
51
+
52
+ it "is not case_sensitive" do
53
+ @index.should_not be_case_sensitive
54
+ end
55
+
56
+ it "defines expression" do
57
+ @index.expression.should == "lower((login)::text)"
58
+ end
59
+
60
+ it "doesn't define conditions" do
61
+ @index.conditions.should be_nil
62
+ end
63
+
64
+ end
65
+
66
+
67
+ context "when index is partial and column is not downcased" do
68
+ before(:each) do
69
+ migration.suppress_messages do
70
+ migration.execute "CREATE INDEX users_login_index ON users(login) WHERE deleted_at IS NULL"
71
+ end
72
+ User.reset_column_information
73
+ @index = index_definition("login")
74
+ end
75
+
76
+ after(:each) do
77
+ migration.suppress_messages do
78
+ migration.remove_index :users, :name => 'users_login_index'
79
+ end
80
+ end
81
+
82
+ it "is included in User.indexes" do
83
+ User.indexes.select { |index| index.columns == ["login"] }.should have(1).item
84
+ end
85
+
86
+ it "is case_sensitive" do
87
+ @index.should be_case_sensitive
88
+ end
89
+
90
+ it "doesn't define expression" do
91
+ @index.expression.should be_nil
92
+ end
93
+
94
+ it "defines conditions" do
95
+ @index.conditions.should == "(deleted_at IS NULL)"
96
+ end
97
+
98
+ end
99
+
100
+ context "when index contains expression" do
101
+ before(:each) do
102
+ migration.suppress_messages do
103
+ migration.execute "CREATE INDEX users_login_index ON users (extract(EPOCH from deleted_at)) WHERE deleted_at IS NULL"
104
+ end
105
+ User.reset_column_information
106
+ @index = User.indexes.detect { |i| i.expression.present? }
107
+ end
108
+
109
+ after(:each) do
110
+ migration.suppress_messages do
111
+ migration.remove_index :users, :name => 'users_login_index'
112
+ end
113
+ end
114
+
115
+ it "exists" do
116
+ @index.should_not be_nil
117
+ end
118
+
119
+ it "doesnt have columns defined" do
120
+ @index.columns.should be_empty
121
+ end
122
+
123
+ it "is case_sensitive" do
124
+ @index.should be_case_sensitive
125
+ end
126
+
127
+ it "defines expression" do
128
+ @index.expression.should == "date_part('epoch'::text, deleted_at)"
129
+ end
130
+
131
+ it "defines conditions" do
132
+ @index.conditions.should == "(deleted_at IS NULL)"
133
+ end
134
+
135
+ end
136
+
137
+ end # of postgresql specific examples
138
+
139
+ protected
140
+ def index_definition(column_names)
141
+ User.indexes.detect { |index| index.columns == Array(column_names) }
142
+ end
143
+
144
+
145
+ end
@@ -0,0 +1,67 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ require 'models/user'
4
+
5
+ describe "add_index" do
6
+
7
+ let(:migration) { ::ActiveRecord::Migration }
8
+
9
+ after(:each) do
10
+ migration.suppress_messages do
11
+ migration.remove_index(:users, :name => @index.name) if @index
12
+ end
13
+ end
14
+
15
+ it "should create index when called without additional options" do
16
+ add_index(:users, :login)
17
+ index_for(:login).should_not be_nil
18
+ end
19
+
20
+ it "should create unique index" do
21
+ add_index(:users, :login, :unique => true)
22
+ index_for(:login).unique.should == true
23
+ end
24
+
25
+ it "should assign given name" do
26
+ add_index(:users, :login, :name => 'users_login_index')
27
+ index_for(:login).name.should == 'users_login_index'
28
+ end
29
+
30
+ if ::ActiveRecord::Base.connection.class.include?(RedhillonrailsCore::ActiveRecord::ConnectionAdapters::PostgresqlAdapter)
31
+
32
+ it "should assign conditions" do
33
+ add_index(:users, :login, :conditions => 'deleted_at IS NULL')
34
+ index_for(:login).conditions.should == '(deleted_at IS NULL)'
35
+ end
36
+
37
+ it "should assign expression" do
38
+ add_index(:users, :expression => "USING hash (upper(login)) WHERE deleted_at IS NULL", :name => 'users_login_index')
39
+ @index = User.indexes.detect { |i| i.expression.present? }
40
+ @index.expression.should == "upper((login)::text)"
41
+ @index.conditions.should == "(deleted_at IS NULL)"
42
+ end
43
+
44
+ it "should raise if no column given and expression is missing" do
45
+ expect { add_index(:users, :name => 'users_login_index') }.should raise_error(ArgumentError)
46
+ end
47
+
48
+ it "should raise if expression without name is given" do
49
+ expect { add_index(:users, :expression => "USING btree (login)") }.should raise_error(ArgumentError)
50
+ end
51
+
52
+ end # of postgresql specific examples
53
+
54
+ protected
55
+ def add_index(*args)
56
+ migration.suppress_messages do
57
+ migration.add_index(*args)
58
+ end
59
+ User.reset_column_information
60
+ end
61
+
62
+ def index_for(column_names)
63
+ @index = User.indexes.detect { |i| i.columns == Array(column_names).collect(&:to_s) }
64
+ end
65
+
66
+
67
+ end
@@ -0,0 +1,5 @@
1
+ class Comment < ActiveRecord::Base
2
+
3
+ belongs_to :post
4
+
5
+ end
@@ -0,0 +1,6 @@
1
+ class Post < ActiveRecord::Base
2
+
3
+ belongs_to :user
4
+ has_many :comments
5
+
6
+ end
@@ -0,0 +1,5 @@
1
+ class User < ActiveRecord::Base
2
+
3
+ has_many :posts
4
+
5
+ end
@@ -0,0 +1,21 @@
1
+ ActiveRecord::Schema.define do
2
+
3
+ create_table :users, :force => true do |t|
4
+ t.string :login
5
+ t.datetime :deleted_at
6
+ end
7
+
8
+ create_table :posts, :force => true do |t|
9
+ t.text :body
10
+ t.integer :user_id
11
+ t.integer :author_id
12
+ end
13
+
14
+ create_table :comments, :force => true do |t|
15
+ t.text :body
16
+ t.integer :post_id
17
+ end
18
+
19
+ add_foreign_key :comments, :post_id, :posts, :id
20
+
21
+ end
@@ -0,0 +1,117 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+ require 'stringio'
3
+
4
+ require 'models/post'
5
+
6
+ describe "Schema dump" do
7
+
8
+ let(:dump) do
9
+ stream = StringIO.new
10
+ ActiveRecord::SchemaDumper.ignore_tables = %w[users comments]
11
+ ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, stream)
12
+ stream.string
13
+ end
14
+
15
+ it "should include foreign_key definition" do
16
+ with_foreign_key Post, :user_id, :users, :id do
17
+ dump.should match(to_regexp(%q{add_foreign_key "posts", ["user_id"], "users", ["id"]}))
18
+ end
19
+ end
20
+
21
+
22
+ unless ::ActiveRecord::Base.connection.class.include?(RedhillonrailsCore::ActiveRecord::ConnectionAdapters::Sqlite3Adapter)
23
+
24
+ it "should include foreign_key options" do
25
+ with_foreign_key Post, :user_id, :users, :id, :on_update => :cascade, :on_delete => :set_null do
26
+ dump.should match(to_regexp(%q{add_foreign_key "posts", ["user_id"], "users", ["id"], :on_update => :cascade, :on_delete => :set_null}))
27
+ end
28
+ end
29
+
30
+ end
31
+
32
+ it "should include index definition" do
33
+ with_index Post, :user_id do
34
+ dump.should match(to_regexp(%q{add_index "posts", ["user_id"]}))
35
+ end
36
+ end
37
+
38
+ it "should include index name" do
39
+ with_index Post, :user_id, :name => "posts_user_id_index" do
40
+ dump.should match(to_regexp(%q{add_index "posts", ["user_id"], :name => "posts_user_id_index"}))
41
+ end
42
+ end
43
+
44
+ it "should define unique index" do
45
+ with_index Post, :user_id, :name => "posts_user_id_index", :unique => true do
46
+ dump.should match(to_regexp(%q{add_index "posts", ["user_id"], :name => "posts_user_id_index", :unique => true}))
47
+ end
48
+ end
49
+
50
+ if ::ActiveRecord::Base.connection.class.include?(RedhillonrailsCore::ActiveRecord::ConnectionAdapters::PostgresqlAdapter)
51
+
52
+ it "should define case insensitive index" do
53
+ with_index Post, :name => "posts_user_body_index", :expression => "USING btree (LOWER(body))" do
54
+ dump.should match(to_regexp(%q{add_index "posts", ["body"], :name => "posts_user_body_index", :case_sensitive => false}))
55
+ end
56
+ end
57
+
58
+ it "should define conditions" do
59
+ with_index Post, :user_id, :name => "posts_user_id_index", :conditions => "user_id IS NOT NULL" do
60
+ dump.should match(to_regexp(%q{add_index "posts", ["user_id"], :name => "posts_user_id_index", :conditions => "(user_id IS NOT NULL)"}))
61
+ end
62
+ end
63
+
64
+ it "should define expression" do
65
+ with_index Post, :name => "posts_freaky_index", :expression => "USING hash (least(id, user_id))" do
66
+ dump.should match(to_regexp(%q{add_index "posts", :name => "posts_freaky_index", :kind => "hash", :expression => "LEAST(id, user_id)"}))
67
+ end
68
+ end
69
+
70
+ it "should define kind" do
71
+ with_index Post, :name => "posts_body_index", :expression => "USING hash (body)" do
72
+ dump.should match(to_regexp(%q{add_index "posts", ["body"], :name => "posts_body_index", :kind => "hash"}))
73
+ end
74
+ end
75
+
76
+ end # of postgresql specific examples
77
+
78
+ protected
79
+ def to_regexp(string)
80
+ Regexp.new(Regexp.escape(string))
81
+ end
82
+
83
+ def with_foreign_key(model, columns, referenced_table_name, referenced_columns, options = {})
84
+ ActiveRecord::Migration.suppress_messages do
85
+ ActiveRecord::Migration.add_foreign_key(model.table_name, columns, referenced_table_name, referenced_columns, options)
86
+ end
87
+ model.reset_column_information
88
+ yield
89
+ ActiveRecord::Migration.suppress_messages do
90
+ ActiveRecord::Migration.remove_foreign_key(model.table_name, determine_foreign_key_name(model, columns, options))
91
+ end
92
+ end
93
+
94
+ def with_index(model, columns, options = {})
95
+ ActiveRecord::Migration.suppress_messages do
96
+ ActiveRecord::Migration.add_index(model.table_name, columns, options)
97
+ end
98
+ model.reset_column_information
99
+ yield
100
+ ActiveRecord::Migration.suppress_messages do
101
+ ActiveRecord::Migration.remove_index(model.table_name, :name => determine_index_name(model, columns, options))
102
+ end
103
+ end
104
+
105
+ def determine_index_name(model, columns, options)
106
+ name = columns[:name] if columns.is_a?(Hash)
107
+ name ||= options[:name]
108
+ name ||= model.indexes.detect { |index| index.table == model.table_name.to_s && index.columns == Array(columns).collect(&:to_s) }.name
109
+ name
110
+ end
111
+
112
+ def determine_foreign_key_name(model, columns, options)
113
+ name = options[:name]
114
+ name ||= model.foreign_keys.detect { |fk| fk.table_name == model.table_name.to_s && fk.column_names == Array(columns).collect(&:to_s) }.name
115
+ end
116
+
117
+ end
@@ -0,0 +1,16 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'rubygems'
4
+ require 'active_record'
5
+ require 'redhillonrails_core'
6
+ require 'connection'
7
+ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
8
+
9
+ Spec::Runner.configure do |config|
10
+ config.include(RedhillonrailsCoreMatchers)
11
+ # load schema
12
+ ActiveRecord::Migration.suppress_messages do
13
+ eval(File.read(File.join(File.dirname(__FILE__), 'schema', 'schema.rb')))
14
+ end
15
+ end
16
+
@@ -0,0 +1,66 @@
1
+ module RedhillonrailsCoreMatchers
2
+
3
+ class Reference
4
+ def initialize(expected)
5
+ @column_names = nil
6
+ unless expected.empty?
7
+ @references_column_names = Array(expected).collect(&:to_s)
8
+ @references_table_name = @references_column_names.shift
9
+ end
10
+ end
11
+
12
+ def matches?(model)
13
+ @model = model
14
+ if @references_table_name
15
+ @result = @model.foreign_keys.select do |fk|
16
+ fk.references_table_name == @references_table_name &&
17
+ fk.references_column_names == @references_column_names
18
+ end
19
+ else
20
+ @result = @model.foreign_keys
21
+ end
22
+ if @column_names
23
+ @result.any? do |fk|
24
+ fk.column_names == @column_names &&
25
+ (@on_update ? fk.on_update == @on_update : true) &&
26
+ (@on_delete ? fk.on_delete == @on_delete : true)
27
+ end
28
+ else
29
+ !!@result
30
+ end
31
+ end
32
+
33
+ def failure_message_for_should(should_not = false)
34
+ target_column_names = @column_names.present? ? "(#{@column_names.join(', ')})" : ""
35
+ destinantion_column_names = @references_table_name ? "#{@references_table_name}(#{@references_column_names.join(', ')})" : "anything"
36
+ invert = should_not ? 'not' : ''
37
+ "Expected #{@model.table_name}#{target_column_names} #{invert} to reference #{destinantion_column_names}"
38
+ end
39
+
40
+ def failure_message_for_should_not
41
+ failure_message_for_should(true)
42
+ end
43
+
44
+ def on(*column_names)
45
+ @column_names = column_names.collect(&:to_s)
46
+ self
47
+ end
48
+
49
+ def on_update(action)
50
+ @on_update = action
51
+ self
52
+ end
53
+
54
+ def on_delete(action)
55
+ @on_delete = action
56
+ self
57
+ end
58
+
59
+ end
60
+
61
+ def reference(*expect)
62
+ Reference.new(expect)
63
+ end
64
+
65
+ end
66
+
metadata CHANGED
@@ -1,14 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redhillonrails_core
3
3
  version: !ruby/object:Gem::Version
4
- hash: 121
5
4
  prerelease: false
6
5
  segments:
7
6
  - 1
8
- - 0
9
- - 9
10
7
  - 1
11
- version: 1.0.9.1
8
+ - 0
9
+ version: 1.1.0
12
10
  platform: ruby
13
11
  authors:
14
12
  - "Micha\xC5\x82 \xC5\x81omnicki"
@@ -16,38 +14,22 @@ autorequire:
16
14
  bindir: bin
17
15
  cert_chain: []
18
16
 
19
- date: 2010-12-13 00:00:00 +01:00
17
+ date: 2011-01-09 00:00:00 +01:00
20
18
  default_executable:
21
19
  dependencies:
22
20
  - !ruby/object:Gem::Dependency
23
21
  name: activerecord
24
22
  prerelease: false
25
23
  requirement: &id001 !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ">="
29
26
  - !ruby/object:Gem::Version
30
- hash: 3
31
27
  segments:
32
28
  - 0
33
29
  version: "0"
34
30
  type: :runtime
35
31
  version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: micronaut
38
- prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
48
- type: :development
49
- version_requirements: *id002
50
- description: RedHill on Rails Core is a plugin that features to support other RedHill on Rails plugins. It creates and drops views and foreign-keys or obtains indexes directly from a model class.
32
+ description: Adds support in ActiveRecord for foreign_keys, complex indexes and other database-related stuff. Easily create foreign_keys, complex indexes and views.
51
33
  email: michal.lomnicki@gmail.com
52
34
  executables: []
53
35
 
@@ -56,39 +38,24 @@ extensions: []
56
38
  extra_rdoc_files:
57
39
  - README.rdoc
58
40
  files:
59
- - .document
60
- - .gitignore
61
- - .rvmrc
62
41
  - CHANGELOG
63
- - Gemfile
64
- - Gemfile.lock
65
42
  - MIT-LICENSE
66
43
  - README.rdoc
67
- - Rakefile
68
- - VERSION
69
- - examples/example_helper.rb
70
- - examples/postgresql_index_parser_example.rb
71
44
  - init.rb
72
- - lib/red_hill_consulting/core.rb
73
- - lib/red_hill_consulting/core/active_record.rb
74
- - lib/red_hill_consulting/core/active_record/base.rb
75
- - lib/red_hill_consulting/core/active_record/connection_adapters/abstract_adapter.rb
76
- - lib/red_hill_consulting/core/active_record/connection_adapters/column.rb
77
- - lib/red_hill_consulting/core/active_record/connection_adapters/foreign_key_definition.rb
78
- - lib/red_hill_consulting/core/active_record/connection_adapters/index_definition.rb
79
- - lib/red_hill_consulting/core/active_record/connection_adapters/mysql4_adapter.rb
80
- - lib/red_hill_consulting/core/active_record/connection_adapters/mysql5_adapter.rb
81
- - lib/red_hill_consulting/core/active_record/connection_adapters/mysql_adapter.rb
82
- - lib/red_hill_consulting/core/active_record/connection_adapters/mysql_column.rb
83
- - lib/red_hill_consulting/core/active_record/connection_adapters/postgresql_adapter.rb
84
- - lib/red_hill_consulting/core/active_record/connection_adapters/schema_statements.rb
85
- - lib/red_hill_consulting/core/active_record/connection_adapters/sqlite3_adapter.rb
86
- - lib/red_hill_consulting/core/active_record/connection_adapters/table_definition.rb
87
- - lib/red_hill_consulting/core/active_record/schema.rb
88
- - lib/red_hill_consulting/core/active_record/schema_dumper.rb
89
45
  - lib/redhillonrails_core.rb
46
+ - lib/redhillonrails_core/active_record/base.rb
47
+ - lib/redhillonrails_core/active_record/connection_adapters/abstract_adapter.rb
48
+ - lib/redhillonrails_core/active_record/connection_adapters/column.rb
49
+ - lib/redhillonrails_core/active_record/connection_adapters/foreign_key_definition.rb
50
+ - lib/redhillonrails_core/active_record/connection_adapters/index_definition.rb
51
+ - lib/redhillonrails_core/active_record/connection_adapters/mysql_adapter.rb
52
+ - lib/redhillonrails_core/active_record/connection_adapters/mysql_column.rb
53
+ - lib/redhillonrails_core/active_record/connection_adapters/postgresql_adapter.rb
54
+ - lib/redhillonrails_core/active_record/connection_adapters/sqlite3_adapter.rb
55
+ - lib/redhillonrails_core/active_record/connection_adapters/table_definition.rb
56
+ - lib/redhillonrails_core/active_record/schema.rb
57
+ - lib/redhillonrails_core/active_record/schema_dumper.rb
90
58
  - redhillonrails_core.gemspec
91
- - tasks/db/comments.rake
92
59
  has_rdoc: true
93
60
  homepage: http://github.com/mlomnicki/redhillonrails_core
94
61
  licenses: []
@@ -99,30 +66,38 @@ rdoc_options:
99
66
  require_paths:
100
67
  - lib
101
68
  required_ruby_version: !ruby/object:Gem::Requirement
102
- none: false
103
69
  requirements:
104
70
  - - ">="
105
71
  - !ruby/object:Gem::Version
106
- hash: 3
107
72
  segments:
108
73
  - 0
109
74
  version: "0"
110
75
  required_rubygems_version: !ruby/object:Gem::Requirement
111
- none: false
112
76
  requirements:
113
77
  - - ">="
114
78
  - !ruby/object:Gem::Version
115
- hash: 3
116
79
  segments:
117
80
  - 0
118
81
  version: "0"
119
82
  requirements: []
120
83
 
121
84
  rubyforge_project:
122
- rubygems_version: 1.3.7
85
+ rubygems_version: 1.3.6
123
86
  signing_key:
124
87
  specification_version: 3
125
- summary: RedHill on Rails Core is a plugin that features to support other RedHill on Rails plugins
88
+ summary: Adds support in ActiveRecord for foreign_keys, complex indexes and other database-related stuff
126
89
  test_files:
127
- - examples/example_helper.rb
128
- - examples/postgresql_index_parser_example.rb
90
+ - spec/schema/schema.rb
91
+ - spec/foreign_key_spec.rb
92
+ - spec/schema_dumper_spec.rb
93
+ - spec/connections/mysql2/connection.rb
94
+ - spec/connections/postgresql/connection.rb
95
+ - spec/connections/sqlite3/connection.rb
96
+ - spec/connections/mysql/connection.rb
97
+ - spec/support/reference.rb
98
+ - spec/index_definition_spec.rb
99
+ - spec/spec_helper.rb
100
+ - spec/index_spec.rb
101
+ - spec/models/user.rb
102
+ - spec/models/post.rb
103
+ - spec/models/comment.rb
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- MIT-LICENSE
data/.gitignore DELETED
@@ -1,23 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
22
- .bundle
23
- log
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm 1.8.7@redhillonrails_core
data/Gemfile DELETED
@@ -1,20 +0,0 @@
1
- source :rubygems
2
-
3
- gem "pg"
4
- gem "activerecord"
5
- gem "rake"
6
-
7
- group :development, :test do
8
- gem "jeweler"
9
- gem "micronaut"
10
-
11
- platforms :ruby_18 do
12
- gem "ruby-debug"
13
- end
14
-
15
- platforms :ruby_19 do
16
- gem "ruby-debug19"
17
- end
18
- end
19
-
20
- # vim: ft=ruby