migration_comments 0.3.2 → 0.4.0
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 +4 -4
- data/.gitignore +2 -1
- data/.travis.yml +27 -0
- data/README.rdoc +12 -3
- data/Rakefile +24 -0
- data/docker-compose.yml +12 -0
- data/gemfiles/rails4.gemfile +4 -0
- data/gemfiles/rails5.gemfile +4 -0
- data/lib/migration_comments.rb +12 -40
- data/lib/migration_comments/active_record/connection_adapters/abstract_adapter.rb +1 -10
- data/lib/migration_comments/active_record/connection_adapters/abstract_adapter/schema_creation.rb +22 -25
- data/lib/migration_comments/active_record/connection_adapters/alter_table.rb +5 -10
- data/lib/migration_comments/active_record/connection_adapters/column.rb +1 -5
- data/lib/migration_comments/active_record/connection_adapters/comment_definition.rb +1 -9
- data/lib/migration_comments/active_record/connection_adapters/mysql2_adapter.rb +97 -3
- data/lib/migration_comments/active_record/connection_adapters/postgresql_adapter.rb +19 -22
- data/lib/migration_comments/active_record/connection_adapters/sqlite3_adapter.rb +73 -46
- data/lib/migration_comments/active_record/connection_adapters/table.rb +3 -3
- data/lib/migration_comments/active_record/connection_adapters/table_definition.rb +9 -18
- data/lib/migration_comments/active_record/schema_dumper.rb +6 -10
- data/lib/migration_comments/annotate_models.rb +6 -8
- data/lib/migration_comments/schema_formatter.rb +8 -1
- data/lib/migration_comments/version.rb +1 -1
- data/migration_comments.gemspec +3 -10
- data/test/add_comments_test.rb +43 -2
- data/test/annotate_models_test.rb +6 -4
- data/test/auto_increment_test.rb +39 -9
- data/test/config/database.yml +2 -2
- data/test/primary_uuid_test.rb +27 -0
- data/test/schema_dumper_test.rb +35 -11
- data/test/test_helper.rb +8 -1
- metadata +34 -11
- data/lib/migration_comments/active_record/connection_adapters/abstract_sqlite_adapter.rb +0 -85
- data/lib/migration_comments/active_record/connection_adapters/mysql_adapter.rb +0 -107
- data/lib/migration_comments/active_record/connection_adapters/sqlite_adapter.rb +0 -71
@@ -6,7 +6,7 @@ class Sample < ActiveRecord::Base
|
|
6
6
|
self.table_name = 'sample'
|
7
7
|
end
|
8
8
|
|
9
|
-
class AnnotateModelsTest < Minitest::
|
9
|
+
class AnnotateModelsTest < Minitest::Test
|
10
10
|
include TestHelper
|
11
11
|
|
12
12
|
TEST_PREFIX = "== Schema Information"
|
@@ -19,17 +19,19 @@ class AnnotateModelsTest < Minitest::Unit::TestCase
|
|
19
19
|
end
|
20
20
|
|
21
21
|
result = AnnotateModels.get_schema_info(Sample, TEST_PREFIX)
|
22
|
+
|
23
|
+
string_token = ENV['DB'] == 'mysql' ? ':string(255)' : ':string '
|
24
|
+
|
22
25
|
expected = <<EOS
|
23
26
|
# #{TEST_PREFIX}
|
24
27
|
#
|
25
28
|
# Table name: sample # a table comment
|
26
29
|
#
|
27
30
|
# id :integer not null, primary key
|
28
|
-
# field1
|
31
|
+
# field1 #{string_token} # a "comment" \\ that ' needs; escaping''
|
29
32
|
# field2 :integer
|
30
|
-
# field3
|
33
|
+
# field3 #{string_token} default(""), not null # third column comment
|
31
34
|
#
|
32
|
-
|
33
35
|
EOS
|
34
36
|
assert_equal expected, result
|
35
37
|
end
|
data/test/auto_increment_test.rb
CHANGED
@@ -4,14 +4,14 @@ class Sample < ActiveRecord::Base
|
|
4
4
|
self.table_name = 'sample'
|
5
5
|
end
|
6
6
|
|
7
|
-
class AutoIncrementTest < Minitest::
|
7
|
+
class AutoIncrementTest < Minitest::Test
|
8
8
|
include TestHelper
|
9
9
|
|
10
10
|
def test_basic_table_creation
|
11
11
|
assert_auto_increments
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
14
|
+
def test_modified_primary_key_with_auto_increment
|
15
15
|
comment_text = "a comment on the sample table in the primary_key field"
|
16
16
|
result_comment = nil
|
17
17
|
ActiveRecord::Schema.define do
|
@@ -22,16 +22,38 @@ class AutoIncrementTest < Minitest::Unit::TestCase
|
|
22
22
|
assert_equal comment_text, result_comment
|
23
23
|
end
|
24
24
|
|
25
|
+
def test_modified_primary_key_without_auto_increment
|
26
|
+
comment_text = "a comment on the sample table in the primary_key field"
|
27
|
+
result_comment = nil
|
28
|
+
ActiveRecord::Schema.define do
|
29
|
+
change_column :sample, :id, :integer, auto_increment: false
|
30
|
+
set_column_comment :sample, :id, comment_text
|
31
|
+
result_comment = retrieve_column_comment :sample, :id
|
32
|
+
end
|
33
|
+
assert_does_not_auto_increment
|
34
|
+
assert_equal comment_text, result_comment
|
35
|
+
end
|
36
|
+
|
25
37
|
private
|
38
|
+
|
39
|
+
def assert_does_not_auto_increment
|
40
|
+
if ENV['DB'] == 'mysql'
|
41
|
+
extra = extract_extra_attributes('id')
|
42
|
+
refute_match(/auto_increment/i, extra)
|
43
|
+
end
|
44
|
+
|
45
|
+
id = nil
|
46
|
+
ActiveRecord::Base.connection.instance_eval do
|
47
|
+
execute "INSERT INTO #{quote_table_name :sample} (#{quote_column_name :id}, #{quote_column_name :field1}, #{quote_column_name :field2}) VALUES (15, 'text3', 11)"
|
48
|
+
id = select_value("SELECT #{quote_column_name :id} FROM #{quote_table_name :sample}").to_i
|
49
|
+
end
|
50
|
+
assert_equal 15, id
|
51
|
+
end
|
52
|
+
|
26
53
|
def assert_auto_increments
|
27
54
|
if ENV['DB'] == 'mysql'
|
28
|
-
extra =
|
29
|
-
|
30
|
-
execute_and_free("SHOW FULL FIELDS FROM #{quote_table_name :sample}") do |result|
|
31
|
-
extra = each_hash(result).detect{|field| field[:Field] == 'id'}[:Extra]
|
32
|
-
end
|
33
|
-
end
|
34
|
-
assert_match /auto_increment/i, extra
|
55
|
+
extra = extract_extra_attributes('id')
|
56
|
+
assert_match(/auto_increment/i, extra)
|
35
57
|
end
|
36
58
|
|
37
59
|
ids = []
|
@@ -45,4 +67,12 @@ class AutoIncrementTest < Minitest::Unit::TestCase
|
|
45
67
|
|
46
68
|
assert_equal Sample.count, 3
|
47
69
|
end
|
70
|
+
|
71
|
+
def extract_extra_attributes(field_name)
|
72
|
+
ActiveRecord::Base.connection.instance_eval do
|
73
|
+
execute_and_free("SHOW FULL FIELDS FROM #{quote_table_name :sample}") do |result|
|
74
|
+
each_hash(result).detect{|field| field[:Field] == field_name}[:Extra]
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
48
78
|
end
|
data/test/config/database.yml
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class PrimaryUuidTest < Minitest::Test
|
4
|
+
include TestHelper
|
5
|
+
|
6
|
+
class Sample2 < ActiveRecord::Base
|
7
|
+
self.table_name = 'sample2'
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_rails_4_uuid
|
11
|
+
return unless ENV['DB'] == 'postgres'
|
12
|
+
uuid = nil
|
13
|
+
ActiveRecord::Schema.define do
|
14
|
+
begin
|
15
|
+
enable_extension 'uuid-ossp'
|
16
|
+
create_table :sample2, id: :uuid do |t|
|
17
|
+
t.integer :field1
|
18
|
+
t.string :field2
|
19
|
+
end
|
20
|
+
uuid = Sample2.create(field1: 1, field2: 'foo').id
|
21
|
+
ensure
|
22
|
+
drop_table :sample2 rescue nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
assert_match /[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}/i, uuid
|
26
|
+
end
|
27
|
+
end
|
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 < Minitest::
|
3
|
+
class SchemaDumperTest < Minitest::Test
|
4
4
|
include TestHelper
|
5
5
|
include MigrationComments::SchemaFormatter
|
6
6
|
|
@@ -14,14 +14,32 @@ class SchemaDumperTest < Minitest::Unit::TestCase
|
|
14
14
|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, dest)
|
15
15
|
dest.rewind
|
16
16
|
result = dest.read
|
17
|
-
expected =
|
18
|
-
|
19
|
-
|
17
|
+
expected = if ENV['DB'] == 'mysql' && ::ActiveRecord::VERSION::MAJOR >= 5
|
18
|
+
<<-EOS
|
19
|
+
create_table "sample", force: :cascade, options: __OPTIONS__, comment: "a table comment" do |t|
|
20
|
+
t.string "field1", #{render_kv_pair(:comment, %{a \"comment\" \\ that ' needs; escaping''})}
|
20
21
|
t.integer "field2"
|
21
22
|
t.string "field3", #{render_kv_pair(:default, "")}, #{render_kv_pair(:null, false)}, #{render_kv_pair(:comment, "third column comment")}
|
22
23
|
end
|
23
|
-
EOS
|
24
|
-
|
24
|
+
EOS
|
25
|
+
elsif ENV['DB'] == 'mysql'
|
26
|
+
<<-EOS
|
27
|
+
create_table "sample", force: :cascade, comment: "a table comment" do |t|
|
28
|
+
t.string "field1", #{render_kv_pair(:limit, 255)}, #{render_kv_pair(:comment, %{a \"comment\" \\ that ' needs; escaping''})}
|
29
|
+
t.integer "field2", #{render_kv_pair(:limit, 4)}
|
30
|
+
t.string "field3", #{render_kv_pair(:limit, 255)}, #{render_kv_pair(:default, "")}, #{render_kv_pair(:null, false)}, #{render_kv_pair(:comment, "third column comment")}
|
31
|
+
end
|
32
|
+
EOS
|
33
|
+
else
|
34
|
+
<<-EOS
|
35
|
+
create_table "sample", force: :cascade, comment: "a table comment" do |t|
|
36
|
+
t.string "field1", #{render_kv_pair(:comment, %{a \"comment\" \\ that ' needs; escaping''})}
|
37
|
+
t.integer "field2"
|
38
|
+
t.string "field3", #{render_kv_pair(:default, "")}, #{render_kv_pair(:null, false)}, #{render_kv_pair(:comment, "third column comment")}
|
39
|
+
end
|
40
|
+
EOS
|
41
|
+
end
|
42
|
+
assert_match(/#{Regexp.escape(expected).gsub(/__OPTIONS__/, %Q("ENGINE=InnoDB[^"]*"))}/, result)
|
25
43
|
end
|
26
44
|
|
27
45
|
def test_dump_with_no_columns
|
@@ -34,12 +52,18 @@ EOS
|
|
34
52
|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, dest)
|
35
53
|
dest.rewind
|
36
54
|
result = dest.read
|
37
|
-
expected =
|
38
|
-
|
55
|
+
expected = if ENV['DB'] == 'mysql' && ::ActiveRecord::VERSION::MAJOR >= 5
|
56
|
+
<<-EOS
|
57
|
+
create_table "sample", force: :cascade, options: __OPTIONS__, comment: "a table comment" do |t|
|
58
|
+
EOS
|
59
|
+
else
|
60
|
+
<<-EOS
|
61
|
+
create_table "sample", force: :cascade, comment: "a table comment" do |t|
|
39
62
|
end
|
40
|
-
EOS
|
63
|
+
EOS
|
64
|
+
end
|
41
65
|
|
42
|
-
assert_match
|
66
|
+
assert_match(/#{Regexp.escape(expected).gsub(/__OPTIONS__/, %Q("ENGINE=InnoDB[^"]*"))}/, result)
|
43
67
|
end
|
44
68
|
|
45
69
|
def test_schema_dump_with_custom_type_error_for_pg
|
@@ -62,6 +86,6 @@ EOS
|
|
62
86
|
# Unknown type 'my_custom_type' for column 'field2'
|
63
87
|
EOS
|
64
88
|
|
65
|
-
assert_match
|
89
|
+
assert_match(/#{Regexp.escape expected}/, result)
|
66
90
|
end
|
67
91
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'minitest/autorun'
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
|
-
gem 'activerecord', '>= 2.
|
4
|
+
gem 'activerecord', '>= 4.2.0'
|
5
5
|
require 'active_record'
|
6
6
|
require 'yaml'
|
7
7
|
|
@@ -9,6 +9,13 @@ CONFIGURATIONS = YAML::load(IO.read(File.join(File.dirname(__FILE__), 'config/da
|
|
9
9
|
|
10
10
|
ENV['DB'] ||= 'postgres' # override as needed
|
11
11
|
|
12
|
+
if ENV['DEBUG']
|
13
|
+
require 'minitest/byebug'
|
14
|
+
else
|
15
|
+
ActiveRecord::Migration.verbose = false
|
16
|
+
$VERBOSE=false
|
17
|
+
end
|
18
|
+
|
12
19
|
ActiveRecord::Base.establish_connection(CONFIGURATIONS[ENV['DB']])
|
13
20
|
|
14
21
|
$LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: migration_comments
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pinny
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: 4.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: 4.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: annotate
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
33
|
+
version: 2.7.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
40
|
+
version: 2.7.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pg
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: minitest-byebug
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
description: Add schema comments in your migrations, see them in model annotations
|
84
98
|
and db/schema.rb dump
|
85
99
|
email:
|
@@ -89,23 +103,24 @@ extensions: []
|
|
89
103
|
extra_rdoc_files: []
|
90
104
|
files:
|
91
105
|
- ".gitignore"
|
106
|
+
- ".travis.yml"
|
92
107
|
- Gemfile
|
93
108
|
- MIT-LICENSE
|
94
109
|
- README.rdoc
|
95
110
|
- Rakefile
|
111
|
+
- docker-compose.yml
|
112
|
+
- gemfiles/rails4.gemfile
|
113
|
+
- gemfiles/rails5.gemfile
|
96
114
|
- lib/migration_comments.rb
|
97
115
|
- lib/migration_comments/active_record/connection_adapters/abstract_adapter.rb
|
98
116
|
- lib/migration_comments/active_record/connection_adapters/abstract_adapter/schema_creation.rb
|
99
|
-
- lib/migration_comments/active_record/connection_adapters/abstract_sqlite_adapter.rb
|
100
117
|
- lib/migration_comments/active_record/connection_adapters/alter_table.rb
|
101
118
|
- lib/migration_comments/active_record/connection_adapters/column.rb
|
102
119
|
- lib/migration_comments/active_record/connection_adapters/column_definition.rb
|
103
120
|
- lib/migration_comments/active_record/connection_adapters/comment_definition.rb
|
104
121
|
- lib/migration_comments/active_record/connection_adapters/mysql2_adapter.rb
|
105
|
-
- lib/migration_comments/active_record/connection_adapters/mysql_adapter.rb
|
106
122
|
- lib/migration_comments/active_record/connection_adapters/postgresql_adapter.rb
|
107
123
|
- lib/migration_comments/active_record/connection_adapters/sqlite3_adapter.rb
|
108
|
-
- lib/migration_comments/active_record/connection_adapters/sqlite_adapter.rb
|
109
124
|
- lib/migration_comments/active_record/connection_adapters/table.rb
|
110
125
|
- lib/migration_comments/active_record/connection_adapters/table_definition.rb
|
111
126
|
- lib/migration_comments/active_record/schema_dumper.rb
|
@@ -117,6 +132,7 @@ files:
|
|
117
132
|
- test/annotate_models_test.rb
|
118
133
|
- test/auto_increment_test.rb
|
119
134
|
- test/config/database.yml
|
135
|
+
- test/primary_uuid_test.rb
|
120
136
|
- test/schema_dumper_test.rb
|
121
137
|
- test/test_helper.rb
|
122
138
|
homepage: https://github.com/pinnymz/migration_comments
|
@@ -138,8 +154,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
154
|
version: '0'
|
139
155
|
requirements: []
|
140
156
|
rubyforge_project: migration_comments
|
141
|
-
rubygems_version: 2.
|
157
|
+
rubygems_version: 2.4.5.1
|
142
158
|
signing_key:
|
143
159
|
specification_version: 4
|
144
160
|
summary: Comments for your migrations
|
145
|
-
test_files:
|
161
|
+
test_files:
|
162
|
+
- test/add_comments_test.rb
|
163
|
+
- test/annotate_models_test.rb
|
164
|
+
- test/auto_increment_test.rb
|
165
|
+
- test/config/database.yml
|
166
|
+
- test/primary_uuid_test.rb
|
167
|
+
- test/schema_dumper_test.rb
|
168
|
+
- test/test_helper.rb
|
@@ -1,85 +0,0 @@
|
|
1
|
-
module MigrationComments::ActiveRecord::ConnectionAdapters
|
2
|
-
module AbstractSQLiteAdapter
|
3
|
-
def comments_supported?
|
4
|
-
true
|
5
|
-
end
|
6
|
-
|
7
|
-
def inline_comments?
|
8
|
-
true
|
9
|
-
end
|
10
|
-
|
11
|
-
def set_table_comment(table_name, comment_text)
|
12
|
-
alter_table(table_name, :comment => comment_text)
|
13
|
-
end
|
14
|
-
|
15
|
-
def set_column_comment(table_name, column_name, comment_text)
|
16
|
-
sql_type = primary_key(table_name) == column_name.to_s ?
|
17
|
-
:primary_key :
|
18
|
-
column_for(table_name, column_name).sql_type
|
19
|
-
change_column table_name, column_name, sql_type, :comment => comment_text
|
20
|
-
end
|
21
|
-
|
22
|
-
def retrieve_table_comment(table_name)
|
23
|
-
result = select_rows(lookup_comment_sql(table_name))
|
24
|
-
if result[0][0] =~ /CREATE (?:TEMPORARY )?TABLE #{quote_table_name table_name} [^\(]*\/\*(.*)\*\/ \(/
|
25
|
-
$1
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def retrieve_column_comments(table_name, *column_names)
|
30
|
-
if column_names.empty?
|
31
|
-
return columns(table_name).inject({}) { |m, v| m[v.name.to_sym] = v.comment if v.comment.present?; m }
|
32
|
-
end
|
33
|
-
result = select_rows(lookup_comment_sql(table_name))
|
34
|
-
result[0][0] =~ /^CREATE (?:TEMPORARY )?TABLE "\w*" [^\(]*(?:\/\*.*\*\/ )?\((.*)\)[^\)]*$/
|
35
|
-
col_defs = $1
|
36
|
-
comment_matches = col_defs.scan(/"([^",]+)"[^,]*\/\*(.+?)\*\//)
|
37
|
-
comment_matches.inject({}){|m, row| m[row.first.to_sym] = row.last; m}
|
38
|
-
end
|
39
|
-
|
40
|
-
def change_column_with_migration_comments(table_name, column_name, type, options = {}) #:nodoc:
|
41
|
-
adapter = self
|
42
|
-
alter_table(table_name) do |definition|
|
43
|
-
include_default = options_include_default?(options)
|
44
|
-
definition[column_name].instance_eval do
|
45
|
-
self.type = type
|
46
|
-
self.limit = options[:limit] if options.include?(:limit)
|
47
|
-
self.default = options[:default] if include_default
|
48
|
-
self.null = options[:null] if options.include?(:null)
|
49
|
-
self.precision = options[:precision] if options.include?(:precision)
|
50
|
-
self.scale = options[:scale] if options.include?(:scale)
|
51
|
-
self.comment = CommentDefinition.new(adapter, table_name, column_name, options[:comment]) if options.include?(:comment)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def column_for(table_name, column_name)
|
57
|
-
columns(table_name).detect{|col| col.name == column_name.to_s}
|
58
|
-
end
|
59
|
-
|
60
|
-
def comment_sql(comment_definition)
|
61
|
-
if comment_definition.nil? || comment_definition.comment_text.blank?
|
62
|
-
""
|
63
|
-
else
|
64
|
-
" /*#{escaped_comment(comment_definition.comment_text)}*/"
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
|
69
|
-
def add_column_options!(sql, options)
|
70
|
-
super(sql, options)
|
71
|
-
if options.keys.include?(:comment)
|
72
|
-
sql << CommentDefinition.new(self, nil, nil, options[:comment]).to_sql
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
private
|
77
|
-
def escaped_comment(comment)
|
78
|
-
comment.gsub(/\*\//, "*-/")
|
79
|
-
end
|
80
|
-
|
81
|
-
def lookup_comment_sql(table_name)
|
82
|
-
"select sql from (select * from sqlite_master where type='table' union select * from sqlite_temp_master where type='table') where tbl_name = '#{table_name}'"
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|