pg_comment 0.0.5 → 0.1.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.
data/README.rdoc CHANGED
@@ -6,9 +6,17 @@ Obviously, only the PostgreSQL adapter is supported.
6
6
 
7
7
  == Warning
8
8
 
9
- This is still experimental. If it blows up your Rails app, I will gladly welcome your bug reports.
9
+ This is still somewhat experimental. It has to date been tested with:
10
10
 
11
- This has only been tested on Ruby 1.9.2 and JRuby 1.6.4.
11
+ * Ruby
12
+ - 1.8.7 REE
13
+ - 1.9.2 YARV
14
+ - JRuby 1.6.4
15
+ * Rails
16
+ - 3.0.10
17
+ - 3.1
18
+
19
+ All bug reports are welcome.
12
20
 
13
21
  == Installation
14
22
 
@@ -18,12 +26,13 @@ Assuming you're using RubyGems:
18
26
 
19
27
  == Usage
20
28
 
21
- PgComment adds four methods to migrations:
29
+ PgComment adds five methods to migrations:
22
30
 
23
31
  * set_table_comment(table_name, comment)
24
32
  * remove_table_comment(table_name)
25
33
  * set_column_comment(table_name, column_name, comment)
26
34
  * remove_column_comment(table_name, column_name, comment)
35
+ * set_column_comments(table_name, comments)
27
36
 
28
37
  Set a comment on the given table.
29
38
 
@@ -41,6 +50,11 @@ Removes any comment from the given column of a given table.
41
50
 
42
51
  remove_column_comment :phone_numbers, :npa
43
52
 
53
+ Set comments on multiple columns in the table.
54
+
55
+ set_column_comments :phone_numbers, :npa => 'Numbering Plan Area Code - Allowed ranges: [2-9] for first digit, [0-9] for second and third digit.',
56
+ :nxx => 'Central Office Number'
57
+
44
58
  PgComment also adds extra methods to change_table.
45
59
 
46
60
  Set comments:
@@ -50,6 +64,11 @@ Set comments:
50
64
  t.set_column_comment :npa, 'Numbering Plan Area Code - Allowed ranges: [2-9] for first digit, [0-9] for second and third digit.'
51
65
  end
52
66
 
67
+ change_table :phone_numbers do |t|
68
+ t.set_column_comments :npa => 'Numbering Plan Area Code - Allowed ranges: [2-9] for first digit, [0-9] for second and third digit.',
69
+ :nxx => 'Central Office Number'
70
+ end
71
+
53
72
  Remove comments:
54
73
 
55
74
  change_table :phone_numbers do |t|
@@ -38,6 +38,16 @@ module PgComment
38
38
  @base.set_column_comment(@table_name, column_name, comment)
39
39
  end
40
40
 
41
+ # Sets comments on multiple columns. 'comments' is a hash of column_name => comment pairs.
42
+ #
43
+ # ===== Example
44
+ # ====== Setting comments on the columns of the phone_numbers table
45
+ # t.set_column_comments :npa => 'Numbering Plan Area Code - Allowed ranges: [2-9] for first digit, [0-9] for second and third digit.',
46
+ # :nxx => 'Central Office Number'
47
+ def set_column_comments(comments)
48
+ @base.set_column_comments(@table_name, comments)
49
+ end
50
+
41
51
  # Removes any comment for a given column
42
52
  #
43
53
  # ===== Example
@@ -32,6 +32,16 @@ module PgComment
32
32
  # Does nothing
33
33
  end
34
34
 
35
+ # Sets comments on multiple columns. 'comments' is a hash of column_name => comment pairs.
36
+ #
37
+ # ===== Example
38
+ # ====== Setting comments on the columns of the phone_numbers table
39
+ # set_column_comments :phone_numbers, :npa => 'Numbering Plan Area Code - Allowed ranges: [2-9] for first digit, [0-9] for second and third digit.',
40
+ # :nxx => 'Central Office Number'
41
+ def set_column_comments(table_name, comments)
42
+
43
+ end
44
+
35
45
  # Removes any comment from the given table.
36
46
  #
37
47
  # ===== Example
@@ -15,6 +15,12 @@ module PgComment
15
15
  execute sql
16
16
  end
17
17
 
