annotate 3.0.2 → 3.2.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.
@@ -9,14 +9,19 @@ module Annotate
9
9
 
10
10
  attr_reader :args, :options, :env
11
11
 
12
+ DEFAULT_OPTIONS = {
13
+ target_action: :do_annotations,
14
+ exit: false
15
+ }.freeze
16
+
12
17
  ANNOTATION_POSITIONS = %w[before top after bottom].freeze
13
18
  FILE_TYPE_POSITIONS = %w[position_in_class position_in_factory position_in_fixture position_in_test position_in_routes position_in_serializer].freeze
14
19
  EXCLUSION_LIST = %w[tests fixtures factories serializers].freeze
15
- FORMAT_TYPES = %w[bare rdoc markdown].freeze
20
+ FORMAT_TYPES = %w[bare rdoc yard markdown].freeze
16
21
 
17
22
  def initialize(args, env)
18
23
  @args = args
19
- @options = default_options
24
+ @options = DEFAULT_OPTIONS.dup
20
25
  @env = env
21
26
  end
22
27
 
@@ -31,128 +36,164 @@ module Annotate
31
36
 
32
37
  private
33
38
 
34
- def commit
35
- env.each_pair do |key, value|
36
- ENV[key] = value
37
- end
38
- end
39
-
40
39
  def parser
41
40
  OptionParser.new do |option_parser|
42
41
  add_options_to_parser(option_parser)
43
42
  end
44
43
  end
45
44
 
45
+ def commit
46
+ env.each_pair do |key, value|
47
+ ENV[key] = value
48
+ end
49
+ end
50
+
46
51
  def add_options_to_parser(option_parser) # rubocop:disable Metrics/MethodLength
47
52
  has_set_position = {}
48
- positions = ANNOTATION_POSITIONS
49
53
 
50
54
  option_parser.banner = 'Usage: annotate [options] [model_file]*'
51
55
 
52
- option_parser.on('--additional-file-patterns path1,path2,path3', Array, "Additional file paths or globs to annotate, separated by commas (e.g. `/foo/bar/%model_name%/*.rb,/baz/%model_name%.rb`)") do |additional_file_patterns|
56
+ option_parser.on('--additional-file-patterns path1,path2,path3',
57
+ Array,
58
+ "Additional file paths or globs to annotate, separated by commas (e.g. `/foo/bar/%model_name%/*.rb,/baz/%model_name%.rb`)") do |additional_file_patterns|
53
59
  ENV['additional_file_patterns'] = additional_file_patterns
54
60
  end
55
61
 
56
- option_parser.on('-d', '--delete', 'Remove annotations from all model files or the routes.rb file') do
62
+ option_parser.on('-d',
63
+ '--delete',
64
+ 'Remove annotations from all model files or the routes.rb file') do
57
65
  @options[:target_action] = :remove_annotations
58
66
  end
59
67
 
60
- option_parser.on('-p', '--position [before|top|after|bottom]', positions,
61
- 'Place the annotations at the top (before) or the bottom (after) of the model/test/fixture/factory/route/serializer file(s)') do |p|
62
- env['position'] = p
68
+ option_parser.on('-p',
69
+ '--position [before|top|after|bottom]',
70
+ ANNOTATION_POSITIONS,
71
+ 'Place the annotations at the top (before) or the bottom (after) of the model/test/fixture/factory/route/serializer file(s)') do |position|
72
+ env['position'] = position
63
73
 
64
74
  FILE_TYPE_POSITIONS.each do |key|
65
- env[key] = p unless has_set_position[key]
75
+ env[key] = position unless has_set_position[key]
66
76
  end
67
77
  end
68
78
 
69
- option_parser.on('--pc', '--position-in-class [before|top|after|bottom]', positions,
70
- 'Place the annotations at the top (before) or the bottom (after) of the model file') do |p|
71
- env['position_in_class'] = p
79
+ option_parser.on('--pc',
80
+ '--position-in-class [before|top|after|bottom]',
81
+ ANNOTATION_POSITIONS,
82
+ 'Place the annotations at the top (before) or the bottom (after) of the model file') do |position_in_class|
83
+ env['position_in_class'] = position_in_class
72
84
  has_set_position['position_in_class'] = true
73
85
  end
74
86
 
75
- option_parser.on('--pf', '--position-in-factory [before|top|after|bottom]', positions,
76
- 'Place the annotations at the top (before) or the bottom (after) of any factory files') do |p|
77
- env['position_in_factory'] = p
87
+ option_parser.on('--pf',
88
+ '--position-in-factory [before|top|after|bottom]',
89
+ ANNOTATION_POSITIONS,
90
+ 'Place the annotations at the top (before) or the bottom (after) of any factory files') do |position_in_factory|
91
+ env['position_in_factory'] = position_in_factory
78
92
  has_set_position['position_in_factory'] = true
79
93
  end
80
94
 
81
- option_parser.on('--px', '--position-in-fixture [before|top|after|bottom]', positions,
82
- 'Place the annotations at the top (before) or the bottom (after) of any fixture files') do |p|
83
- env['position_in_fixture'] = p
95
+ option_parser.on('--px',
96
+ '--position-in-fixture [before|top|after|bottom]',
97
+ ANNOTATION_POSITIONS,
98
+ 'Place the annotations at the top (before) or the bottom (after) of any fixture files') do |position_in_fixture|
99
+ env['position_in_fixture'] = position_in_fixture
84
100
  has_set_position['position_in_fixture'] = true
85
101
  end
86
102
 
87
- option_parser.on('--pt', '--position-in-test [before|top|after|bottom]', positions,
88
- 'Place the annotations at the top (before) or the bottom (after) of any test files') do |p|
89
- env['position_in_test'] = p
103
+ option_parser.on('--pt',
104
+ '--position-in-test [before|top|after|bottom]',
105
+ ANNOTATION_POSITIONS,
106
+ 'Place the annotations at the top (before) or the bottom (after) of any test files') do |position_in_test|
107
+ env['position_in_test'] = position_in_test
90
108
  has_set_position['position_in_test'] = true
91
109
  end
92
110
 
93
- option_parser.on('--pr', '--position-in-routes [before|top|after|bottom]', positions,
94
- 'Place the annotations at the top (before) or the bottom (after) of the routes.rb file') do |p|
95
- env['position_in_routes'] = p
111
+ option_parser.on('--pr',
112
+ '--position-in-routes [before|top|after|bottom]',
113
+ ANNOTATION_POSITIONS,
114
+ 'Place the annotations at the top (before) or the bottom (after) of the routes.rb file') do |position_in_routes|
115
+ env['position_in_routes'] = position_in_routes
96
116
  has_set_position['position_in_routes'] = true
97
117
  end
98
118
 
99
- option_parser.on('--ps', '--position-in-serializer [before|top|after|bottom]', positions,
100
- 'Place the annotations at the top (before) or the bottom (after) of the serializer files') do |p|
101
- env['position_in_serializer'] = p
119
+ option_parser.on('--ps',
120
+ '--position-in-serializer [before|top|after|bottom]',
121
+ ANNOTATION_POSITIONS,
122
+ 'Place the annotations at the top (before) or the bottom (after) of the serializer files') do |position_in_serializer|
123
+ env['position_in_serializer'] = position_in_serializer
102
124
  has_set_position['position_in_serializer'] = true
103
125
  end
104
126
 
105
- option_parser.on('--w', '--wrapper STR', 'Wrap annotation with the text passed as parameter.',
106
- 'If --w option is used, the same text will be used as opening and closing') do |p|
107
- env['wrapper'] = p
127
+ option_parser.on('--w',
128
+ '--wrapper STR',
129
+ 'Wrap annotation with the text passed as parameter.',
130
+ 'If --w option is used, the same text will be used as opening and closing') do |wrapper|
131
+ env['wrapper'] = wrapper
108
132
  end
109
133
 
110
- option_parser.on('--wo', '--wrapper-open STR', 'Annotation wrapper opening.') do |p|
111
- env['wrapper_open'] = p
134
+ option_parser.on('--wo',
135
+ '--wrapper-open STR',
136
+ 'Annotation wrapper opening.') do |wrapper_open|
137
+ env['wrapper_open'] = wrapper_open
112
138
  end
113
139
 
114
- option_parser.on('--wc', '--wrapper-close STR', 'Annotation wrapper closing') do |p|
115
- env['wrapper_close'] = p
140
+ option_parser.on('--wc',
141
+ '--wrapper-close STR',
142
+ 'Annotation wrapper closing') do |wrapper_close|
143
+ env['wrapper_close'] = wrapper_close
116
144
  end
117
145
 
118
- option_parser.on('-r', '--routes', "Annotate routes.rb with the output of 'rake routes'") do
146
+ option_parser.on('-r',
147
+ '--routes',
148
+ "Annotate routes.rb with the output of 'rake routes'") do
119
149
  env['routes'] = 'true'
120
150
  end
121
151
 
122
- option_parser.on('--models', "Annotate ActiveRecord models") do
152
+ option_parser.on('--models',
153
+ "Annotate ActiveRecord models") do
123
154
  env['models'] = 'true'
124
155
  end
125
156
 
126
- option_parser.on('-a', '--active-admin', 'Annotate active_admin models') do
157
+ option_parser.on('-a',
158
+ '--active-admin',
159
+ 'Annotate active_admin models') do
127
160
  env['active_admin'] = 'true'
128
161
  end
129
162
 
130
- option_parser.on('-v', '--version', 'Show the current version of this gem') do
163
+ option_parser.on('-v',
164
+ '--version',
165
+ 'Show the current version of this gem') do
131
166
  puts "annotate v#{Annotate.version}"
132
167
  @options[:exit] = true
133
168
  end
134
169
 
135
- option_parser.on('-m', '--show-migration', 'Include the migration version number in the annotation') do
170
+ option_parser.on('-m',
171
+ '--show-migration',
172
+ 'Include the migration version number in the annotation') do
136
173
  env['include_version'] = 'yes'
137
174
  end
138
175
 
139
- option_parser.on('-k', '--show-foreign-keys',
176
+ option_parser.on('-k',
177
+ '--show-foreign-keys',
140
178
  "List the table's foreign key constraints in the annotation") do
141
179
  env['show_foreign_keys'] = 'yes'
142
180
  end
143
181
 
144
182
  option_parser.on('--ck',
145
- '--complete-foreign-keys', 'Complete foreign key names in the annotation') do
183
+ '--complete-foreign-keys',
184
+ 'Complete foreign key names in the annotation') do
146
185
  env['show_foreign_keys'] = 'yes'
147
186
  env['show_complete_foreign_keys'] = 'yes'
148
187
  end
149
188
 
150
- option_parser.on('-i', '--show-indexes',
189
+ option_parser.on('-i',
190
+ '--show-indexes',
151
191
  "List the table's database indexes in the annotation") do
152
192
  env['show_indexes'] = 'yes'
153
193
  end
154
194
 
155
- option_parser.on('-s', '--simple-indexes',
195
+ option_parser.on('-s',
196
+ '--simple-indexes',
156
197
  "Concat the column's related indexes in the annotation") do
157
198
  env['simple_indexes'] = 'yes'
158
199
  end
@@ -168,84 +209,95 @@ module Annotate
168
209
  end
169
210
 
170
211
  option_parser.on('--ignore-model-subdirects',
171
- "Ignore subdirectories of the models directory") do |_dir|
212
+ "Ignore subdirectories of the models directory") do
172
213
  env['ignore_model_sub_dir'] = 'yes'
173
214
  end
174
215
 
175
216
  option_parser.on('--sort',
176
- "Sort columns alphabetically, rather than in creation order") do |_dir|
217
+ "Sort columns alphabetically, rather than in creation order") do
177
218
  env['sort'] = 'yes'
178
219
  end
179
220
 
180
221
  option_parser.on('--classified-sort',
181
- "Sort columns alphabetically, but first goes id, then the rest columns, then the timestamp columns and then the association columns") do |_dir|
222
+ "Sort columns alphabetically, but first goes id, then the rest columns, then the timestamp columns and then the association columns") do
182
223
  env['classified_sort'] = 'yes'
183
224
  end
184
225
 
