migration_comments 0.3.1 → 0.3.2
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.
- checksums.yaml +7 -0
- data/lib/migration_comments/active_record/connection_adapters/abstract_adapter.rb +6 -0
- data/lib/migration_comments/active_record/connection_adapters/abstract_adapter/schema_creation.rb +9 -0
- data/lib/migration_comments/active_record/connection_adapters/mysql_adapter.rb +5 -1
- data/lib/migration_comments/active_record/connection_adapters/postgresql_adapter.rb +4 -0
- data/lib/migration_comments/schema_formatter.rb +1 -1
- data/lib/migration_comments/version.rb +1 -1
- data/test/add_comments_test.rb +1 -1
- data/test/annotate_models_test.rb +1 -1
- data/test/auto_increment_test.rb +5 -7
- data/test/schema_dumper_test.rb +1 -13
- data/test/test_helper.rb +1 -1
- metadata +18 -36
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 766b7ebfb9c64bc9b8a4bc03e4c943d0276c6f49
|
4
|
+
data.tar.gz: c33c766bd47e849dc07d5c5b454eddeb1ce3278c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5be5b935f97b70922631c45519bff6083fec3a9bc8fd6104c2f7f391aa888d0ac57fc413cb8a4ce3310eae1c15fa4bded524f9cc10a74ba20e5c1e85285a11a7
|
7
|
+
data.tar.gz: 22b2a9ec4daaa59bf52b7a4c53969cb4d98340844857f564e9dda63d4ed598145cf052696e6529ac70c739f11db879587c378f2933b3ddb939a9db4faf1498f4
|
@@ -19,10 +19,16 @@ module MigrationComments::ActiveRecord::ConnectionAdapters
|
|
19
19
|
false
|
20
20
|
end
|
21
21
|
|
22
|
+
# SQLite style - embedded comments
|
22
23
|
def inline_comments?
|
23
24
|
false
|
24
25
|
end
|
25
26
|
|
27
|
+
# PostgreSQL style - comment specific commands
|
28
|
+
def independent_comments?
|
29
|
+
false
|
30
|
+
end
|
31
|
+
|
26
32
|
# Remove a comment on a table (if set)
|
27
33
|
def remove_table_comment(table_name)
|
28
34
|
set_table_comment(table_name, nil)
|
data/lib/migration_comments/active_record/connection_adapters/abstract_adapter/schema_creation.rb
CHANGED
@@ -3,6 +3,7 @@ module MigrationComments::ActiveRecord::ConnectionAdapters::AbstractAdapter
|
|
3
3
|
def self.included(base)
|
4
4
|
base.class_eval do
|
5
5
|
alias_method_chain :column_options, :migration_comments
|
6
|
+
alias_method_chain :add_column_options!, :migration_comments
|
6
7
|
alias_method_chain :visit_TableDefinition, :migration_comments
|
7
8
|
alias_method_chain :visit_ColumnDefinition, :migration_comments
|
8
9
|
end
|
@@ -14,6 +15,14 @@ module MigrationComments::ActiveRecord::ConnectionAdapters::AbstractAdapter
|
|
14
15
|
column_options
|
15
16
|
end
|
16
17
|
|
18
|
+
def add_column_options_with_migration_comments!(sql, options)
|
19
|
+
sql = add_column_options_without_migration_comments!(sql, options)
|
20
|
+
if options.keys.include?(:comment) && !@conn.independent_comments?
|
21
|
+
sql << MigrationComments::ActiveRecord::ConnectionAdapters::CommentDefinition.new(@conn, nil, nil, options[:comment]).to_sql
|
22
|
+
end
|
23
|
+
sql
|
24
|
+
end
|
25
|
+
|
17
26
|
def visit_TableDefinition_with_migration_comments(o)
|
18
27
|
if @conn.inline_comments?
|
19
28
|
create_sql = "CREATE#{' TEMPORARY' if o.temporary} TABLE "
|
@@ -61,10 +61,14 @@ module MigrationComments::ActiveRecord::ConnectionAdapters
|
|
61
61
|
def add_column_options!(sql, options)
|
62
62
|
super(sql, options)
|
63
63
|
if options.keys.include?(:comment)
|
64
|
-
sql <<
|
64
|
+
sql << CommentDefinition.new(self, nil, nil, options[:comment]).to_sql
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
|
+
def comment_sql(comment_definition)
|
69
|
+
" COMMENT #{escaped_comment(comment_definition.comment_text)}"
|
70
|
+
end
|
71
|
+
|
68
72
|
def execute_comment(comment_definition)
|
69
73
|
if comment_definition.table_comment?
|
70
74
|
set_table_comment comment_definition.table_name, comment_definition.comment_text
|
@@ -12,6 +12,10 @@ module MigrationComments::ActiveRecord::ConnectionAdapters
|
|
12
12
|
true
|
13
13
|
end
|
14
14
|
|
15
|
+
def independent_comments?
|
16
|
+
true
|
17
|
+
end
|
18
|
+
|
15
19
|
# Set a comment on a table
|
16
20
|
def set_table_comment(table_name, comment_text)
|
17
21
|
execute CommentDefinition.new(self, table_name, nil, comment_text).to_sql
|
data/test/add_comments_test.rb
CHANGED
data/test/auto_increment_test.rb
CHANGED
@@ -4,7 +4,7 @@ class Sample < ActiveRecord::Base
|
|
4
4
|
self.table_name = 'sample'
|
5
5
|
end
|
6
6
|
|
7
|
-
class AutoIncrementTest <
|
7
|
+
class AutoIncrementTest < Minitest::Unit::TestCase
|
8
8
|
include TestHelper
|
9
9
|
|
10
10
|
def test_basic_table_creation
|
@@ -35,13 +35,11 @@ class AutoIncrementTest < Test::Unit::TestCase
|
|
35
35
|
end
|
36
36
|
|
37
37
|
ids = []
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
execute "INSERT INTO #{quote_table_name :sample} (#{quote_column_name :field1}, #{quote_column_name :field2}) VALUES ('text#{n}', #{n})"
|
42
|
-
end
|
43
|
-
ids = select_rows("SELECT #{quote_column_name :id} FROM #{quote_table_name :sample}").map{|r| r.first.to_i }.sort
|
38
|
+
ActiveRecord::Base.connection.instance_eval do
|
39
|
+
3.times do |n|
|
40
|
+
execute "INSERT INTO #{quote_table_name :sample} (#{quote_column_name :field1}, #{quote_column_name :field2}) VALUES ('text#{n}', #{n})"
|
44
41
|
end
|
42
|
+
ids = select_rows("SELECT #{quote_column_name :id} FROM #{quote_table_name :sample}").map{|r| r.first.to_i }.sort
|
45
43
|
end
|
46
44
|
assert_equal [1,2,3], ids
|
47
45
|
|
data/test/schema_dumper_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
2
|
|
3
|
-
class SchemaDumperTest <
|
3
|
+
class SchemaDumperTest < Minitest::Unit::TestCase
|
4
4
|
include TestHelper
|
5
5
|
include MigrationComments::SchemaFormatter
|
6
6
|
|
@@ -15,15 +15,11 @@ class SchemaDumperTest < Test::Unit::TestCase
|
|
15
15
|
dest.rewind
|
16
16
|
result = dest.read
|
17
17
|
expected = <<EOS
|
18
|
-
ActiveRecord::Schema.define(#{render_kv_pair(:version, 1)}) do
|
19
|
-
|
20
18
|
create_table "sample", #{render_kv_pair(:force, true)}, #{render_kv_pair(:comment, "a table comment")} do |t|
|
21
19
|
t.string "field1", __SPACES__#{render_kv_pair(:comment, %{a \"comment\" \\ that ' needs; escaping''})}
|
22
20
|
t.integer "field2"
|
23
21
|
t.string "field3", #{render_kv_pair(:default, "")}, #{render_kv_pair(:null, false)}, #{render_kv_pair(:comment, "third column comment")}
|
24
22
|
end
|
25
|
-
|
26
|
-
end
|
27
23
|
EOS
|
28
24
|
assert_match /#{Regexp.escape(expected).gsub(/__SPACES__/, " +")}/, result
|
29
25
|
end
|
@@ -39,12 +35,8 @@ EOS
|
|
39
35
|
dest.rewind
|
40
36
|
result = dest.read
|
41
37
|
expected = <<EOS
|
42
|
-
ActiveRecord::Schema.define(#{render_kv_pair(:version, 1)}) do
|
43
|
-
|
44
38
|
create_table "sample", #{render_kv_pair(:force, true)}, #{render_kv_pair(:comment, "a table comment")} do |t|
|
45
39
|
end
|
46
|
-
|
47
|
-
end
|
48
40
|
EOS
|
49
41
|
|
50
42
|
assert_match /#{Regexp.escape expected}/, result
|
@@ -66,12 +58,8 @@ EOS
|
|
66
58
|
result = dest.read
|
67
59
|
|
68
60
|
expected = <<EOS
|
69
|
-
ActiveRecord::Schema.define(#{render_kv_pair(:version, 1)}) do
|
70
|
-
|
71
61
|
# Could not dump table "sample" because of following StandardError
|
72
62
|
# Unknown type 'my_custom_type' for column 'field2'
|
73
|
-
|
74
|
-
end
|
75
63
|
EOS
|
76
64
|
|
77
65
|
assert_match /#{Regexp.escape expected}/, result
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,94 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: migration_comments
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Pinny
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-07-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activerecord
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 2.3.2
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 2.3.2
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: annotate
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- - ~>
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: 2.5.0
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- - ~>
|
38
|
+
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: 2.5.0
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: pg
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: mysql2
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: sqlite3
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
description: Add schema comments in your migrations, see them in model annotations
|
@@ -99,7 +88,7 @@ executables: []
|
|
99
88
|
extensions: []
|
100
89
|
extra_rdoc_files: []
|
101
90
|
files:
|
102
|
-
- .gitignore
|
91
|
+
- ".gitignore"
|
103
92
|
- Gemfile
|
104
93
|
- MIT-LICENSE
|
105
94
|
- README.rdoc
|
@@ -132,32 +121,25 @@ files:
|
|
132
121
|
- test/test_helper.rb
|
133
122
|
homepage: https://github.com/pinnymz/migration_comments
|
134
123
|
licenses: []
|
124
|
+
metadata: {}
|
135
125
|
post_install_message:
|
136
126
|
rdoc_options: []
|
137
127
|
require_paths:
|
138
128
|
- lib
|
139
129
|
required_ruby_version: !ruby/object:Gem::Requirement
|
140
|
-
none: false
|
141
130
|
requirements:
|
142
|
-
- -
|
131
|
+
- - ">="
|
143
132
|
- !ruby/object:Gem::Version
|
144
133
|
version: '0'
|
145
|
-
segments:
|
146
|
-
- 0
|
147
|
-
hash: -3400320072112058526
|
148
134
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
|
-
none: false
|
150
135
|
requirements:
|
151
|
-
- -
|
136
|
+
- - ">="
|
152
137
|
- !ruby/object:Gem::Version
|
153
138
|
version: '0'
|
154
|
-
segments:
|
155
|
-
- 0
|
156
|
-
hash: -3400320072112058526
|
157
139
|
requirements: []
|
158
140
|
rubyforge_project: migration_comments
|
159
|
-
rubygems_version:
|
141
|
+
rubygems_version: 2.2.2
|
160
142
|
signing_key:
|
161
|
-
specification_version:
|
143
|
+
specification_version: 4
|
162
144
|
summary: Comments for your migrations
|
163
145
|
test_files: []
|