annotaterb 4.10.1 → 4.11.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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/VERSION +1 -1
  4. data/lib/annotate_rb/model_annotator/annotation/annotation_builder.rb +84 -0
  5. data/lib/annotate_rb/model_annotator/annotation/main_header.rb +38 -0
  6. data/lib/annotate_rb/model_annotator/annotation/markdown_header.rb +39 -0
  7. data/lib/annotate_rb/model_annotator/annotation/schema_footer.rb +23 -0
  8. data/lib/annotate_rb/model_annotator/annotation/schema_header.rb +65 -0
  9. data/lib/annotate_rb/model_annotator/annotation.rb +13 -0
  10. data/lib/annotate_rb/model_annotator/check_constraint_annotation/annotation.rb +32 -0
  11. data/lib/annotate_rb/model_annotator/check_constraint_annotation/annotation_builder.rb +11 -35
  12. data/lib/annotate_rb/model_annotator/check_constraint_annotation/check_constraint_component.rb +31 -0
  13. data/lib/annotate_rb/model_annotator/check_constraint_annotation.rb +2 -0
  14. data/lib/annotate_rb/model_annotator/column_annotation/annotation_builder.rb +1 -83
  15. data/lib/annotate_rb/model_annotator/column_annotation/attributes_builder.rb +2 -0
  16. data/lib/annotate_rb/model_annotator/column_annotation/column_component.rb +94 -0
  17. data/lib/annotate_rb/model_annotator/column_annotation.rb +1 -0
  18. data/lib/annotate_rb/model_annotator/components.rb +63 -0
  19. data/lib/annotate_rb/model_annotator/foreign_key_annotation/annotation.rb +32 -0
  20. data/lib/annotate_rb/model_annotator/foreign_key_annotation/annotation_builder.rb +10 -42
  21. data/lib/annotate_rb/model_annotator/foreign_key_annotation/foreign_key_component.rb +34 -0
  22. data/lib/annotate_rb/model_annotator/foreign_key_annotation/foreign_key_component_builder.rb +56 -0
  23. data/lib/annotate_rb/model_annotator/foreign_key_annotation.rb +3 -0
  24. data/lib/annotate_rb/model_annotator/index_annotation/annotation.rb +32 -0
  25. data/lib/annotate_rb/model_annotator/index_annotation/annotation_builder.rb +6 -90
  26. data/lib/annotate_rb/model_annotator/index_annotation/index_component.rb +90 -0
  27. data/lib/annotate_rb/model_annotator/index_annotation.rb +2 -0
  28. data/lib/annotate_rb/model_annotator/model_wrapper.rb +6 -1
  29. data/lib/annotate_rb/model_annotator/project_annotator.rb +1 -1
  30. data/lib/annotate_rb/model_annotator.rb +2 -0
  31. data/lib/annotate_rb/rake_bootstrapper.rb +1 -17
  32. metadata +18 -4
  33. data/lib/annotate_rb/model_annotator/annotation_builder.rb +0 -124
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AnnotateRb
4
+ module ModelAnnotator
5
+ # Shared annotation components
6
+ module Components
7
+ class Base
8
+ # Methods default to #to_default, unless overridden by sub class
9
+ def to_markdown
10
+ to_default
11
+ end
12
+
13
+ def to_rdoc
14
+ to_default
15
+ end
16
+
17
+ def to_yard
18
+ to_default
19
+ end
20
+
21
+ def to_default
22
+ raise NoMethodError, "Not implemented by class #{self.class}"
23
+ end
24
+ end
25
+
26
+ class NilComponent < Base
27
+ # Used when we want to return a component, but does not affect annotation generation.
28
+ # It will get ignored when the consuming object calls Array#compact
29
+ def to_default
30
+ nil
31
+ end
32
+ end
33
+
34
+ class LineBreak < Base
35
+ def to_default
36
+ ""
37
+ end
38
+ end
39
+
40
+ class BlankCommentLine < Base
41
+ def to_default
42
+ "#"
43
+ end
44
+ end
45
+
46
+ class Header < Base
47
+ attr_reader :header
48
+
49
+ def initialize(header)
50
+ @header = header
51
+ end
52
+
53
+ def to_default
54
+ "# #{header}"
55
+ end
56
+
57
+ def to_markdown
58
+ "# ### #{header}"
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AnnotateRb
4
+ module ModelAnnotator
5
+ module ForeignKeyAnnotation
6
+ class Annotation
7
+ HEADER_TEXT = "Foreign Keys"
8
+
9
+ def initialize(foreign_keys)
10
+ @foreign_keys = foreign_keys
11
+ end
12
+
13
+ def body
14
+ [
15
+ Components::BlankCommentLine.new,
16
+ Components::Header.new(HEADER_TEXT),
17
+ Components::BlankCommentLine.new,
18
+ *@foreign_keys
19
+ ]
20
+ end
21
+
22
+ def to_markdown
23
+ body.map(&:to_markdown).join("\n")
24
+ end
25
+
26
+ def to_default
27
+ body.map(&:to_default).join("\n")
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -10,58 +10,26 @@ module AnnotateRb
10
10
  end
11
11
 
12
12
  def build
13
- fk_info = if @options[:format_markdown]
14
- "#\n# ### Foreign Keys\n#\n"
15
- else
16
- "#\n# Foreign Keys\n#\n"
17
- end
18
-
19
- return "" unless @model.connection.respond_to?(:supports_foreign_keys?) &&
13
+ return Components::NilComponent.new if !@options[:show_foreign_keys]
14
+ return Components::NilComponent.new unless @model.connection.respond_to?(:supports_foreign_keys?) &&
20
15
  @model.connection.supports_foreign_keys? && @model.connection.respond_to?(:foreign_keys)
21
16
 
22
17
  foreign_keys = @model.connection.foreign_keys(@model.table_name)
23
- return "" if foreign_keys.empty?
24
-
25
- format_name = lambda do |fk|
26
- return fk.column if fk.name.blank?
18
+ return Components::NilComponent.new if foreign_keys.empty?
27
19
 
28
- @options[:show_complete_foreign_keys] ? fk.name : fk.name.gsub(/(?<=^fk_rails_)[0-9a-f]{10}$/, "...")
20
+ fks = foreign_keys.map do |fk|
21
+ ForeignKeyComponentBuilder.new(fk, @options)
29
22
  end
30
23
 
31
- max_size = foreign_keys.map(&format_name).map(&:size).max + 1
32
- foreign_keys.sort_by { |fk| [format_name.call(fk), stringify_columns(fk.column)] }.each do |fk|
33
- ref_info = if fk.column.is_a?(Array) # Composite foreign key using multiple columns
34
- "#{stringify_columns(fk.column)} => #{fk.to_table}#{stringify_columns(fk.primary_key)}"
35
- else
36
- "#{fk.column} => #{fk.to_table}.#{fk.primary_key}"
37
- end
24
+ max_size = fks.map(&:formatted_name).map(&:size).max + 1
38
25
 
39
- constraints_info = ""
40
- constraints_info += "ON DELETE => #{fk.on_delete} " if fk.on_delete
41
- constraints_info += "ON UPDATE => #{fk.on_update} " if fk.on_update
42
- constraints_info = constraints_info.strip
26
+ foreign_key_components = fks.sort_by { |fk| [fk.formatted_name, fk.stringified_columns] }.map do |fk|
27
+ # fk is a ForeignKeyComponentBuilder
43
28
 
44
- fk_info += if @options[:format_markdown]
45
- format("# * `%s`%s:\n# * **`%s`**\n",
46
- format_name.call(fk),
47
- constraints_info.blank? ? "" : " (_#{constraints_info}_)",
48
- ref_info)
49
- else
50
- format("# %-#{max_size}.#{max_size}s %s %s",
51
- format_name.call(fk),
52
- "(#{ref_info})",
53
- constraints_info).rstrip + "\n"
54
- end
29
+ ForeignKeyComponent.new(fk.formatted_name, fk.constraints_info, fk.ref_info, max_size)
55
30
  end
56
31
 
57
- fk_info
58
- end
59
-
60
- private
61
-
62
- # The fk columns might be composite keys, so format them into a string for the annotation
63
- def stringify_columns(columns)
64
- columns.is_a?(Array) ? "[#{columns.join(", ")}]" : columns
32
+ _annotation = Annotation.new(foreign_key_components)
65
33
  end
66
34
  end
67
35
  end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AnnotateRb
