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 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