active_record_inline_schema 0.5.6 → 0.5.7

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