18
+ def set_column_comments(table_name, comments)
19
+ comments.each_pair do |column_name, comment|
20
+ set_column_comment table_name, column_name, comment
21
+ end
22
+ end
23
+
18
24
  def remove_table_comment(table_name)
19
25
  sql = "COMMENT ON TABLE #{quote_table_name(table_name)} IS NULL;"
20
26
  execute sql
@@ -1,3 +1,3 @@
1
1
  module PgComment
2
- VERSION = "0.0.5"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -30,27 +30,53 @@ class PostgreSQLAdapterTest < Test::Unit::TestCase
30
30
  include PgComment::ConnectionAdapters::PostgreSQLAdapter
31
31
  end
32
32
 
33
+ def setup
34
+ @adapter = Adapter.new
35
+ end
36
+
37
+ def test_table_comments_sql
38
+ expected = [ "COMMENT ON TABLE my_table IS $$table comment$$;",
39
+ "COMMENT ON TABLE my_table IS NULL;" ]
40
+ @adapter.set_table_comment :my_table, 'table comment'
41
+ @adapter.remove_table_comment :my_table
42
+ assert_equal expected, @adapter.buffer
43
+ end
44
+
45
+ def test_column_comment_sql
46
+ expected = [ "COMMENT ON COLUMN my_table.my_column IS $$column comment$$;",
47
+ "COMMENT ON COLUMN my_table.my_column IS NULL;" ]
48
+ @adapter.set_column_comment :my_table, :my_column, 'column comment'
49
+ @adapter.remove_column_comment :my_table, :my_column
50
+ assert_equal expected, @adapter.buffer
51
+ end
52
+
53
+ def test_column_comments_sql
54
+ expected = [ "COMMENT ON COLUMN my_table.column1 IS $$column comment 1$$;",
55
+ "COMMENT ON COLUMN my_table.column2 IS $$column comment 2$$;" ]
56
+
57
+ @adapter.set_column_comments :my_table, :column1 => 'column comment 1', :column2 => 'column comment 2'
58
+ assert_equal expected, @adapter.buffer
59
+ end
60
+
33
61
  def test_sql_generation
34
62
  expected = [ "COMMENT ON TABLE my_table IS $$table comment$$;",
35
63
  "COMMENT ON COLUMN my_table.my_column IS $$column comment$$;",
36
64
  "COMMENT ON TABLE my_table IS NULL;",
37
65
  "COMMENT ON COLUMN my_table.my_column IS NULL;" ]
38
66
 
39
- a = Adapter.new
40
- a.set_table_comment :my_table, 'table comment'
41
- a.set_column_comment :my_table, :my_column, 'column comment'
42
- a.remove_table_comment :my_table
43
- a.remove_column_comment :my_table, :my_column
44
- assert_equal expected, a.buffer
67
+ @adapter.set_table_comment :my_table, 'table comment'
68
+ @adapter.set_column_comment :my_table, :my_column, 'column comment'
69
+ @adapter.remove_table_comment :my_table
70
+ @adapter.remove_column_comment :my_table, :my_column
71
+ assert_equal expected, @adapter.buffer
45
72
  end
46
73
 
47
74
  def test_comments
48
- a = Adapter.new
49
75
  expected = [ { 'column_name' => nil, 'comment' => 'table comment' },
50
76
  { 'column_name' => 'column1', 'comment' => 'column comment 1' },
51
77
  { 'column_name' => 'column2', 'comment' => 'column comment 2' } ]
52
- a.select_results = expected
53
- results = a.comments( nil )
78
+ @adapter.select_results = expected
79
+ results = @adapter.comments( nil )
54
80
  assert_not_nil results
55
81
  assert_equal 3, results.size, "Should have three comment rows."
56
82
  results.each_with_index do |comment_row, index|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_comment
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-29 00:00:00.000000000Z
12
+ date: 2011-10-07 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &20302260 !ruby/object:Gem::Requirement
16
+ requirement: &7406540 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *20302260
24
+ version_requirements: *7406540
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: test-unit
27
- requirement: &20301640 !ruby/object:Gem::Requirement
27
+ requirement: &7405880 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *20301640
35
+ version_requirements: *7405880
36
36
  description: Extends Rails migrations to support setting column and table comments. Pulls
37
37
  out comments into schema.rb
38
38
  email: