annotate 2.5.0.pre2 → 2.5.0.pre3

Sign up to get free protection for your applications and to get access to all the features.
@@ -61,6 +61,7 @@
61
61
  * Add --format=markdown option
62
62
  * "Table name" annotation (if table name is different from model name)
63
63
  * "Human name" annotation (enabling translation to non-English locales)
64
+ * --trace option to help debug "Unable to annotate" errors
64
65
 
65
66
  == 2.4.2 2009-11-21
66
67
 
@@ -43,7 +43,7 @@ Also, if you pass the -r option, it'll annotate routes.rb with the output of "ra
43
43
 
44
44
  Into Gemfile from rubygems.org:
45
45
 
46
- gem 'annotate', ">=2.5.0.pre1"
46
+ gem 'annotate', ">=2.5.0.pre3"
47
47
 
48
48
  Into Gemfile from Github:
49
49
 
@@ -101,7 +101,7 @@ anywhere in the file:
101
101
 
102
102
  == OPTIONS
103
103
 
104
- Usage: annotate_models [options] [model_file]*
104
+ Usage: annotate [options] [model_file]*
105
105
  -d, --delete Remove annotations from all model files
106
106
  -p, --position [before|after] Place the annotations at the top (before) or the bottom (after) of the model file
107
107
  -r, --routes Annotate routes.rb with the output of 'rake routes'
@@ -117,6 +117,7 @@ anywhere in the file:
117
117
  -f [bare|rdoc|markdown], Render Schema Infomation as plain/RDoc/Markdown
118
118
  --format
119
119
  --force Force new annotations even if there are no changes.
120
+ --trace If unable to annotate a file, print the full stack trace, not just the exception message.
120
121
 
121
122
 
122
123
  == SORTING
@@ -13,7 +13,7 @@ end
13
13
  task = :annotate_models
14
14
 
15
15
  OptionParser.new do |opts|
16
- opts.banner = "Usage: annotate_models [options] [model_file]*"
16
+ opts.banner = "Usage: annotate [options] [model_file]*"
17
17
 
18
18
  opts.on('-d', '--delete',
19
19
  "Remove annotations from all model files") do
@@ -87,6 +87,11 @@ OptionParser.new do |opts|
87
87
  ENV['force'] = 'yes'
88
88
  end
89
89
 
90
+ opts.on('--trace', 'If unable to annotate a file, print the full stack trace, not just the exception message.') do |value|
91
+ ENV['trace'] = 'yes'
92
+ end
93
+
94
+
90
95
  end.parse!
91
96
 
92
97
  ENV['is_cli'] = '1'
@@ -344,25 +344,11 @@ module AnnotateModels
344
344
  end
345
345
  end
346
346
 
347
- if options[:model_dir]
348
- self.model_dir = options[:model_dir]
349
- end
347
+ self.model_dir = options[:model_dir] if options[:model_dir]
350
348
 
351
349
  annotated = []
352
350
  get_model_files(options).each do |file|
353
- begin
354
- klass = get_model_class(file)
355
- if klass && klass < ActiveRecord::Base && !klass.abstract_class?
356
- if annotate(klass, file, header, options)
357
- annotated << klass
358
- end
359
- end
360
- rescue Exception => e
361
- # todo: check if all backtrace lines are in "gems" -- if so, it's an annotate bug, so print the whole stack trace.
362
- puts "Unable to annotate #{file}: #{e.message} (#{e.backtrace.first})"
363
- # todo: save this backtrace somewhere nice
364
- # puts "\t" + e.backtrace.join("\n\t")
365
- end
351
+ annotate_model_file(annotated, file, header, options)
366
352
  end
367
353
  if annotated.empty?
368
354
  puts "Nothing annotated."
@@ -370,12 +356,23 @@ module AnnotateModels
370
356
  puts "Annotated (#{annotated.length}): #{annotated.join(', ')}"
371
357
  end
372
358
  end
373
-
374
- def remove_annotations(options={})
375
- if options[:model_dir]
376
- puts "removing"
377
- self.model_dir = options[:model_dir]
359
+
360
+ def annotate_model_file(annotated, file, header, options)
361
+ begin
362
+ klass = get_model_class(file)
363
+ if klass && klass < ActiveRecord::Base && !klass.abstract_class?
364
+ if annotate(klass, file, header, options)
365
+ annotated << klass
366
+ end
367
+ end
368
+ rescue Exception => e
369
+ puts "Unable to annotate #{file}: #{e.message}"
370
+ puts "\t" + e.backtrace.join("\n\t") if options[:trace]
378
371
  end
372
+ end
373
+
374
+ def remove_annotations(options={})
375
+ self.model_dir = options[:model_dir] if options[:model_dir]
379
376
  deannotated = []
380
377
  get_model_files(options).each do |file|
381
378
  begin
@@ -406,7 +403,8 @@ module AnnotateModels
406
403
 
407
404
  end
408
405
  rescue Exception => e
409
- puts "Unable to annotate #{file}: #{e.message}"
406
+ puts "Unable to deannotate #{file}: #{e.message}"
407
+ puts "\t" + e.backtrace.join("\n\t") if options[:trace]
410
408
  end
411
409
  end
412
410
  puts "Removed annotation from: #{deannotated.join(', ')}"
@@ -1,5 +1,5 @@
1
1
  module Annotate
2
2
  def self.version
3
- "2.5.0.pre2"
3
+ "2.5.0.pre3"
4
4
  end
5
5
  end
@@ -28,6 +28,7 @@ task :annotate_models => :environment do
28
28
  options[:format_markdown] = ENV['format_markdown'] =~ true_re
29
29
  options[:sort] = ENV['sort'] =~ true_re
30
30
  options[:force] = ENV['force'] =~ true_re
31
+ options[:trace] = ENV['trace'] =~ true_re
31
32
  AnnotateModels.do_annotations(options)
32
33
  end
33
34
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: annotate
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0.pre2
4
+ version: 2.5.0.pre3
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2012-07-20 00:00:00.000000000 Z
15
+ date: 2012-07-26 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rake
@@ -74,7 +74,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
74
74
  version: '0'
75
75
  segments:
76
76
  - 0
77
- hash: 3749853893858180843
77
+ hash: 4381666328163276586
78
78
  required_rubygems_version: !ruby/object:Gem::Requirement
79
79
  none: false
80
80
  requirements:
@@ -83,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  version: 1.3.1
84
84
  requirements: []
85
85
  rubyforge_project: annotate
86
- rubygems_version: 1.8.24
86
+ rubygems_version: 1.8.21
87
87
  signing_key:
88
88
  specification_version: 3
89
89
  summary: Annotates Rails Models, routes, fixtures, and others based on the database