app: add annotate
Annotations will be generated only for models, and sorted (to avoid differences depending on the order in which migrations are ran). The annotations will be automatically updated every time `rails db:migrate` is run on a development environment.
This commit is contained in:
parent
10fe9020ea
commit
e6d8581b06
3 changed files with 64 additions and 0 deletions
1
Gemfile
1
Gemfile
|
@ -96,6 +96,7 @@ group :test do
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
|
gem 'annotate'
|
||||||
gem 'brakeman', require: false
|
gem 'brakeman', require: false
|
||||||
gem 'haml-lint'
|
gem 'haml-lint'
|
||||||
gem 'letter_opener_web'
|
gem 'letter_opener_web'
|
||||||
|
|
|
@ -97,6 +97,9 @@ GEM
|
||||||
aes_key_wrap (1.1.0)
|
aes_key_wrap (1.1.0)
|
||||||
after_party (1.11.2)
|
after_party (1.11.2)
|
||||||
anchored (1.1.0)
|
anchored (1.1.0)
|
||||||
|
annotate (3.1.1)
|
||||||
|
activerecord (>= 3.2, < 7.0)
|
||||||
|
rake (>= 10.4, < 14.0)
|
||||||
ast (2.4.1)
|
ast (2.4.1)
|
||||||
attr_required (1.0.1)
|
attr_required (1.0.1)
|
||||||
autoprefixer-rails (9.7.6)
|
autoprefixer-rails (9.7.6)
|
||||||
|
@ -752,6 +755,7 @@ DEPENDENCIES
|
||||||
administrate
|
administrate
|
||||||
after_party
|
after_party
|
||||||
anchored
|
anchored
|
||||||
|
annotate
|
||||||
axe-matchers
|
axe-matchers
|
||||||
bcrypt
|
bcrypt
|
||||||
bootstrap-sass (>= 3.4.1)
|
bootstrap-sass (>= 3.4.1)
|
||||||
|
|
59
lib/tasks/auto_annotate_models.rake
Normal file
59
lib/tasks/auto_annotate_models.rake
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
# NOTE: only doing this in development as some production environments (Heroku)
|
||||||
|
# NOTE: are sensitive to local FS writes, and besides -- it's just not proper
|
||||||
|
# NOTE: to have a dev-mode tool do its thing in production.
|
||||||
|
if Rails.env.development?
|
||||||
|
require 'annotate'
|
||||||
|
task :set_annotation_options do
|
||||||
|
# You can override any of these by setting an environment variable of the
|
||||||
|
# same name.
|
||||||
|
Annotate.set_defaults(
|
||||||
|
'active_admin' => 'false',
|
||||||
|
'additional_file_patterns' => [],
|
||||||
|
'routes' => 'false',
|
||||||
|
'models' => 'true',
|
||||||
|
'position_in_routes' => 'before',
|
||||||
|
'position_in_class' => 'before',
|
||||||
|
'position_in_test' => 'before',
|
||||||
|
'position_in_fixture' => 'before',
|
||||||
|
'position_in_factory' => 'before',
|
||||||
|
'position_in_serializer' => 'before',
|
||||||
|
'show_foreign_keys' => 'false',
|
||||||
|
'show_complete_foreign_keys' => 'false',
|
||||||
|
'show_indexes' => 'false',
|
||||||
|
'simple_indexes' => 'false',
|
||||||
|
'model_dir' => 'app/models',
|
||||||
|
'root_dir' => '',
|
||||||
|
'include_version' => 'false',
|
||||||
|
'require' => '',
|
||||||
|
'exclude_tests' => 'true',
|
||||||
|
'exclude_fixtures' => 'true',
|
||||||
|
'exclude_factories' => 'true',
|
||||||
|
'exclude_serializers' => 'true',
|
||||||
|
'exclude_scaffolds' => 'true',
|
||||||
|
'exclude_controllers' => 'true',
|
||||||
|
'exclude_helpers' => 'true',
|
||||||
|
'exclude_sti_subclasses' => 'false',
|
||||||
|
'ignore_model_sub_dir' => 'false',
|
||||||
|
'ignore_columns' => nil,
|
||||||
|
'ignore_routes' => nil,
|
||||||
|
'ignore_unknown_models' => 'true',
|
||||||
|
'hide_limit_column_types' => 'integer,bigint,boolean',
|
||||||
|
'hide_default_column_types' => 'json,jsonb,hstore',
|
||||||
|
'skip_on_db_migrate' => 'false',
|
||||||
|
'format_bare' => 'true',
|
||||||
|
'format_rdoc' => 'false',
|
||||||
|
'format_yard' => 'false',
|
||||||
|
'format_markdown' => 'false',
|
||||||
|
'sort' => 'false',
|
||||||
|
'force' => 'false',
|
||||||
|
'frozen' => 'false',
|
||||||
|
'classified_sort' => 'true',
|
||||||
|
'trace' => 'false',
|
||||||
|
'wrapper_open' => nil,
|
||||||
|
'wrapper_close' => nil,
|
||||||
|
'with_comment' => 'true'
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
Annotate.load_tasks
|
||||||
|
end
|
Loading…
Reference in a new issue