active_record_inline_schema 0.5.6 → 0.5.7

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ 0.5.7 / 2012-06-22
2
+
3
+ * Bug fix
4
+
5
+ * In MySQL, properly create non-standard primary keys for one-column tables.
6
+
1
7
  0.5.6 / 2012-06-22
2
8
 
3
9
  * Enhancements
data/Gemfile CHANGED
@@ -7,11 +7,11 @@ gem 'minitest'
7
7
  gem 'minitest-reporters'
8
8
 
9
9
  platforms :ruby do
10
- if RUBY_VERSION >= '1.9'
11
- gem 'debugger'
12
- else
13
- gem 'ruby-debug19'
14
- end
10
+ # if RUBY_VERSION >= '1.9'
11
+ # gem 'debugger'
12
+ # else
13
+ # gem 'ruby-debug19'
14
+ # end
15
15
  # gem 'mysql2', '~>0.2'
16
16
  gem 'mysql2', '>=0.3'
17
17
  gem 'sqlite3'
@@ -62,7 +62,7 @@ class ActiveRecordInlineSchema::Config
62
62
  elsif mysql?
63
63
  if non_standard_primary_key
64
64
  k = connection.quote_column_name(model.primary_key)
65
- create_sql.sub! /#{k} *([^\)]+)(?:[^,]+),/, "#{k} \\1) PRIMARY KEY,"
65
+ create_sql.sub! /#{k}([^\)]+)\)([^\),]*)/, "#{k}\\1) PRIMARY KEY"
66
66
  end
67
67
  connection.execute create_sql
68
68
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveRecordInlineSchema
2
- VERSION = "0.5.6"
2
+ VERSION = "0.5.7"
3
3
  end
@@ -87,6 +87,22 @@ class Pet2 < ActiveRecord::Base
87
87
  col :name
88
88
  end
89
89
 
90
+ class Pet3 < ActiveRecord::Base
91
+ include SpecHelper
92
+ end
93
+
94
+ class Pet4 < ActiveRecord::Base
95
+ include SpecHelper
96
+ self.primary_key = "name"
97
+ col :name
98
+ end
99
+
100
+ class Pet5 < ActiveRecord::Base
101
+ include SpecHelper
102
+ self.primary_key = "id"
103
+ col :id, :type => :integer
104
+ end
105
+
90
106
  case ENV['DB_ADAPTER']
91
107
  when 'mysql'
92
108
  class CustomMysql < ActiveRecord::Base
@@ -5,20 +5,41 @@ describe ActiveRecordInlineSchema do
5
5
  end
6
6
  end
7
7
 
8
- it "properly registers non-incrementing integer primary keys" do
9
- Pet2.auto_upgrade!
10
- e = if sqlite?
11
- ActiveRecord::StatementInvalid
12
- else
13
- ActiveRecord::RecordNotUnique
14
- end
15
- lambda do
16
- 2.times do
17
- p = Pet2.new
18
- p.id = 1
19
- p.save!
8
+ describe :regressions do
9
+ def assert_unique(model, column_name, v)
10
+ e = if sqlite?
11
+ ActiveRecord::StatementInvalid
12
+ else
13
+ ActiveRecord::RecordNotUnique
20
14
  end
21
- end.must_raise(e)
15
+ lambda do
16
+ 2.times do
17
+ p = model.new
18
+ p.send "#{column_name}=", v
19
+ p.save!
20
+ end
21
+ end.must_raise(e)
22
+ end
23
+
24
+ it "properly creates tables with only one column, an auto-increment primary key" do
25
+ Pet3.auto_upgrade!
26
+ assert_unique Pet3, :id, 1
27
+ end
28
+
29
+ it "properly creates with only one column, a string primary key" do
30
+ Pet4.auto_upgrade!
31
+ assert_unique Pet4, :name, 'Jerry'
32
+ end
33
+
34
+ it "properly creates with only one column, a non-auto-increment integer primary key" do
35
+ Pet5.auto_upgrade!
36
+ assert_unique Pet5, :id, 1
37
+ end
38
+
39
+ it "properly registers non-incrementing integer primary keys" do
40
+ Pet2.auto_upgrade!
41
+ assert_unique Pet2, :id, 1
42
+ end
22
43
  end
23
44
 
24
45
  it 'has #key,col,property,attribute inside model' do
@@ -15,9 +15,9 @@ MiniTest::Unit.runner.reporters << MiniTest::Reporters::SpecReporter.new
15
15
 
16
16
  require 'active_record_inline_schema'
17
17
 
18
- require 'logger'
19
- ActiveRecord::Base.logger = Logger.new($stderr)
20
- ActiveRecord::Base.logger.level = Logger::INFO
18
+ # require 'logger'
19
+ # ActiveRecord::Base.logger = Logger.new($stderr)
20
+ # ActiveRecord::Base.logger.level = Logger::DEBUG
21
21
 
22
22
  module SpecHelper
23
23
  def self.included(base)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_inline_schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.5.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-06-22 00:00:00.000000000 Z
13
+ date: 2012-06-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport