annotaterb 4.0.0.beta.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ca3a25c118bfa3f5910e4fe455de3d9333c353d409f434cffde12694f87cff5
4
- data.tar.gz: 417dcf943056ec0f44ba7eb973c3ad2dc99cb435315d41a13d1fc9f53bb87b9e
3
+ metadata.gz: af9f792c5cb7386482abff5b7fb151dd000785316e0849139795ce473d48d076
4
+ data.tar.gz: 3d96f0869c4fa6616570bd1e9d077c962e56f59be4437496fc0cd0e428b5f3e3
5
5
  SHA512:
6
- metadata.gz: 2d34ca80e5686ef6cadfe0a2624aecd891fde3628653e68fa8b86613ac6382a4d7bdcf8e0c7504988dd653023be3d1190c5a072d46890b9c874ecaf1abbc20f7
7
- data.tar.gz: 2ae8ca4a18c83437b379f7823291c094a87db9465742bf2c1c94c99fcfe1cb833f894367774a44ff2a9e7c8f41f9670f8baeedff1d5832bbbf2c49a6ced8ac80
6
+ metadata.gz: 8cf8cb1fe5183a9f814272173f8af849499789790a87c63fa15de25a561c249490c7fefc8605c69464298923c14d6349d29ece493ab35c22e37466a0707e27b1
7
+ data.tar.gz: 0e43bbc446a18dd28c08c68bda96e3acfe58b427e3d5d16f0836a713456629280dcc9eb67781013e1bf5a8c621cb3068b8e2058fb82267cc3a6e115805f64fad
data/README.md CHANGED
@@ -1,8 +1,11 @@
1
1
  ## AnnotateRb
2
2
  ### forked from the [Annotate aka AnnotateModels gem](https://github.com/ctran/annotate_models)
3
3
 
4
+ A Ruby Gem that adds annotations to your Rails models and route files.
5
+
4
6
  ----------
