redhillonrails_core 1.1.2 → 1.1.3.pre1
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/CHANGELOG +4 -0
- data/README.rdoc +2 -1
- data/lib/redhillonrails_core/active_record/schema_dumper.rb +8 -0
- data/spec/schema_dumper_spec.rb +23 -2
- metadata +39 -46
data/CHANGELOG
CHANGED
data/README.rdoc
CHANGED
@@ -167,6 +167,7 @@ First you have to fetch sources from github as specs are not inculded in a gem.
|
|
167
167
|
=== Contributors
|
168
168
|
|
169
169
|
* Michał Łomnicki
|
170
|
-
* François Beausoleil -
|
170
|
+
* François Beausoleil - https://github.com/francois
|
171
171
|
* Greg Barnett
|
172
|
+
* Romulo A. Ceccon - https://github.com/romuloceccon
|
172
173
|
|
@@ -25,6 +25,10 @@ module RedhillonrailsCore
|
|
25
25
|
|
26
26
|
def indexes_with_redhillonrails_core(table, stream)
|
27
27
|
indexes = @connection.indexes(table)
|
28
|
+
|
29
|
+
indexes.sort! do |a, b|
|
30
|
+
a.columns.sort <=> b.columns.sort
|
31
|
+
end
|
28
32
|
indexes.each do |index|
|
29
33
|
unless index.columns.blank?
|
30
34
|
stream.print " add_index #{index.table.inspect}, #{index.columns.inspect}, :name => #{index.name.inspect}"
|
@@ -48,6 +52,10 @@ module RedhillonrailsCore
|
|
48
52
|
|
49
53
|
def foreign_keys(table, stream)
|
50
54
|
foreign_keys = @connection.foreign_keys(table)
|
55
|
+
|
56
|
+
foreign_keys.sort! do |a, b|
|
57
|
+
a.column_names.sort <=> b.column_names.sort
|
58
|
+
end
|
51
59
|
foreign_keys.each do |foreign_key|
|
52
60
|
stream.print " "
|
53
61
|
stream.print foreign_key.to_dump
|
data/spec/schema_dumper_spec.rb
CHANGED
@@ -18,7 +18,6 @@ describe "Schema dump" do
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
|
22
21
|
unless ::ActiveRecord::Base.connection.class.include?(RedhillonrailsCore::ActiveRecord::ConnectionAdapters::Sqlite3Adapter)
|
23
22
|
|
24
23
|
it "should include foreign_key options" do
|
@@ -47,6 +46,28 @@ describe "Schema dump" do
|
|
47
46
|
end
|
48
47
|
end
|
49
48
|
|
49
|
+
it "should order foreign keys" do
|
50
|
+
with_foreign_key Post, :user_id, :users, :id, :name => 'posts_user_id_fk' do
|
51
|
+
with_foreign_key Post, :author_id, :users, :id, :name => 'posts_author_id_fk' do
|
52
|
+
foreign_key_defs = dump.split("\n").select { |x| x.match(/add_foreign_key/) }
|
53
|
+
foreign_key_defs.size.should be_equal(2)
|
54
|
+
foreign_key_defs[0].should match(to_regexp(%q{add_foreign_key "posts", ["author_id"], "users", ["id"]}))
|
55
|
+
foreign_key_defs[1].should match(to_regexp(%q{add_foreign_key "posts", ["user_id"], "users", ["id"]}))
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should order indexes" do
|
61
|
+
with_index Post, :user_id do
|
62
|
+
with_index Post, :author_id do
|
63
|
+
foreign_key_defs = dump.split("\n").select { |x| x.match(/add_index/) }
|
64
|
+
foreign_key_defs.size.should be_equal(2)
|
65
|
+
foreign_key_defs[0].should match(to_regexp(%q{add_index "posts", ["author_id"]}))
|
66
|
+
foreign_key_defs[1].should match(to_regexp(%q{add_index "posts", ["user_id"]}))
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
50
71
|
if ::ActiveRecord::Base.connection.class.include?(RedhillonrailsCore::ActiveRecord::ConnectionAdapters::PostgresqlAdapter)
|
51
72
|
|
52
73
|
it "should define case insensitive index" do
|
@@ -72,7 +93,7 @@ describe "Schema dump" do
|
|
72
93
|
dump.should match(to_regexp(%q{add_index "posts", ["body"], :name => "posts_body_index", :kind => "hash"}))
|
73
94
|
end
|
74
95
|
end
|
75
|
-
|
96
|
+
|
76
97
|
end # of postgresql specific examples
|
77
98
|
|
78
99
|
protected
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redhillonrails_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
4
|
+
prerelease: true
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
|
8
|
+
- 3
|
9
|
+
- pre1
|
10
|
+
version: 1.1.3.pre1
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- "Micha\xC5\x82 \xC5\x81omnicki"
|
@@ -14,26 +15,23 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2011-
|
18
|
+
date: 2011-02-21 00:00:00 +01:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
-
none: false
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
23
|
requirements:
|
25
24
|
- - ">="
|
26
25
|
- !ruby/object:Gem::Version
|
27
26
|
segments:
|
28
27
|
- 0
|
29
28
|
version: "0"
|
30
|
-
|
29
|
+
requirement: *id001
|
31
30
|
prerelease: false
|
32
|
-
|
31
|
+
type: :runtime
|
32
|
+
name: activerecord
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
|
35
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
36
|
-
none: false
|
34
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
37
35
|
requirements:
|
38
36
|
- - ~>
|
39
37
|
- !ruby/object:Gem::Version
|
@@ -41,13 +39,12 @@ dependencies:
|
|
41
39
|
- 1
|
42
40
|
- 5
|
43
41
|
version: "1.5"
|
44
|
-
|
42
|
+
requirement: *id002
|
45
43
|
prerelease: false
|
46
|
-
|
44
|
+
type: :development
|
45
|
+
name: jeweler
|
47
46
|
- !ruby/object:Gem::Dependency
|
48
|
-
|
49
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
47
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
51
48
|
requirements:
|
52
49
|
- - ~>
|
53
50
|
- !ruby/object:Gem::Version
|
@@ -55,52 +52,48 @@ dependencies:
|
|
55
52
|
- 1
|
56
53
|
- 3
|
57
54
|
version: "1.3"
|
58
|
-
|
55
|
+
requirement: *id003
|
59
56
|
prerelease: false
|
60
|
-
|
57
|
+
type: :development
|
58
|
+
name: rspec
|
61
59
|
- !ruby/object:Gem::Dependency
|
62
|
-
|
63
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
64
|
-
none: false
|
60
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
65
61
|
requirements:
|
66
62
|
- - ">="
|
67
63
|
- !ruby/object:Gem::Version
|
68
64
|
segments:
|
69
65
|
- 0
|
70
66
|
version: "0"
|
71
|
-
|
67
|
+
requirement: *id004
|
72
68
|
prerelease: false
|
73
|
-
|
69
|
+
type: :development
|
70
|
+
name: pg
|
74
71
|
- !ruby/object:Gem::Dependency
|
75
|
-
|
76
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
72
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
78
73
|
requirements:
|
79
74
|
- - ">="
|
80
75
|
- !ruby/object:Gem::Version
|
81
76
|
segments:
|
82
77
|
- 0
|
83
78
|
version: "0"
|
84
|
-
|
79
|
+
requirement: *id005
|
85
80
|
prerelease: false
|
86
|
-
|
81
|
+
type: :development
|
82
|
+
name: mysql
|
87
83
|
- !ruby/object:Gem::Dependency
|
88
|
-
|
89
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
84
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
91
85
|
requirements:
|
92
86
|
- - ">="
|
93
87
|
- !ruby/object:Gem::Version
|
94
88
|
segments:
|
95
89
|
- 0
|
96
90
|
version: "0"
|
97
|
-
|
91
|
+
requirement: *id006
|
98
92
|
prerelease: false
|
99
|
-
|
93
|
+
type: :development
|
94
|
+
name: mysql2
|
100
95
|
- !ruby/object:Gem::Dependency
|
101
|
-
|
102
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
103
|
-
none: false
|
96
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
104
97
|
requirements:
|
105
98
|
- - ~>
|
106
99
|
- !ruby/object:Gem::Version
|
@@ -109,9 +102,10 @@ dependencies:
|
|
109
102
|
- 3
|
110
103
|
- 1
|
111
104
|
version: 1.3.1
|
112
|
-
|
105
|
+
requirement: *id007
|
113
106
|
prerelease: false
|
114
|
-
|
107
|
+
type: :development
|
108
|
+
name: sqlite3-ruby
|
115
109
|
description: Adds support in ActiveRecord for foreign_keys, complex indexes and other database-related stuff. Easily create foreign_keys, complex indexes and views.
|
116
110
|
email: michal.lomnicki@gmail.com
|
117
111
|
executables: []
|
@@ -165,26 +159,25 @@ rdoc_options: []
|
|
165
159
|
require_paths:
|
166
160
|
- lib
|
167
161
|
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
-
none: false
|
169
162
|
requirements:
|
170
163
|
- - ">="
|
171
164
|
- !ruby/object:Gem::Version
|
172
|
-
hash: -983253727
|
173
165
|
segments:
|
174
166
|
- 0
|
175
167
|
version: "0"
|
176
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
169
|
requirements:
|
179
|
-
- - "
|
170
|
+
- - ">"
|
180
171
|
- !ruby/object:Gem::Version
|
181
172
|
segments:
|
182
|
-
-
|
183
|
-
|
173
|
+
- 1
|
174
|
+
- 3
|
175
|
+
- 1
|
176
|
+
version: 1.3.1
|
184
177
|
requirements: []
|
185
178
|
|
186
179
|
rubyforge_project:
|
187
|
-
rubygems_version: 1.3.
|
180
|
+
rubygems_version: 1.3.6
|
188
181
|
signing_key:
|
189
182
|
specification_version: 3
|
190
183
|
summary: Adds support in ActiveRecord for foreign_keys, complex indexes and other database-related stuff
|