redhillonrails_core 1.1.2 → 1.1.3.pre1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ 1.1.3
2
+ * sorting of indexes and foreign keys on schema dumper
3
+ 1.1.2
4
+ * don't quote constraint name (bugfix)
1
5
  1.1.1
2
6
  * quote values for foreign key definition
3
7
  1.1.0
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 - http://github.com/francois
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
@@ -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: false
4
+ prerelease: true
5
5
  segments:
6
6
  - 1
7
7
  - 1
8
- - 2
9
- version: 1.1.2
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-01-10 00:00:00 +01:00
18
+ date: 2011-02-21 00:00:00 +01:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
- name: activerecord
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
- type: :runtime
29
+ requirement: *id001
31
30
  prerelease: false
32
- version_requirements: *id001
31
+ type: :runtime
32
+ name: activerecord
33
33
  - !ruby/object:Gem::Dependency
34
- name: jeweler
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
- type: :development
42
+ requirement: *id002
45
43
  prerelease: false
46
- version_requirements: *id002
44
+ type: :development
45
+ name: jeweler
47
46
  - !ruby/object:Gem::Dependency
48
- name: rspec
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
- type: :development
55
+ requirement: *id003
59
56
  prerelease: false
60
- version_requirements: *id003
57
+ type: :development
58
+ name: rspec
61
59
  - !ruby/object:Gem::Dependency
62
- name: pg
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
- type: :development
67
+ requirement: *id004
72
68
  prerelease: false
73
- version_requirements: *id004
69
+ type: :development
70
+ name: pg
74
71
  - !ruby/object:Gem::Dependency
75
- name: mysql
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
- type: :development
79
+ requirement: *id005
85
80
  prerelease: false
86
- version_requirements: *id005
81
+ type: :development
82
+ name: mysql
87
83
  - !ruby/object:Gem::Dependency
88
- name: mysql2
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
- type: :development
91
+ requirement: *id006
98
92
  prerelease: false
99
- version_requirements: *id006
93
+ type: :development
94
+ name: mysql2
100
95
  - !ruby/object:Gem::Dependency
101
- name: sqlite3-ruby
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
- type: :development
105
+ requirement: *id007
113
106
  prerelease: false
114
- version_requirements: *id007
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
- - 0
183
- version: "0"
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.7
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