185
- option_parser.on('-R', '--require path',
226
+ option_parser.on('-R',
227
+ '--require path',
186
228
  "Additional file to require before loading models, may be used multiple times") do |path|
187
- env['require'] = if !env['require'].blank?
188
- env['require'] + ",#{path}"
229
+ env['require'] = if env['require'].present?
230
+ "#{env['require']},#{path}"
189
231
  else
190
232
  path
191
233
  end
192
234
  end
193
235
 
194
- option_parser.on('-e', '--exclude [tests,fixtures,factories,serializers]', Array, "Do not annotate fixtures, test files, factories, and/or serializers") do |exclusions|
236
+ option_parser.on('-e',
237
+ '--exclude [tests,fixtures,factories,serializers]',
238
+ Array,
239
+ "Do not annotate fixtures, test files, factories, and/or serializers") do |exclusions|
195
240
  exclusions ||= EXCLUSION_LIST
196
241
  exclusions.each { |exclusion| env["exclude_#{exclusion}"] = 'yes' }
197
242
  end
198
243
 
199
- option_parser.on('-f', '--format [bare|rdoc|markdown]', FORMAT_TYPES, 'Render Schema Infomation as plain/RDoc/Markdown') do |fmt|
200
- env["format_#{fmt}"] = 'yes'
244
+ option_parser.on('-f',
245
+ '--format [bare|rdoc|yard|markdown]',
246
+ FORMAT_TYPES,
247
+ 'Render Schema Infomation as plain/RDoc/Yard/Markdown') do |format_type|
248
+ env["format_#{format_type}"] = 'yes'
201
249
  end
202
250
 
203
- option_parser.on('--force', 'Force new annotations even if there are no changes.') do |_force|
251
+ option_parser.on('--force',
252
+ 'Force new annotations even if there are no changes.') do
204
253
  env['force'] = 'yes'
205
254
  end
206
255
 
207
- option_parser.on('--frozen', 'Do not allow to change annotations. Exits non-zero if there are going to be changes to files.') do
256
+ option_parser.on('--frozen',
257
+ 'Do not allow to change annotations. Exits non-zero if there are going to be changes to files.') do
208
258
  env['frozen'] = 'yes'
209
259
  end
210
260
 
211
- option_parser.on('--timestamp', 'Include timestamp in (routes) annotation') do
261
+ option_parser.on('--timestamp',
262
+ 'Include timestamp in (routes) annotation') do
212
263
  env['timestamp'] = 'true'
213
264
  end
214
265
 
215
- option_parser.on('--trace', 'If unable to annotate a file, print the full stack trace, not just the exception message.') do |_value|
266
+ option_parser.on('--trace',
267
+ 'If unable to annotate a file, print the full stack trace, not just the exception message.') do
216
268
  env['trace'] = 'yes'
217
269
  end
218
270
 
219
- option_parser.on('-I', '--ignore-columns REGEX', "don't annotate columns that match a given REGEX (i.e., `annotate -I '^(id|updated_at|created_at)'`") do |regex|
271
+ option_parser.on('-I',
272
+ '--ignore-columns REGEX',
273
+ "don't annotate columns that match a given REGEX (i.e., `annotate -I '^(id|updated_at|created_at)'`") do |regex|
220
274
  env['ignore_columns'] = regex
221
275
  end
222
276
 
223
- option_parser.on('--ignore-routes REGEX', "don't annotate routes that match a given REGEX (i.e., `annotate -I '(mobile|resque|pghero)'`") do |regex|
277
+ option_parser.on('--ignore-routes REGEX',
278
+ "don't annotate routes that match a given REGEX (i.e., `annotate -I '(mobile|resque|pghero)'`") do |regex|
224
279
  env['ignore_routes'] = regex
225
280
  end
226
281
 
227
- option_parser.on('--hide-limit-column-types VALUES', "don't show limit for given column types, separated by commas (i.e., `integer,boolean,text`)") do |values|
282
+ option_parser.on('--hide-limit-column-types VALUES',
283
+ "don't show limit for given column types, separated by commas (i.e., `integer,boolean,text`)") do |values|
228
284
  env['hide_limit_column_types'] = values.to_s
229
285
  end
230
286
 
231
- option_parser.on('--hide-default-column-types VALUES', "don't show default for given column types, separated by commas (i.e., `json,jsonb,hstore`)") do |values|
287
+ option_parser.on('--hide-default-column-types VALUES',
288
+ "don't show default for given column types, separated by commas (i.e., `json,jsonb,hstore`)") do |values|
232
289
  env['hide_default_column_types'] = values.to_s
233
290
  end
234
291
 
235
- option_parser.on('--ignore-unknown-models', "don't display warnings for bad model files") do |_values|
292
+ option_parser.on('--ignore-unknown-models',
293
+ "don't display warnings for bad model files") do
236
294
  env['ignore_unknown_models'] = 'true'
237
295
  end
238
296
 
239
- option_parser.on('--with-comment', "include database comments in model annotations") do |_values|
297
+ option_parser.on('--with-comment',
298
+ "include database comments in model annotations") do
240
299
  env['with_comment'] = 'true'
241
300
  end
242
301
  end
243
-
244
- def default_options
245
- {
246
- target_action: :do_annotations,
247
- exit: false
248
- }
249
- end
250
302
  end
251
303
  end
@@ -1,5 +1,5 @@
1
1
  module Annotate
2
2
  def self.version
3
- '3.0.2'
3
+ '3.2.0'
4
4
  end
5
5
  end
data/lib/annotate.rb CHANGED
@@ -1,10 +1,9 @@
1
- # rubocop:disable Metrics/ModuleLength
2
-
3
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
4
2
  require 'annotate/version'
5
3
  require 'annotate/annotate_models'
6
4
  require 'annotate/annotate_routes'
7
5
  require 'annotate/constants'
6
+ require 'annotate/helpers'
8
7
 
9
8
  begin
10
9
  # ActiveSupport 3.x...
@@ -17,36 +16,6 @@ rescue StandardError
17
16
  end
18
17
 
19
18
  module Annotate
20
- ##
21
- # The set of available options to customize the behavior of Annotate.
22
- #
23
- POSITION_OPTIONS = [
24
- :position_in_routes, :position_in_class, :position_in_test,
25
- :position_in_fixture, :position_in_factory, :position,
26
- :position_in_serializer
27
- ].freeze
28
- FLAG_OPTIONS = [
29
- :show_indexes, :simple_indexes, :include_version, :exclude_tests,
30
- :exclude_fixtures, :exclude_factories, :ignore_model_sub_dir,
31
- :format_bare, :format_rdoc, :format_markdown, :sort, :force, :frozen,
32
- :trace, :timestamp, :exclude_serializers, :classified_sort,
33
- :show_foreign_keys, :show_complete_foreign_keys,
34
- :exclude_scaffolds, :exclude_controllers, :exclude_helpers,
35
- :exclude_sti_subclasses, :ignore_unknown_models, :with_comment
36
- ].freeze
37
- OTHER_OPTIONS = [
38
- :additional_file_patterns, :ignore_columns, :skip_on_db_migrate, :wrapper_open, :wrapper_close,
39
- :wrapper, :routes, :models, :hide_limit_column_types, :hide_default_column_types,
40
- :ignore_routes, :active_admin
41
- ].freeze
42
- PATH_OPTIONS = [
43
- :require, :model_dir, :root_dir
44
- ].freeze
45
-
46
- def self.all_options
47
- [POSITION_OPTIONS, FLAG_OPTIONS, PATH_OPTIONS, OTHER_OPTIONS]
48
- end
49
-
50
19
  ##
51
20
  # Set default values that can be overridden via environment variables.
52
21
  #
@@ -54,9 +23,9 @@ module Annotate
54
23
  return if @has_set_defaults
55
24
  @has_set_defaults = true
56
25
 
57
- options = HashWithIndifferentAccess.new(options)
26
+ options = ActiveSupport::HashWithIndifferentAccess.new(options)
58
27
 
59
- all_options.flatten.each do |key|
28
+ Constants::ALL_ANNOTATE_OPTIONS.flatten.each do |key|
60
29
  if options.key?(key)
61
30
  default_value = if options[key].is_a?(Array)
62
31
  options[key].join(',')
@@ -74,69 +43,42 @@ module Annotate
74
43
  # TODO: what is the difference between this and set_defaults?
75
44
  #
76
45
  def self.setup_options(options = {})
77
- POSITION_OPTIONS.each do |key|
78
- options[key] = fallback(ENV[key.to_s], ENV['position'], 'before')
46
+ Constants::POSITION_OPTIONS.each do |key|
47
+ options[key] = Annotate::Helpers.fallback(ENV[key.to_s], ENV['position'], 'before')
79
48
  end
80
- FLAG_OPTIONS.each do |key|
81
- options[key] = true?(ENV[key.to_s])
49
+ Constants::FLAG_OPTIONS.each do |key|
50
+ options[key] = Annotate::Helpers.true?(ENV[key.to_s])
82
51
  end
83
- OTHER_OPTIONS.each do |key|
52
+ Constants::OTHER_OPTIONS.each do |key|
84
53
  options[key] = !ENV[key.to_s].blank? ? ENV[key.to_s] : nil
85
54
  end
86
- PATH_OPTIONS.each do |key|
55
+ Constants::PATH_OPTIONS.each do |key|
87
56
  options[key] = !ENV[key.to_s].blank? ? ENV[key.to_s].split(',') : []
88
57
  end
89
58
 
90
59
  options[:additional_file_patterns] ||= []
60
+ options[:additional_file_patterns] = options[:additional_file_patterns].split(',') if options[:additional_file_patterns].is_a?(String)
91
61
  options[:model_dir] = ['app/models'] if options[:model_dir].empty?
92
62
 
93
63
  options[:wrapper_open] ||= options[:wrapper]
94
64
  options[:wrapper_close] ||= options[:wrapper]
95
65
 
96
66
  # These were added in 2.7.0 but so this is to revert to old behavior by default
97
- options[:exclude_scaffolds] = Annotate.true?(ENV.fetch('exclude_scaffolds', 'true'))
98
- options[:exclude_controllers] = Annotate.true?(ENV.fetch('exclude_controllers', 'true'))
99
- options[:exclude_helpers] = Annotate.true?(ENV.fetch('exclude_helpers', 'true'))
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'))
100
70
 
101
71
  options
102
72
  end
103
73
 
104
- def self.reset_options
105
- all_options.flatten.each { |key| ENV[key.to_s] = nil }
106
- end
107
-
108
- def self.skip_on_migration?
109
- ENV['ANNOTATE_SKIP_ON_DB_MIGRATE'] =~ Constants::TRUE_RE || ENV['skip_on_db_migrate'] =~ Constants::TRUE_RE
110
- end
111
-
112
- def self.include_routes?
113
- ENV['routes'] =~ Constants::TRUE_RE
114
- end
115
-
116
- def self.include_models?
117
- ENV['models'] =~ Constants::TRUE_RE
118
- end
119
-
120
- def self.loaded_tasks=(val)
121
- @loaded_tasks = val
122
- end
123
-
124
- def self.loaded_tasks
125
- @loaded_tasks
126
- end
127
-
128
74
  def self.load_tasks
129
- return if loaded_tasks
130
- self.loaded_tasks = true
75
+ return if @tasks_loaded
131
76
 
132
77
  Dir[File.join(File.dirname(__FILE__), 'tasks', '**/*.rake')].each do |rake|
133
78
  load rake
134
79
  end
135
- end
136
80
 
137
- def self.load_requires(options)
138
- options[:require].count > 0 &&
139
- options[:require].each { |path| require path }
81
+ @tasks_loaded = true
140
82
  end
141
83
 
142
84
  def self.eager_load(options)
@@ -192,13 +134,12 @@ module Annotate
192
134
  Rake::Task[:set_annotation_options].invoke
193
135
  end
194
136
 
195
- def self.fallback(*args)
196
- args.detect { |arg| !arg.blank? }
197
- end
137
+ class << self
138
+ private
198
139
 
199
- def self.true?(val)
200
- return false if val.blank?
201
- return false unless val =~ Constants::TRUE_RE
202
- true
140
+ def load_requires(options)
141
+ options[:require].count > 0 &&
142
+ options[:require].each { |path| require path }
143
+ end
203
144
  end
204
145
  end
@@ -7,9 +7,10 @@ if Rails.env.development?
7
7
  # You can override any of these by setting an environment variable of the
8
8
  # same name.
9
9
  Annotate.set_defaults(
10
+ 'active_admin' => 'false',
10
11
  'additional_file_patterns' => [],
11
12
  'routes' => 'false',
12
- 'models' => 'false',
13
+ 'models' => 'true',
13
14
  'position_in_routes' => 'before',
14
15
  'position_in_class' => 'before',
15
16
  'position_in_test' => 'before',
@@ -41,6 +42,7 @@ if Rails.env.development?
41
42
  'skip_on_db_migrate' => 'false',
42
43
  'format_bare' => 'true',
43
44
  'format_rdoc' => 'false',
45
+ 'format_yard' => 'false',
44
46
  'format_markdown' => 'false',
45
47
  'sort' => 'false',
46
48
  'force' => 'false',
@@ -11,46 +11,47 @@ task annotate_models: :environment do
11
11
  require "#{annotate_lib}/annotate/active_record_patch"
12
12
 
13
13
  options = {is_rake: true}
14
- ENV['position'] = options[:position] = Annotate.fallback(ENV['position'], 'before')
14
+ ENV['position'] = options[:position] = Annotate::Helpers.fallback(ENV['position'], 'before')
15
15
  options[:additional_file_patterns] = ENV['additional_file_patterns'] ? ENV['additional_file_patterns'].split(',') : []
16
- options[:position_in_class] = Annotate.fallback(ENV['position_in_class'], ENV['position'])
17
- options[:position_in_fixture] = Annotate.fallback(ENV['position_in_fixture'], ENV['position'])
18
- options[:position_in_factory] = Annotate.fallback(ENV['position_in_factory'], ENV['position'])
19
- options[:position_in_test] = Annotate.fallback(ENV['position_in_test'], ENV['position'])
20
- options[:position_in_serializer] = Annotate.fallback(ENV['position_in_serializer'], ENV['position'])
21
- options[:show_foreign_keys] = Annotate.true?(ENV['show_foreign_keys'])
22
- options[:show_complete_foreign_keys] = Annotate.true?(ENV['show_complete_foreign_keys'])
23
- options[:show_indexes] = Annotate.true?(ENV['show_indexes'])
24
- options[:simple_indexes] = Annotate.true?(ENV['simple_indexes'])
16
+ options[:position_in_class] = Annotate::Helpers.fallback(ENV['position_in_class'], ENV['position'])
17
+ options[:position_in_fixture] = Annotate::Helpers.fallback(ENV['position_in_fixture'], ENV['position'])
18
+ options[:position_in_factory] = Annotate::Helpers.fallback(ENV['position_in_factory'], ENV['position'])
19
+ options[:position_in_test] = Annotate::Helpers.fallback(ENV['position_in_test'], ENV['position'])
20
+ options[:position_in_serializer] = Annotate::Helpers.fallback(ENV['position_in_serializer'], ENV['position'])
21
+ options[:show_foreign_keys] = Annotate::Helpers.true?(ENV['show_foreign_keys'])
22
+ options[:show_complete_foreign_keys] = Annotate::Helpers.true?(ENV['show_complete_foreign_keys'])
23
+ options[:show_indexes] = Annotate::Helpers.true?(ENV['show_indexes'])
24
+ options[:simple_indexes] = Annotate::Helpers.true?(ENV['simple_indexes'])
25
25
  options[:model_dir] = ENV['model_dir'] ? ENV['model_dir'].split(',') : ['app/models']
26
26
  options[:root_dir] = ENV['root_dir']
27
- options[:include_version] = Annotate.true?(ENV['include_version'])
27
+ options[:include_version] = Annotate::Helpers.true?(ENV['include_version'])
28
28
  options[:require] = ENV['require'] ? ENV['require'].split(',') : []
29
- options[:exclude_tests] = Annotate.true?(ENV['exclude_tests'])
30
- options[:exclude_factories] = Annotate.true?(ENV['exclude_factories'])
31
- options[:exclude_fixtures] = Annotate.true?(ENV['exclude_fixtures'])
32
- options[:exclude_serializers] = Annotate.true?(ENV['exclude_serializers'])
33
- options[:exclude_scaffolds] = Annotate.true?(ENV['exclude_scaffolds'])
34
- options[:exclude_controllers] = Annotate.true?(ENV.fetch('exclude_controllers', 'true'))
35
- options[:exclude_helpers] = Annotate.true?(ENV.fetch('exclude_helpers', 'true'))
36
- options[:exclude_sti_subclasses] = Annotate.true?(ENV['exclude_sti_subclasses'])
37
- options[:ignore_model_sub_dir] = Annotate.true?(ENV['ignore_model_sub_dir'])
38
- options[:format_bare] = Annotate.true?(ENV['format_bare'])
39
- options[:format_rdoc] = Annotate.true?(ENV['format_rdoc'])
40
- options[:format_markdown] = Annotate.true?(ENV['format_markdown'])
41
- options[:sort] = Annotate.true?(ENV['sort'])
42
- options[:force] = Annotate.true?(ENV['force'])
43
- options[:frozen] = Annotate.true?(ENV['frozen'])
44
- options[:classified_sort] = Annotate.true?(ENV['classified_sort'])
45
- options[:trace] = Annotate.true?(ENV['trace'])
46
- options[:wrapper_open] = Annotate.fallback(ENV['wrapper_open'], ENV['wrapper'])
47
- options[:wrapper_close] = Annotate.fallback(ENV['wrapper_close'], ENV['wrapper'])
29
+ options[:exclude_tests] = Annotate::Helpers.true?(ENV['exclude_tests'])
30
+ options[:exclude_factories] = Annotate::Helpers.true?(ENV['exclude_factories'])
31
+ options[:exclude_fixtures] = Annotate::Helpers.true?(ENV['exclude_fixtures'])
32
+ options[:exclude_serializers] = Annotate::Helpers.true?(ENV['exclude_serializers'])
33
+ options[:exclude_scaffolds] = Annotate::Helpers.true?(ENV['exclude_scaffolds'])
34
+ options[:exclude_controllers] = Annotate::Helpers.true?(ENV.fetch('exclude_controllers', 'true'))
35
+ options[:exclude_helpers] = Annotate::Helpers.true?(ENV.fetch('exclude_helpers', 'true'))
36
+ options[:exclude_sti_subclasses] = Annotate::Helpers.true?(ENV['exclude_sti_subclasses'])
37
+ options[:ignore_model_sub_dir] = Annotate::Helpers.true?(ENV['ignore_model_sub_dir'])
38
+ options[:format_bare] = Annotate::Helpers.true?(ENV['format_bare'])
39
+ options[:format_rdoc] = Annotate::Helpers.true?(ENV['format_rdoc'])
40
+ options[:format_yard] = Annotate::Helpers.true?(ENV['format_yard'])
41
+ options[:format_markdown] = Annotate::Helpers.true?(ENV['format_markdown'])
42
+ options[:sort] = Annotate::Helpers.true?(ENV['sort'])
43
+ options[:force] = Annotate::Helpers.true?(ENV['force'])
44
+ options[:frozen] = Annotate::Helpers.true?(ENV['frozen'])
45
+ options[:classified_sort] = Annotate::Helpers.true?(ENV['classified_sort'])
46
+ options[:trace] = Annotate::Helpers.true?(ENV['trace'])
47
+ options[:wrapper_open] = Annotate::Helpers.fallback(ENV['wrapper_open'], ENV['wrapper'])
48
+ options[:wrapper_close] = Annotate::Helpers.fallback(ENV['wrapper_close'], ENV['wrapper'])
48
49
  options[:ignore_columns] = ENV.fetch('ignore_columns', nil)
49
50
  options[:ignore_routes] = ENV.fetch('ignore_routes', nil)
50
- options[:hide_limit_column_types] = Annotate.fallback(ENV['hide_limit_column_types'], '')
51
- options[:hide_default_column_types] = Annotate.fallback(ENV['hide_default_column_types'], '')
52
- options[:with_comment] = Annotate.true?(ENV['with_comment'])
53
- options[:ignore_unknown_models] = Annotate.true?(ENV.fetch('ignore_unknown_models', 'false'))
51
+ options[:hide_limit_column_types] = Annotate::Helpers.fallback(ENV['hide_limit_column_types'], '')
52
+ options[:hide_default_column_types] = Annotate::Helpers.fallback(ENV['hide_default_column_types'], '')
53
+ options[:with_comment] = Annotate::Helpers.true?(ENV['with_comment'])
54
+ options[:ignore_unknown_models] = Annotate::Helpers.true?(ENV.fetch('ignore_unknown_models', 'false'))
54
55
 
55
56
  AnnotateModels.do_annotations(options)
56
57
  end
@@ -64,6 +65,6 @@ task remove_annotation: :environment do
64
65
  options[:model_dir] = ENV['model_dir']
65
66
  options[:root_dir] = ENV['root_dir']
66
67
  options[:require] = ENV['require'] ? ENV['require'].split(',') : []
67
- options[:trace] = Annotate.true?(ENV['trace'])
68
+ options[:trace] = Annotate::Helpers.true?(ENV['trace'])
68
69
  AnnotateModels.remove_annotations(options)
69
70
  end