4
+ module ModelAnnotator
5
+ module ForeignKeyAnnotation
6
+ class ForeignKeyComponent < Components::Base
7
+ attr_reader :formatted_name, :constraints_info, :ref_info, :max_size
8
+
9
+ def initialize(formatted_name, constraints_info, ref_info, max_size)
10
+ @formatted_name = formatted_name
11
+ @constraints_info = constraints_info
12
+ @ref_info = ref_info
13
+ @max_size = max_size
14
+ end
15
+
16
+ def to_markdown
17
+ format("# * `%s`%s:\n# * **`%s`**",
18
+ formatted_name,
19
+ constraints_info.blank? ? "" : " (_#{constraints_info}_)",
20
+ ref_info)
21
+ end
22
+
23
+ def to_default
24
+ # standard:disable Lint/FormatParameterMismatch
25
+ format("# %-#{max_size}.#{max_size}s %s %s",
26
+ formatted_name,
27
+ "(#{ref_info})",
28
+ constraints_info).rstrip
29
+ # standard:enable Lint/FormatParameterMismatch
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AnnotateRb
4
+ module ModelAnnotator
5
+ module ForeignKeyAnnotation
6
+ class ForeignKeyComponentBuilder
7
+ attr_reader :foreign_key
8
+
9
+ def initialize(foreign_key, options)
10
+ @foreign_key = foreign_key
11
+ @options = options
12
+ end
13
+
14
+ def formatted_name
15
+ @formatted_name ||= if foreign_key.name.blank?
16
+ foreign_key.column
17
+ else
18
+ @options[:show_complete_foreign_keys] ? foreign_key.name : foreign_key.name.gsub(/(?<=^fk_rails_)[0-9a-f]{10}$/, "...")
19
+ end
20
+ end
21
+
22
+ def stringified_columns
23
+ @stringified_columns ||= stringify(foreign_key.column)
24
+ end
25
+
26
+ def stringified_primary_key
27
+ @stringified_primary_key ||= stringify(foreign_key.primary_key)
28
+ end
29
+
30
+ def constraints_info
31
+ @constraints_info ||= begin
32
+ constraints_info = ""
33
+ constraints_info += "ON DELETE => #{foreign_key.on_delete} " if foreign_key.on_delete
34
+ constraints_info += "ON UPDATE => #{foreign_key.on_update} " if foreign_key.on_update
35
+ constraints_info.strip
36
+ end
37
+ end
38
+
39
+ def ref_info
40
+ if foreign_key.column.is_a?(Array) # Composite foreign key using multiple columns
41
+ "#{stringified_columns} => #{foreign_key.to_table}#{stringified_primary_key}"
42
+ else
43
+ "#{foreign_key.column} => #{foreign_key.to_table}.#{foreign_key.primary_key}"
44
+ end
45
+ end
46
+
47
+ private
48
+
49
+ # The fk columns or primary key might be composite (an Array), so format them into a string for the annotation
50
+ def stringify(columns)
51
+ columns.is_a?(Array) ? "[#{columns.join(", ")}]" : columns
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -4,6 +4,9 @@ module AnnotateRb
4
4
  module ModelAnnotator
5
5
  module ForeignKeyAnnotation
6
6
  autoload :AnnotationBuilder, "annotate_rb/model_annotator/foreign_key_annotation/annotation_builder"
7
+ autoload :Annotation, "annotate_rb/model_annotator/foreign_key_annotation/annotation"
8
+ autoload :ForeignKeyComponent, "annotate_rb/model_annotator/foreign_key_annotation/foreign_key_component"
9
+ autoload :ForeignKeyComponentBuilder, "annotate_rb/model_annotator/foreign_key_annotation/foreign_key_component_builder"
7
10
  end
8
11
  end
9
12
  end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AnnotateRb
4
+ module ModelAnnotator
5
+ module IndexAnnotation
6
+ class Annotation
7
+ HEADER_TEXT = "Indexes"
8
+
9
+ def initialize(indexes)
10
+ @indexes = indexes
11
+ end
12
+
13
+ def body
14
+ [
15
+ Components::BlankCommentLine.new,
16
+ Components::Header.new(HEADER_TEXT),
17
+ Components::BlankCommentLine.new,
18
+ *@indexes
19
+ ]
20
+ end
21
+
22
+ def to_markdown
23
+ body.map(&:to_markdown).join("\n")
24
+ end
25
+
26
+ def to_default
27
+ body.map(&:to_default).join("\n")
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -4,108 +4,24 @@ module AnnotateRb
4
4
  module ModelAnnotator
5
5
  module IndexAnnotation
6
6
  class AnnotationBuilder
7
- INDEX_CLAUSES = {
8
- unique: {
9
- default: "UNIQUE",
10
- markdown: "_unique_"
11
- },
12
- where: {
13
- default: "WHERE",
14
- markdown: "_where_"
15
- },
16
- using: {
17
- default: "USING",
18
- markdown: "_using_"
19
- }
20
- }.freeze
21
-
22
7
  def initialize(model, options)
