schema_plus 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -176,6 +176,7 @@ take advantage of auto-creation of foreign keys, you can re-enable it:
176
176
  == History
177
177
 
178
178
  * Recent Release notes:
179
+ * 0.3.1 - bug fix for PostgreSQL schema dump after * change_column_default(... nil)
179
180
  * 0.3.0 - add :default => expressions (Thanks to Luke Saunders). support rails 3.2 and ruby 1.9.3
180
181
  * 0.2.1 - suppress duplicate add_indexes. compatibility with rails 3.2.0.rc2
181
182
 
@@ -186,7 +187,7 @@ take advantage of auto-creation of foreign keys, you can re-enable it:
186
187
  * François Beausoleil (https://github.com/francois)
187
188
  * Greg Barnett (https://github.com/greg-barnett)
188
189
  * Ronen Barzel (https://github.com/ronen)
189
- * Luke Suanders (https://github.com/lukesaunders)
190
+ * Luke Saunders (https://github.com/lukesaunders)
190
191
 
191
192
  * SchemaPlus was created in 2011 by Michał Łomnicki and Ronen Barzel
192
193
 
@@ -218,7 +219,7 @@ And you can run the specs for a specific adapter:
218
219
  $ rake mysql2:spec # to run mysql2 tests only
219
220
  $ rake sqlite3:spec # to run sqlite3 tests only
220
221
 
221
- If you're running ruby 1.9.2, code coverage results will be in coverage/index.html -- it should be at 100% coverage.
222
+ If you're running ruby 1.9, code coverage results will be in coverage/index.html -- it should be at 100% coverage.
222
223
 
223
224
  == License
224
225
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: /Users/ronen/github/schema_plus
3
3
  specs:
4
- schema_plus (0.2.1)
4
+ schema_plus (0.3.1)
5
5
  rails
6
6
  valuable
7
7
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: /Users/ronen/github/schema_plus
3
3
  specs:
4
- schema_plus (0.2.1)
4
+ schema_plus (0.3.1)
5
5
  rails
6
6
  valuable
7
7
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: /Users/ronen/github/schema_plus
3
3
  specs:
4
- schema_plus (0.2.1)
4
+ schema_plus (0.3.1)
5
5
  rails
6
6
  valuable
7
7
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: /Users/ronen/github/schema_plus
3
3
  specs:
4
- schema_plus (0.2.1)
4
+ schema_plus (0.3.1)
5
5
  rails
6
6
  valuable
7
7
 
@@ -25,7 +25,16 @@ module SchemaPlus
25
25
 
26
26
  module ClassMethods
27
27
  def extract_value_from_default_with_schema_plus(default)
28
+
29
+
28
30
  value = extract_value_from_default_without_schema_plus(default)
31
+
32
+ # in some cases (e.g. if change_column_default(table, column,
33
+ # nil) is used), postgresql will return NULL::xxxxx (rather
34
+ # than nil) for a null default -- make sure we treat it as nil,
35
+ # not as a function.
36
+ default = nil if value.nil? && default =~ /\ANULL::(?:character varying|bpchar|text)\z/m
37
+
29
38
  if value.nil? && !default.nil?
30
39
  value = { :expr => default }
31
40
  end
@@ -1,3 +1,3 @@
1
1
  module SchemaPlus
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -21,6 +21,7 @@ describe "Schema dump" do
21
21
  t.text :body
22
22
  t.integer :user_id
23
23
  t.integer :first_comment_id
24
+ t.string :string_no_default
24
25
  end
25
26
 
26
27
  create_table :comments, :force => true do |t|
@@ -78,7 +79,7 @@ describe "Schema dump" do
78
79
 
79
80
  it "should dump the default hash expr as CURRENT_TIMESTAMP" do
80
81
  with_additional_column Post, :posted_at, :datetime, :default => {:expr => 'date \'2001-09-28\''} do
81
- dump_posts.should match(to_regexp(%q{t.datetime "posted_at", :default => '2001-09-28 00:00:00'}))
82
+ dump_posts.should match(%r{t.datetime "posted_at",\s*:default => '2001-09-28 00:00:00'})
82
83
  end
83
84
  end
84
85
  end
@@ -98,18 +99,18 @@ describe "Schema dump" do
98
99
 
99
100
  it "should dump the default value normally" do
100
101
  with_additional_column Post, :posted_at, :string, :default => "now" do
101
- dump_posts.should match(to_regexp(%q{t.string "posted_at", :default => "now"}))
102
+ dump_posts.should match(%r{t.string "posted_at",\s*:default => "now"})
102
103
  end
103
104
  end
104
105
  end
105
106
 
106
- if SchemaPlusHelpers.postgresql?
107
- it "should dump the default hash expr as CURRENT_TIMESTAMP" do
108
- with_additional_column Post, :posted_at, :datetime, :default => {:expr => 'date \'2001-09-28\''} do
109
- dump_posts.should match(to_regexp(%q{t.datetime "posted_at", :default => '2001-09-28 00:00:00'}))
110
- end
111
- end
107
+ end
108
+
109
+ it "should leave out :default when default was changed to null" do
110
+ ActiveRecord::Migration.suppress_messages do
111
+ ActiveRecord::Migration.change_column_default :posts, :string_no_default, nil
112
112
  end
113
+ dump_posts.should match(%r{t.string\s+"string_no_default"\s*$})
113
114
  end
114
115
 
115
116
  it "should include foreign_key options" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schema_plus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-03-19 00:00:00.000000000 Z
13
+ date: 2012-03-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
- requirement: &70239318248000 !ruby/object:Gem::Requirement
17
+ requirement: &70326231344460 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70239318248000
25
+ version_requirements: *70326231344460
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: valuable
28
- requirement: &70239318247580 !ruby/object:Gem::Requirement
28
+ requirement: &70326231343800 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70239318247580
36
+ version_requirements: *70326231343800
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rake
39
- requirement: &70239318247080 !ruby/object:Gem::Requirement
39
+ requirement: &70326231342600 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 0.8.7
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *70239318247080
47
+ version_requirements: *70326231342600
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rspec
50
- requirement: &70239318246660 !ruby/object:Gem::Requirement
50
+ requirement: &70326235449900 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *70239318246660
58
+ version_requirements: *70326235449900
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: pg
61
- requirement: &70239318246200 !ruby/object:Gem::Requirement
61
+ requirement: &70326235449440 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *70239318246200
69
+ version_requirements: *70326235449440
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: mysql
72
- requirement: &70239318245780 !ruby/object:Gem::Requirement
72
+ requirement: &70326235449020 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *70239318245780
80
+ version_requirements: *70326235449020
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: sqlite3
83
- requirement: &70239318245360 !ruby/object:Gem::Requirement
83
+ requirement: &70326235448600 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *70239318245360
91
+ version_requirements: *70326235448600
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: simplecov
94
- requirement: &70239318244940 !ruby/object:Gem::Requirement
94
+ requirement: &70326235448180 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *70239318244940
102
+ version_requirements: *70326235448180
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: simplecov-gem-adapter
105
- requirement: &70239318244520 !ruby/object:Gem::Requirement
105
+ requirement: &70326235447760 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ! '>='
@@ -110,7 +110,7 @@ dependencies:
110
110
  version: '0'
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *70239318244520
113
+ version_requirements: *70326235447760
114
114
  description: ! 'SchemaPlus is an ActiveRecord extension that provides enhanced capabilities
115
115
  for schema definition and querying, including: enhanced and more DRY index capabilities,
116
116
  support and automation for foreign key constraints, and support for views.'