db-annotate 1.0.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.
@@ -0,0 +1,5 @@
1
+ module Annotate
2
+ def self.version
3
+ '1.0.0'
4
+ end
5
+ end
data/lib/annotate.rb ADDED
@@ -0,0 +1,145 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ require 'annotate/version'
3
+ require 'annotate/annotate_models'
4
+ require 'annotate/annotate_routes'
5
+ require 'annotate/constants'
6
+ require 'annotate/helpers'
7
+
8
+ begin
9
+ # ActiveSupport 3.x...
10
+ require 'active_support/hash_with_indifferent_access'
11
+ require 'active_support/core_ext/object/blank'
12
+ rescue StandardError
13
+ # ActiveSupport 2.x...
14
+ require 'active_support/core_ext/hash/indifferent_access'
15
+ require 'active_support/core_ext/blank'
16
+ end
17
+
18
+ module Annotate
19
+ ##
20
+ # Set default values that can be overridden via environment variables.
21
+ #
22
+ def self.set_defaults(options = {})
23
+ return if @has_set_defaults
24
+ @has_set_defaults = true
25
+
26
+ options = ActiveSupport::HashWithIndifferentAccess.new(options)
27
+
28
+ Constants::ALL_ANNOTATE_OPTIONS.flatten.each do |key|
29
+ if options.key?(key)
30
+ default_value = if options[key].is_a?(Array)
31
+ options[key].join(',')
32
+ else
33
+ options[key]
34
+ end
35
+ end
36
+
37
+ default_value = ENV[key.to_s] unless ENV[key.to_s].blank?
38
+ ENV[key.to_s] = default_value&.to_s
39
+ end
40
+ end
41
+
42
+ ##
43
+ # TODO: what is the difference between this and set_defaults?
44
+ #
45
+ def self.setup_options(options = {})
46
+ Constants::POSITION_OPTIONS.each do |key|
47
+ options[key] = Annotate::Helpers.fallback(ENV.fetch(key.to_s, nil), ENV.fetch('position', nil), 'before')
48
+ end
49
+ Constants::FLAG_OPTIONS.each do |key|
50
+ options[key] = Annotate::Helpers.true?(ENV.fetch(key.to_s, nil))
51
+ end
52
+ Constants::OTHER_OPTIONS.each do |key|
53
+ options[key] = !ENV[key.to_s].blank? ? ENV.fetch(key.to_s, nil) : nil
54
+ end
55
+ Constants::PATH_OPTIONS.each do |key|
56
+ options[key] = !ENV[key.to_s].blank? ? ENV[key.to_s].split(',') : []
57
+ end
58
+
59
+ options[:additional_file_patterns] ||= []
60
+ options[:additional_file_patterns] = options[:additional_file_patterns].split(',') if options[:additional_file_patterns].is_a?(String)
61
+ options[:model_dir] = ['app/models'] if options[:model_dir].empty?
62
+
63
+ options[:wrapper_open] ||= options[:wrapper]
64
+ options[:wrapper_close] ||= options[:wrapper]
65
+
66
+ # These were added in 2.7.0 but so this is to revert to old behavior by default
67
+ options[:exclude_scaffolds] = Annotate::Helpers.true?(ENV.fetch('exclude_scaffolds', 'true'))
68
+ options[:exclude_controllers] = Annotate::Helpers.true?(ENV.fetch('exclude_controllers', 'true'))
69
+ options[:exclude_helpers] = Annotate::Helpers.true?(ENV.fetch('exclude_helpers', 'true'))
70
+
71
+ options
72
+ end
73
+
74
+ def self.load_tasks
75
+ return if @tasks_loaded
76
+
77
+ Dir[File.join(File.dirname(__FILE__), 'tasks', '**/*.rake')].each do |rake|
78
+ load rake
79
+ end
80
+
81
+ @tasks_loaded = true
82
+ end
83
+
84
+ def self.eager_load(options)
85
+ load_requires(options)
86
+ require 'annotate/active_record_patch'
87
+
88
+ if defined?(Rails::Application)
89
+ if Rails.version.split('.').first.to_i < 3
90
+ Rails.configuration.eager_load_paths.each do |load_path|
91
+ matcher = /\A#{Regexp.escape(load_path)}(.*)\.rb\Z/
92
+ Dir.glob("#{load_path}/**/*.rb").sort.each do |file|
93
+ require_dependency file.sub(matcher, '\1')
94
+ end
95
+ end
96
+ else
97
+ klass = Rails::Application.send(:subclasses).first
98
+ klass.eager_load!
99
+ end
100
+ else
101
+ options[:model_dir].each do |dir|
102
+ FileList["#{dir}/**/*.rb"].each do |fname|
103
+ require File.expand_path(fname)
104
+ end
105
+ end
106
+ end
107
+ end
108
+
109
+ def self.bootstrap_rake
110
+ begin
111
+ require 'rake/dsl_definition'
112
+ rescue StandardError => e
113
+ # We might just be on an old version of Rake...
114
+ $stderr.puts e.message
115
+ exit e.status_code
116
+ end
117
+ require 'rake'
118
+
119
+ load './Rakefile' if File.exist?('./Rakefile')
120
+ begin
121
+ Rake::Task[:environment].invoke
122
+ rescue
123
+ nil
124
+ end
125
+ unless defined?(Rails)
126
+ # Not in a Rails project, so time to load up the parts of
127
+ # ActiveSupport we need.
128
+ require 'active_support'
129
+ require 'active_support/core_ext/class/subclasses'
130
+ require 'active_support/core_ext/string/inflections'
131
+ end
132
+
133
+ load_tasks
134
+ Rake::Task[:set_annotation_options].invoke
135
+ end
136
+
137
+ class << self
138
+ private
139
+
140
+ def load_requires(options)
141
+ options[:require].any? &&
142
+ options[:require].each { |path| require path }
143
+ end
144
+ end
145
+ end
@@ -0,0 +1,4 @@
1
+ Add a .rake file that automatically annotates models when you do a db:migrate
2
+ in development mode:
3
+
4
+ rails generate annotate:install
@@ -0,0 +1,15 @@
1
+ require 'annotate'
2
+
3
+ module Annotate
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ desc 'Copy annotate_models rakefiles for automatic annotation'
7
+ source_root File.expand_path('templates', __dir__)
8
+
9
+ # copy rake tasks
10
+ def copy_tasks
11
+ template 'auto_annotate_models.rake', 'lib/tasks/auto_annotate_models.rake'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,61 @@
1
+ # NOTE: only doing this in development as some production environments (Heroku)
2
+ # NOTE: are sensitive to local FS writes, and besides -- it's just not proper
3
+ # NOTE: to have a dev-mode tool do its thing in production.
4
+ if Rails.env.development?
5
+ require 'annotate'
6
+ task :set_annotation_options do
7
+ # You can override any of these by setting an environment variable of the
8
+ # same name.
9
+ Annotate.set_defaults(
10
+ 'active_admin' => 'false',
11
+ 'additional_file_patterns' => [],
12
+ 'routes' => 'false',
13
+ 'models' => 'true',
14
+ 'position_in_routes' => 'before',
15
+ 'position_in_class' => 'before',
16
+ 'position_in_test' => 'before',
17
+ 'position_in_fixture' => 'before',
18
+ 'position_in_factory' => 'before',
19
+ 'position_in_serializer' => 'before',
20
+ 'show_check_constraints' => 'false',
21
+ 'show_foreign_keys' => 'true',
22
+ 'show_complete_foreign_keys' => 'false',
23
+ 'show_indexes' => 'true',
24
+ 'simple_indexes' => 'false',
25
+ 'model_dir' => 'app/models',
26
+ 'root_dir' => '',
27
+ 'include_version' => 'false',
28
+ 'require' => '',
29
+ 'exclude_tests' => 'false',
30
+ 'exclude_fixtures' => 'false',
31
+ 'exclude_factories' => 'false',
32
+ 'exclude_serializers' => 'false',
33
+ 'exclude_scaffolds' => 'true',
34
+ 'exclude_controllers' => 'true',
35
+ 'exclude_helpers' => 'true',
36
+ 'exclude_sti_subclasses' => 'false',
37
+ 'ignore_model_sub_dir' => 'false',
38
+ 'ignore_columns' => nil,
39
+ 'ignore_routes' => nil,
40
+ 'ignore_unknown_models' => 'false',
41
+ 'hide_limit_column_types' => '<%= AnnotateModels::NO_LIMIT_COL_TYPES.join(",") %>',
42
+ 'hide_default_column_types' => '<%= AnnotateModels::NO_DEFAULT_COL_TYPES.join(",") %>',
43
+ 'skip_on_db_migrate' => 'false',
44
+ 'format_bare' => 'true',
45
+ 'format_rdoc' => 'false',
46
+ 'format_yard' => 'false',
47
+ 'format_markdown' => 'false',
48
+ 'sort' => 'false',
49
+ 'force' => 'false',
50
+ 'frozen' => 'false',
51
+ 'classified_sort' => 'true',
52
+ 'trace' => 'false',
53
+ 'wrapper_open' => nil,
54
+ 'wrapper_close' => nil,
55
+ 'with_comment' => 'true',
56
+ 'with_comment_column' => 'false'
57
+ )
58
+ end
59
+
60
+ Annotate.load_tasks
61
+ end
@@ -0,0 +1,72 @@
1
+ annotate_lib = File.expand_path(File.dirname(File.dirname(__FILE__)))
2
+
3
+ unless ENV['is_cli']
4
+ task :set_annotation_options
5
+ task annotate_models: :set_annotation_options
6
+ end
7
+
8
+ desc 'Add schema information (as comments) to model and fixture files'
9
+ task annotate_models: :environment do
10
+ require "#{annotate_lib}/annotate/annotate_models"
11
+ require "#{annotate_lib}/annotate/active_record_patch"
12
+
13
+ options = {is_rake: true}
14
+ ENV['position'] = options[:position] = Annotate::Helpers.fallback(ENV.fetch('position', nil), 'before')
15
+ options[:additional_file_patterns] = ENV['additional_file_patterns'] ? ENV['additional_file_patterns'].split(',') : []
16
+ options[:position_in_class] = Annotate::Helpers.fallback(ENV.fetch('position_in_class', nil), ENV.fetch('position', nil))
17
+ options[:position_in_fixture] = Annotate::Helpers.fallback(ENV.fetch('position_in_fixture', nil), ENV.fetch('position', nil))
18
+ options[:position_in_factory] = Annotate::Helpers.fallback(ENV.fetch('position_in_factory', nil), ENV.fetch('position', nil))
19
+ options[:position_in_test] = Annotate::Helpers.fallback(ENV.fetch('position_in_test', nil), ENV.fetch('position', nil))
20
+ options[:position_in_serializer] = Annotate::Helpers.fallback(ENV.fetch('position_in_serializer', nil), ENV.fetch('position', nil))
21
+ options[:show_check_constraints] = Annotate::Helpers.true?(ENV.fetch('show_check_constraints', nil))
22
+ options[:show_foreign_keys] = Annotate::Helpers.true?(ENV.fetch('show_foreign_keys', nil))
23
+ options[:show_complete_foreign_keys] = Annotate::Helpers.true?(ENV.fetch('show_complete_foreign_keys', nil))
24
+ options[:show_indexes] = Annotate::Helpers.true?(ENV.fetch('show_indexes', nil))
25
+ options[:simple_indexes] = Annotate::Helpers.true?(ENV.fetch('simple_indexes', nil))
26
+ options[:model_dir] = ENV['model_dir'] ? ENV['model_dir'].split(',') : ['app/models']
27
+ options[:root_dir] = ENV.fetch('root_dir', nil)
28
+ options[:include_version] = Annotate::Helpers.true?(ENV.fetch('include_version', nil))
29
+ options[:require] = ENV['require'] ? ENV['require'].split(',') : []
30
+ options[:exclude_tests] = Annotate::Helpers.true?(ENV.fetch('exclude_tests', nil))
31
+ options[:exclude_factories] = Annotate::Helpers.true?(ENV.fetch('exclude_factories', nil))
32
+ options[:exclude_fixtures] = Annotate::Helpers.true?(ENV.fetch('exclude_fixtures', nil))
33
+ options[:exclude_serializers] = Annotate::Helpers.true?(ENV.fetch('exclude_serializers', nil))
34
+ options[:exclude_scaffolds] = Annotate::Helpers.true?(ENV.fetch('exclude_scaffolds', nil))
35
+ options[:exclude_controllers] = Annotate::Helpers.true?(ENV.fetch('exclude_controllers', 'true'))
36
+ options[:exclude_helpers] = Annotate::Helpers.true?(ENV.fetch('exclude_helpers', 'true'))
37
+ options[:exclude_sti_subclasses] = Annotate::Helpers.true?(ENV.fetch('exclude_sti_subclasses', nil))
38
+ options[:ignore_model_sub_dir] = Annotate::Helpers.true?(ENV.fetch('ignore_model_sub_dir', nil))
39
+ options[:format_bare] = Annotate::Helpers.true?(ENV.fetch('format_bare', nil))
40
+ options[:format_rdoc] = Annotate::Helpers.true?(ENV.fetch('format_rdoc', nil))
41
+ options[:format_yard] = Annotate::Helpers.true?(ENV.fetch('format_yard', nil))
42
+ options[:format_markdown] = Annotate::Helpers.true?(ENV.fetch('format_markdown', nil))
43
+ options[:sort] = Annotate::Helpers.true?(ENV.fetch('sort', nil))
44
+ options[:force] = Annotate::Helpers.true?(ENV.fetch('force', nil))
45
+ options[:frozen] = Annotate::Helpers.true?(ENV.fetch('frozen', nil))
46
+ options[:classified_sort] = Annotate::Helpers.true?(ENV.fetch('classified_sort', nil))
47
+ options[:trace] = Annotate::Helpers.true?(ENV.fetch('trace', nil))
48
+ options[:wrapper_open] = Annotate::Helpers.fallback(ENV.fetch('wrapper_open', nil), ENV.fetch('wrapper', nil))
49
+ options[:wrapper_close] = Annotate::Helpers.fallback(ENV.fetch('wrapper_close', nil), ENV.fetch('wrapper', nil))
50
+ options[:ignore_columns] = ENV.fetch('ignore_columns', nil)
51
+ options[:ignore_routes] = ENV.fetch('ignore_routes', nil)
52
+ options[:hide_limit_column_types] = Annotate::Helpers.fallback(ENV.fetch('hide_limit_column_types', nil), '')
53
+ options[:hide_default_column_types] = Annotate::Helpers.fallback(ENV.fetch('hide_default_column_types', nil), '')
54
+ options[:with_comment] = Annotate::Helpers.true?(ENV.fetch('with_comment', nil))
55
+ options[:with_comment_column] = Annotate::Helpers.true?(ENV.fetch('with_comment_column', nil))
56
+ options[:ignore_unknown_models] = Annotate::Helpers.true?(ENV.fetch('ignore_unknown_models', 'false'))
57
+
58
+ AnnotateModels.do_annotations(options)
59
+ end
60
+
61
+ desc 'Remove schema information from model and fixture files'
62
+ task remove_annotation: :environment do
63
+ require "#{annotate_lib}/annotate/annotate_models"
64
+ require "#{annotate_lib}/annotate/active_record_patch"
65
+
66
+ options = {is_rake: true}
67
+ options[:model_dir] = ENV.fetch('model_dir', nil)
68
+ options[:root_dir] = ENV.fetch('root_dir', nil)
69
+ options[:require] = ENV['require'] ? ENV['require'].split(',') : []
70
+ options[:trace] = Annotate::Helpers.true?(ENV.fetch('trace', nil))
71
+ AnnotateModels.remove_annotations(options)
72
+ end
@@ -0,0 +1,63 @@
1
+ # These tasks are added to the project if you install annotate as a Rails plugin.
2
+ # (They are not used to build annotate itself.)
3
+
4
+ # Append annotations to Rake tasks for ActiveRecord, so annotate automatically gets
5
+ # run after doing db:migrate.
6
+
7
+ migration_tasks = %w(db:migrate db:migrate:up db:migrate:down db:migrate:reset db:migrate:redo db:rollback)
8
+ if defined?(Rails::Application) && Rails.version.split('.').first.to_i >= 6
9
+ require 'active_record'
10
+
11
+ databases = ActiveRecord::Tasks::DatabaseTasks.setup_initial_database_yaml
12
+
13
+ ActiveRecord::Tasks::DatabaseTasks.for_each(databases) do |spec_name|
14
+ migration_tasks.concat(%w(db:migrate db:migrate:up db:migrate:down).map { |task| "#{task}:#{spec_name}" })
15
+ end
16
+ end
17
+
18
+ migration_tasks.each do |task|
19
+ next unless Rake::Task.task_defined?(task)
20
+
21
+ Rake::Task[task].enhance do
22
+ Rake::Task[Rake.application.top_level_tasks.last].enhance do
23
+ annotation_options_task = if Rake::Task.task_defined?('app:set_annotation_options')
24
+ 'app:set_annotation_options'
25
+ else
26
+ 'set_annotation_options'
27
+ end
28
+ Rake::Task[annotation_options_task].invoke
29
+ Annotate::Migration.update_annotations
30
+ end
31
+ end
32
+ end
33
+
34
+ module Annotate
35
+ class Migration
36
+ @@working = false
37
+
38
+ def self.update_annotations
39
+ unless @@working || Annotate::Helpers.skip_on_migration?
40
+ @@working = true
41
+
42
+ self.update_models if Annotate::Helpers.include_models?
43
+ self.update_routes if Annotate::Helpers.include_routes?
44
+ end
45
+ end
46
+
47
+ def self.update_models
48
+ if Rake::Task.task_defined?("annotate_models")
49
+ Rake::Task["annotate_models"].invoke
50
+ elsif Rake::Task.task_defined?("app:annotate_models")
51
+ Rake::Task["app:annotate_models"].invoke
52
+ end
53
+ end
54
+
55
+ def self.update_routes
56
+ if Rake::Task.task_defined?("annotate_routes")
57
+ Rake::Task["annotate_routes"].invoke
58
+ elsif Rake::Task.task_defined?("app:annotate_routes")
59
+ Rake::Task["app:annotate_routes"].invoke
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,31 @@
1
+ annotate_lib = File.expand_path(File.dirname(File.dirname(__FILE__)))
2
+
3
+ unless ENV['is_cli']
4
+ task :set_annotation_options
5
+ task annotate_routes: :set_annotation_options
6
+ end
7
+
8
+ desc "Adds the route map to routes.rb"
9
+ task :annotate_routes => :environment do
10
+ require "#{annotate_lib}/annotate/annotate_routes"
11
+
12
+ options={}
13
+ ENV['position'] = options[:position] = Annotate::Helpers.fallback(ENV.fetch('position', nil), 'before')
14
+ options[:position_in_routes] = Annotate::Helpers.fallback(ENV.fetch('position_in_routes', nil), ENV.fetch('position', nil))
15
+ options[:ignore_routes] = Annotate::Helpers.fallback(ENV.fetch('ignore_routes', nil), nil)
16
+ options[:require] = ENV['require'] ? ENV['require'].split(',') : []
17
+ options[:frozen] = Annotate::Helpers.true?(ENV.fetch('frozen', nil))
18
+ options[:wrapper_open] = Annotate::Helpers.fallback(ENV.fetch('wrapper_open', nil), ENV.fetch('wrapper', nil))
19
+ options[:wrapper_close] = Annotate::Helpers.fallback(ENV.fetch('wrapper_close', nil), ENV.fetch('wrapper', nil))
20
+ AnnotateRoutes.do_annotations(options)
21
+ end
22
+
23
+ desc "Removes the route map from routes.rb"
24
+ task :remove_routes => :environment do
25
+ annotate_lib = File.expand_path(File.dirname(File.dirname(__FILE__)))
26
+ require "#{annotate_lib}/annotate/annotate_routes"
27
+
28
+ options={}
29
+ options[:require] = ENV['require'] ? ENV['require'].split(',') : []
30
+ AnnotateRoutes.remove_annotations(options)
31
+ end
data/potato.md ADDED
@@ -0,0 +1,41 @@
1
+ Colons can be used to align columns.
2
+
3
+ | Tables | Are | Cool |
4
+ | ------------- |:-------------:| -----:|
5
+ | col 3 is | right-aligned | $1600 |
6
+ | col 2 is | centered | $12 |
7
+ | zebra stripes | are neat | $1 |
8
+
9
+ There must be at least 3 dashes separating each header cell.
10
+ The outer pipes (|) are optional, and you don't need to make the
11
+ raw Markdown line up prettily. You can also use inline Markdown.
12
+
13
+ Markdown | Less | Pretty
14
+ --- | --- | ---
15
+ *Still* | `renders` | **nicely**
16
+ 1 | 2 | 3
17
+
18
+
19
+ ## Route Map
20
+
21
+  Prefix | Verb | URI Pattern | Controller#Action
22
+ --------- | ---------- | --------------- | --------------------
23
+ myaction1 | GET | /url1(.:format) | mycontroller1#action
24
+ myaction2 | POST | /url2(.:format) | mycontroller2#action
25
+  myaction3 | DELETE-GET | /url3(.:format) | mycontroller3#action \n")
26
+
27
+
28
+
29
+ Table name: `users`
30
+
31
+ ### Columns
32
+
33
+ Name | Type | Attributes
34
+ ----------------------- | ------------------ | ---------------------------
35
+ **`id`** | `integer` | `not null, primary key`
36
+ **`foreign_thing_id`** | `integer` | `not null`
37
+
38
+ ### Foreign Keys
39
+
40
+ * `fk_rails_...` (_ON DELETE => on_delete_value ON UPDATE => on_update_value_):
41
+ * **`foreign_thing_id => foreign_things.id`**
metadata ADDED
@@ -0,0 +1,123 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: db-annotate
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Alex Chaffee
8
+ - Cuong Tran
9
+ - Marcos Piccinini
10
+ - Turadg Aleahmad
11
+ - Jon Frisby
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 1980-01-02 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rake
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: '10.4'
23
+ - - "<"
24
+ - !ruby/object:Gem::Version
25
+ version: '14.0'
26
+ type: :runtime
27
+ prerelease: false
28
+ version_requirements: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '10.4'
33
+ - - "<"
34
+ - !ruby/object:Gem::Version
35
+ version: '14.0'
36
+ - !ruby/object:Gem::Dependency
37
+ name: activerecord
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '7.1'
43
+ - - "<"
44
+ - !ruby/object:Gem::Version
45
+ version: '9.0'
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '7.1'
53
+ - - "<"
54
+ - !ruby/object:Gem::Version
55
+ version: '9.0'
56
+ description: Annotates Rails/ActiveRecord Models, routes, fixtures, and others based
57
+ on the database schema. Forked from annotate_models with Rails 8 and Ruby 3.4+ support.
58
+ email:
59
+ - alex@stinky.com
60
+ - cuong.tran@gmail.com
61
+ - x@nofxx.com
62
+ - turadg@aleahmad.net
63
+ - jon@cloudability.com
64
+ executables:
65
+ - annotate
66
+ extensions: []
67
+ extra_rdoc_files:
68
+ - CHANGELOG.md
69
+ - README.md
70
+ files:
71
+ - AUTHORS.md
72
+ - CHANGELOG.md
73
+ - LICENSE.txt
74
+ - README.md
75
+ - RELEASE.md
76
+ - annotate.gemspec
77
+ - bin/annotate
78
+ - lib/annotate.rb
79
+ - lib/annotate/active_record_patch.rb
80
+ - lib/annotate/annotate_models.rb
81
+ - lib/annotate/annotate_models/file_patterns.rb
82
+ - lib/annotate/annotate_routes.rb
83
+ - lib/annotate/annotate_routes/header_generator.rb
84
+ - lib/annotate/annotate_routes/helpers.rb
85
+ - lib/annotate/constants.rb
86
+ - lib/annotate/helpers.rb
87
+ - lib/annotate/parser.rb
88
+ - lib/annotate/tasks.rb
89
+ - lib/annotate/version.rb
90
+ - lib/generators/annotate/USAGE
91
+ - lib/generators/annotate/install_generator.rb
92
+ - lib/generators/annotate/templates/auto_annotate_models.rake
93
+ - lib/tasks/annotate_models.rake
94
+ - lib/tasks/annotate_models_migrate.rake
95
+ - lib/tasks/annotate_routes.rake
96
+ - potato.md
97
+ homepage: https://github.com/eddyjaga/annotate_models-rails8
98
+ licenses:
99
+ - Ruby
100
+ metadata:
101
+ bug_tracker_uri: https://github.com/eddyjaga/annotate_models-rails8/issues
102
+ source_code_uri: https://github.com/eddyjaga/annotate_models-rails8
103
+ changelog_uri: https://github.com/eddyjaga/annotate_models-rails8/blob/develop/CHANGELOG.md
104
+ rubygems_mfa_required: 'true'
105
+ rdoc_options: []
106
+ require_paths:
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 3.2.0
113
+ required_rubygems_version: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ requirements: []
119
+ rubygems_version: 3.6.7
120
+ specification_version: 4
121
+ summary: Annotates Rails Models, routes, fixtures, and others based on the database
122
+ schema. Rails 8 compatible.
123
+ test_files: []