23
8
  @model = model
24
9
  @options = options
25
10
  end
26
11
 
27
12
  def build
28
- index_info = if @options[:format_markdown]
29
- "#\n# ### Indexes\n#\n"
30
- else
31
- "#\n# Indexes\n#\n"
32
- end
13
+ return Components::NilComponent.new if !@options[:show_indexes]
33
14
 
34
15
  indexes = @model.retrieve_indexes_from_table
35
- return "" if indexes.empty?
16
+ return Components::NilComponent.new if indexes.empty?
36
17
 
37
- max_size = indexes.collect { |index| index.name.size }.max + 1
38
- indexes.sort_by(&:name).each do |index|
39
- index_info += if @options[:format_markdown]
40
- final_index_string_in_markdown(index)
41
- else
42
- final_index_string(index, max_size)
43
- end
44
- end
45
-
46
- index_info
47
- end
48
-
49
- private
50
-
51
- def index_using_info(index, format = :default)
52
- value = index.try(:using) && index.using.try(:to_sym)
53
- if !value.blank? && value != :btree
54
- " #{INDEX_CLAUSES[:using][format]} #{value}"
55
- else
56
- ""
57
- end
58
- end
18
+ max_size = indexes.map { |index| index.name.size }.max + 1
59
19
 
60
- def index_where_info(index, format = :default)
61
- value = index.try(:where).try(:to_s)
62
- if value.blank?
63
- ""
64
- else
65
- " #{INDEX_CLAUSES[:where][format]} #{value}"
20
+ indexes = indexes.sort_by(&:name).map do |index|
21
+ IndexComponent.new(index, max_size)
66
22
  end
67
- end
68
-
69
- def index_unique_info(index, format = :default)
70
- index.unique ? " #{INDEX_CLAUSES[:unique][format]}" : ""
71
- end
72
23
 
73
- def final_index_string_in_markdown(index)
74
- details = format(
75
- "%s%s%s",
76
- index_unique_info(index, :markdown),
77
- index_where_info(index, :markdown),
78
- index_using_info(index, :markdown)
79
- ).strip
80
- details = " (#{details})" unless details.blank?
81
-
82
- format(
83
- "# * `%s`%s:\n# * **`%s`**\n",
84
- index.name,
85
- details,
86
- index_columns_info(index).join("`**\n# * **`")
87
- )
88
- end
89
-
90
- def final_index_string(index, max_size)
91
- format(
92
- "# %-#{max_size}.#{max_size}s %s%s%s%s",
93
- index.name,
94
- "(#{index_columns_info(index).join(",")})",
95
- index_unique_info(index),
96
- index_where_info(index),
97
- index_using_info(index)
98
- ).rstrip + "\n"
99
- end
100
-
101
- def index_columns_info(index)
102
- Array(index.columns).map do |col|
103
- if index.try(:orders) && index.orders[col.to_s]
104
- "#{col} #{index.orders[col.to_s].upcase}"
105
- else
106
- col.to_s.gsub("\r", '\r').gsub("\n", '\n')
107
- end
108
- end
24
+ _annotation = Annotation.new(indexes)
109
25
  end
110
26
  end
111
27
  end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AnnotateRb