5
7
  [![CI](https://github.com/drwl/annotaterb/actions/workflows/ci.yml/badge.svg)](https://github.com/drwl/annotaterb/actions/workflows/ci.yml)
8
+ [![Gem Version](https://badge.fury.io/rb/annotaterb.svg)](https://badge.fury.io/rb/annotaterb)
6
9
 
7
10
  Adds comments summarizing the model schema or routes in your:
8
11
 
@@ -57,8 +60,10 @@ $ bin/rails g annotate_rb:install
57
60
  This will copy a rake task into your Rails project's `lib/tasks` directory that will hook into the Rails project rake tasks, automatically running AnnotateRb after database migration rake tasks.
58
61
 
59
62
  ## Migrating from the annotate gem
63
+ The old [annotate gem](https://github.com/ctran/annotate_models) relied on environment variables and hardcoded values in rake files for configuration. AnnotateRb is different. It reads from an optional configuration yml file and options from the CLI to function.
60
64
 
61
- Add steps for migrating from annotate gem.
65
+ * Remove the following files `lib/tasks/annotate_models.rake`, `lib/tasks/annotate_models_migrate.rake`, `lib/tasks/annotate_routes.rake`.
66
+ * Run the generator install command above.
62
67
 
63
68
  ## Usage
64
69
 
@@ -67,10 +72,95 @@ AnnotateRb has a CLI that you can use to add or remove annotations.
67
72
  ```sh
68
73
  # To show the CLI options
69
74
  $ bundle exec annotaterb
75
+
76
+ Usage: annotaterb [command] [options]
77
+
78
+ Commands:
79
+ models [options]
80
+ routes [options]
81
+ help
82
+ version
83
+
84
+ Options:
85
+ -v, --version Display the version..
86
+ -h, --help You're looking at it.
87
+
88
+ Annotate model options:
89
+ Usage: annotaterb models [options]
90
+
91
+ -a, --active-admin Annotate active_admin models
92
+ --show-migration Include the migration version number in the annotation
93
+ -k, --show-foreign-keys List the table's foreign key constraints in the annotation
94
+ --ck, --complete-foreign-keys
95
+ Complete foreign key names in the annotation
96
+ -i, --show-indexes List the table's database indexes in the annotation
97
+ -s, --simple-indexes Concat the column's related indexes in the annotation
98
+ --hide-limit-column-types VALUES
99
+ don't show limit for given column types, separated by commas (i.e., `integer,boolean,text`)
100
+ --hide-default-column-types VALUES
101
+ don't show default for given column types, separated by commas (i.e., `json,jsonb,hstore`)
102
+ --ignore-unknown-models don't display warnings for bad model files
103
+ -I, --ignore-columns REGEX don't annotate columns that match a given REGEX (i.e., `annotate -I '^(id|updated_at|created_at)'`
104
+ --with-comment include database comments in model annotations
105
+
106
+ Annotate routes options:
107
+ Usage: annotaterb routes [options]
108
+
109
+ --ignore-routes REGEX don't annotate routes that match a given REGEX (i.e., `annotate -I '(mobile|resque|pghero)'`
110
+ --timestamp Include timestamp in (routes) annotation
111
+ --w, --wrapper STR Wrap annotation with the text passed as parameter.
112
+ If --w option is used, the same text will be used as opening and closing
113
+ --wo, --wrapper-open STR Annotation wrapper opening.
114
+ --wc, --wrapper-close STR Annotation wrapper closing
115
+
116
+ Command options:
117
+ Additional options that work for annotating models and routes
118
+
119
+ --additional-file-patterns path1,path2,path3
120
+ Additional file paths or globs to annotate, separated by commas (e.g. `/foo/bar/%model_name%/*.rb,/baz/%model_name%.rb`)
121
+ -d, --delete Remove annotations from all model files or the routes.rb file
122
+ --model-dir dir Annotate model files stored in dir rather than app/models, separate multiple dirs with commas
123
+ --root-dir dir Annotate files stored within root dir projects, separate multiple dirs with commas
124
+ --ignore-model-subdirects Ignore subdirectories of the models directory
125
+ --sort Sort columns alphabetically, rather than in creation order
126
+ --classified-sort Sort columns alphabetically, but first goes id, then the rest columns, then the timestamp columns and then the association columns
127
+ -R, --require path Additional file to require before loading models, may be used multiple times
128
+ -e [tests,fixtures,factories,serializers],
129
+ --exclude Do not annotate fixtures, test files, factories, and/or serializers
130
+ -f [bare|rdoc|yard|markdown], Render Schema Information as plain/RDoc/Yard/Markdown
131
+ --format
132
+ -p [before|top|after|bottom], Place the annotations at the top (before) or the bottom (after) of the model/test/fixture/factory/route/serializer file(s)
133
+ --position
134
+ --pc, --position-in-class [before|top|after|bottom]
135
+ Place the annotations at the top (before) or the bottom (after) of the model file
136
+ --pf, --position-in-factory [before|top|after|bottom]
137
+ Place the annotations at the top (before) or the bottom (after) of any factory files
138
+ --px, --position-in-fixture [before|top|after|bottom]
139
+ Place the annotations at the top (before) or the bottom (after) of any fixture files
140
+ --pt, --position-in-test [before|top|after|bottom]
141
+ Place the annotations at the top (before) or the bottom (after) of any test files
142
+ --pr, --position-in-routes [before|top|after|bottom]
143
+ Place the annotations at the top (before) or the bottom (after) of the routes.rb file
144
+ --ps, --position-in-serializer [before|top|after|bottom]
145
+ Place the annotations at the top (before) or the bottom (after) of the serializer files
146
+ --force Force new annotations even if there are no changes.
147
+ --debug Prints the options and outputs messages to make it easier to debug.
148
+ --frozen Do not allow to change annotations. Exits non-zero if there are going to be changes to files.
149
+ --trace If unable to annotate a file, print the full stack trace, not just the exception message.
70
150
  ```
71
151
 
72
152
  ## Configuration
73
153
 
154
+ ### Storing default options
155
+ Previously in the [Annotate](https://github.com/ctran/annotate_models) you could pass options through the CLI or store them as environment variables. Annotaterb removes dependency on the environment variables and instead can read values from a `.annotaterb.yml` file stored in the Rails project root.
156
+
157
+ ```yml
158
+ # .annotaterb.yml
159
+
160
+ position: after
161
+ ```
162
+
163
+ Annotaterb reads first from the configuration file, if it exists, then merges it with any options passed into the CLI.
74
164
 
75
165
  ### How to skip annotating a particular model
76
166
  If you want to always skip annotations on a particular model, add this string
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.0.0.beta.1
1
+ 4.0.0
@@ -78,7 +78,7 @@ module AnnotateRb
78
78
  # TODO: Should raise or alert user that multiple commands were selected but only 1 command will be ran
79
79
  @options[:command] = map[@commands.first]
80
80
  else # None
81
- @options[:command] = nil
81
+ @options[:command] = map[:help]
82
82
  end
83
83
  end
84
84
 
@@ -0,0 +1,7 @@
1
+ Description:
2
+ Generates a default configuration file and adds a rake task into
3
+ your Rails app's lib/tasks directory, that automatically
4
+ annotates models when you do a db:migrate in development mode.
5
+
6
+ Example:
7
+ `rails generate annotate_rb:install`
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+ require 'annotate_rb'
3
+
4
+ module AnnotateRb
5
+ module Generators
6
+ class InstallGenerator < ::Rails::Generators::Base
7
+ source_root File.expand_path('templates', __dir__)
8
+
9
+ def copy_task
10
+ copy_file "annotate_rb.rake", "lib/tasks/annotate_rb.rake"
11
+ end
12
+ end
13
+ end
14
+ 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.0.0.beta.1
4
+ version: 4.0.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: 2023-04-26 00:00:00.000000000 Z
11
+ date: 2023-05-03 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.
@@ -63,9 +63,9 @@ files:
63
63
  - lib/annotate_rb/route_annotator/removal_processor.rb
64
64
  - lib/annotate_rb/runner.rb
65
65
  - lib/annotate_rb/tasks/annotate_models_migrate.rake
66
- - lib/generators/annotate_rb/USAGE
67
- - lib/generators/annotate_rb/install_generator.rb
68
- - lib/generators/annotate_rb/templates/auto_annotate_models.rake
66
+ - lib/generators/annotate_rb/install/USAGE
67
+ - lib/generators/annotate_rb/install/install_generator.rb
68
+ - lib/generators/annotate_rb/install/templates/annotate_rb.rake
69
69
  homepage: https://github.com/drwl/annotaterb
70
70
  licenses:
71
71
  - BSD-2-Clause
@@ -85,9 +85,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
85
  version: 2.7.0
86
86
  required_rubygems_version: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ">"
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: 1.3.1
90
+ version: '0'
91
91
  requirements: []
92
92
  rubygems_version: 3.2.33
93
93
  signing_key:
@@ -1,4 +0,0 @@
1
- Add a .rake file that automatically annotates models when you do a db:migrate
2
- in development mode:
3
-
4
- rails generate annotaterb:install
@@ -1,15 +0,0 @@
1
- require 'annotate_rb'
2
-
3
- module AnnotateRb
4
- module Generators
5
- class InstallGenerator < Rails::Generators::Base
6
- desc 'Copy annotaterb rakefiles for automatic annotation of models'
7
- source_root File.expand_path('templates', __dir__)
8
-
9
- def copy_tasks
10
- # Copies the rake task into Rails project's lib/tasks directory
11
- template 'auto_annotate_models.rake', 'lib/tasks/auto_annotate_models.rake'
12
- end
13
- end
14
- end
15
- end