annotaterb 4.10.1 → 4.11.0

Sign up to get free protection for your applications and to get access to all the features.
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.