4
+ module ModelAnnotator
5
+ module IndexAnnotation
6
+ class IndexComponent < Components::Base
7
+ attr_reader :index, :max_size
8
+
9
+ def initialize(index, max_size)
10
+ @index = index
11
+ @max_size = max_size
12
+ end
13
+
14
+ def to_default
15
+ unique_info = index.unique ? " UNIQUE" : ""
16
+
17
+ value = index.try(:where).try(:to_s)
18
+ where_info = if value.present?
19
+ " WHERE #{value}"
20
+ else
21
+ ""
22
+ end
23
+
24
+ value = index.try(:using).try(:to_sym)
25
+ using_info = if value.present? && value != :btree
26
+ " USING #{value}"
27
+ else
28
+ ""
29
+ end
30
+
31
+ # standard:disable Lint/FormatParameterMismatch
32
+ sprintf(
33
+ "# %-#{max_size}.#{max_size}s %s%s%s%s",
34
+ index.name,
35
+ "(#{columns_info.join(",")})",
36
+ unique_info,
37
+ where_info,
38
+ using_info
39
+ ).rstrip
40
+ # standard:enable Lint/FormatParameterMismatch
41
+ end
42
+
43
+ def to_markdown
44
+ unique_info = index.unique ? " _unique_" : ""
45
+
46
+ value = index.try(:where).try(:to_s)
47
+ where_info = if value.present?
48
+ " _where_ #{value}"
49
+ else
50
+ ""
51
+ end
52
+
53
+ value = index.try(:using).try(:to_sym)
54
+ using_info = if value.present? && value != :btree
55
+ " _using_ #{value}"
56
+ else
57
+ ""
58
+ end
59
+
60
+ details = sprintf(
61
+ "%s%s%s",
62
+ unique_info,
63
+ where_info,
64
+ using_info
65
+ ).strip
66
+ details = " (#{details})" unless details.blank?
67
+
68
+ sprintf(
69
+ "# * `%s`%s:\n# * **`%s`**",
70
+ index.name,
71
+ details,
72
+ columns_info.join("`**\n# * **`")
73
+ )
74
+ end
75
+
76
+ private
77
+
78
+ def columns_info
79
+ Array(index.columns).map do |col|
80
+ if index.try(:orders) && index.orders[col.to_s]
81
+ "#{col} #{index.orders[col.to_s].upcase}"
82
+ else
83
+ col.to_s.gsub("\r", '\r').gsub("\n", '\n')
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -4,6 +4,8 @@ module AnnotateRb
4
4
  module ModelAnnotator
5
5
  module IndexAnnotation
6
6
  autoload :AnnotationBuilder, "annotate_rb/model_annotator/index_annotation/annotation_builder"
7
+ autoload :IndexComponent, "annotate_rb/model_annotator/index_annotation/index_component"
8
+ autoload :Annotation, "annotate_rb/model_annotator/index_annotation/annotation"
7
9
  end
8
10
  end
9
11
  end
@@ -128,7 +128,12 @@ module AnnotateRb
128
128
  end
129
129
 
130
130
  def with_comments?
131
- @with_comments ||= raw_columns.first.respond_to?(:comment) &&
131
+ return @with_comments if instance_variable_defined?(:@with_comments)
132
+
133
+ @with_comments =
134
+ @options[:with_comment] &&
135
+ @options[:with_column_comments] &&
136
+ raw_columns.first.respond_to?(:comment) &&
132
137
  raw_columns.map(&:comment).any? { |comment| !comment.nil? }
133
138
  end
134
139
 
@@ -39,7 +39,7 @@ module AnnotateRb
39
39
  instructions = []
40
40
 
41
41
  klass.reset_column_information
42
- annotation = AnnotationBuilder.new(klass, @options).build
42
+ annotation = Annotation::AnnotationBuilder.new(klass, @options).build
43
43
  model_name = klass.name.underscore
44
44
  table_name = klass.table_name
45
45
 
@@ -28,5 +28,7 @@ module AnnotateRb
28
28
  autoload :ZeitwerkClassGetter, "annotate_rb/model_annotator/zeitwerk_class_getter"
29
29
  autoload :CheckConstraintAnnotation, "annotate_rb/model_annotator/check_constraint_annotation"
30
30
  autoload :FileToParserMapper, "annotate_rb/model_annotator/file_to_parser_mapper"
31
+ autoload :Components, "annotate_rb/model_annotator/components"
32
+ autoload :Annotation, "annotate_rb/model_annotator/annotation"
31
33
  end
32
34
  end
@@ -4,30 +4,14 @@ module AnnotateRb
4
4
  class RakeBootstrapper
5
5
  class << self
6
6
  def call(options)
7
- begin
8
- require "rake/dsl_definition"
9
- rescue => e
10
- # We might just be on an old version of Rake...
11
- warn e.message
12
- exit e.status_code
13
- end
14
-
15
7
  require "rake"
16
- load "./Rakefile" if File.exist?("./Rakefile")
8
+ load "./Rakefile" if File.exist?("./Rakefile") && !Rake::Task.task_defined?(:environment)
17
9
 
18
10
  begin
19
11
  Rake::Task[:environment].invoke
20
12
  rescue
21
13
  nil
22
14
  end
23
-
24
- unless defined?(Rails)
25
- # Not in a Rails project, so time to load up the parts of
26
- # ActiveSupport we need.
27
- require "active_support"
28
- require "active_support/core_ext/class/subclasses"
29
- require "active_support/core_ext/string/inflections"
30
- end
31
15
  end
32
16
  end
33
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: annotaterb
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.10.1
4
+ version: 4.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew W. Lee
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-07 00:00:00.000000000 Z
11
+ date: 2024-08-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Annotates Rails/ActiveRecord Models, routes, fixtures, and others based
14
14
  on the database schema.
@@ -40,20 +40,29 @@ files:
40
40
  - lib/annotate_rb/model_annotator/annotated_file.rb
41
41
  - lib/annotate_rb/model_annotator/annotated_file/generator.rb
42
42
  - lib/annotate_rb/model_annotator/annotated_file/updater.rb
43
- - lib/annotate_rb/model_annotator/annotation_builder.rb
43
+ - lib/annotate_rb/model_annotator/annotation.rb
44
+ - lib/annotate_rb/model_annotator/annotation/annotation_builder.rb
45
+ - lib/annotate_rb/model_annotator/annotation/main_header.rb
46
+ - lib/annotate_rb/model_annotator/annotation/markdown_header.rb
47
+ - lib/annotate_rb/model_annotator/annotation/schema_footer.rb
48
+ - lib/annotate_rb/model_annotator/annotation/schema_header.rb
44
49
  - lib/annotate_rb/model_annotator/annotation_decider.rb
45
50
  - lib/annotate_rb/model_annotator/annotation_diff.rb
46
51
  - lib/annotate_rb/model_annotator/annotation_diff_generator.rb
47
52
  - lib/annotate_rb/model_annotator/annotator.rb
48
53
  - lib/annotate_rb/model_annotator/bad_model_file_error.rb
49
54
  - lib/annotate_rb/model_annotator/check_constraint_annotation.rb
55
+ - lib/annotate_rb/model_annotator/check_constraint_annotation/annotation.rb
50
56
  - lib/annotate_rb/model_annotator/check_constraint_annotation/annotation_builder.rb
57
+ - lib/annotate_rb/model_annotator/check_constraint_annotation/check_constraint_component.rb
51
58
  - lib/annotate_rb/model_annotator/column_annotation.rb
52
59
  - lib/annotate_rb/model_annotator/column_annotation/annotation_builder.rb
53
60
  - lib/annotate_rb/model_annotator/column_annotation/attributes_builder.rb
61
+ - lib/annotate_rb/model_annotator/column_annotation/column_component.rb
54
62
  - lib/annotate_rb/model_annotator/column_annotation/column_wrapper.rb
55
63
  - lib/annotate_rb/model_annotator/column_annotation/default_value_builder.rb
56
64
  - lib/annotate_rb/model_annotator/column_annotation/type_builder.rb
65
+ - lib/annotate_rb/model_annotator/components.rb
57
66
  - lib/annotate_rb/model_annotator/file_name_resolver.rb
58
67
  - lib/annotate_rb/model_annotator/file_parser.rb
59
68
  - lib/annotate_rb/model_annotator/file_parser/annotation_finder.rb
@@ -63,9 +72,14 @@ files:
63
72
  - lib/annotate_rb/model_annotator/file_parser/yml_parser.rb
64
73
  - lib/annotate_rb/model_annotator/file_to_parser_mapper.rb
65
74
  - lib/annotate_rb/model_annotator/foreign_key_annotation.rb
75
+ - lib/annotate_rb/model_annotator/foreign_key_annotation/annotation.rb
66
76
  - lib/annotate_rb/model_annotator/foreign_key_annotation/annotation_builder.rb
77
+ - lib/annotate_rb/model_annotator/foreign_key_annotation/foreign_key_component.rb
78
+ - lib/annotate_rb/model_annotator/foreign_key_annotation/foreign_key_component_builder.rb
67
79
  - lib/annotate_rb/model_annotator/index_annotation.rb
80
+ - lib/annotate_rb/model_annotator/index_annotation/annotation.rb
68
81
  - lib/annotate_rb/model_annotator/index_annotation/annotation_builder.rb
82
+ - lib/annotate_rb/model_annotator/index_annotation/index_component.rb
69
83
  - lib/annotate_rb/model_annotator/model_class_getter.rb
70
84
  - lib/annotate_rb/model_annotator/model_files_getter.rb
71
85
  - lib/annotate_rb/model_annotator/model_wrapper.rb
@@ -122,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
136
  - !ruby/object:Gem::Version
123
137
  version: '0'
124
138
  requirements: []
125
- rubygems_version: 3.5.6
139
+ rubygems_version: 3.5.11
126
140
  signing_key:
127
141
  specification_version: 4
128
142
  summary: A gem for generating annotations for Rails projects.