Class: Sidenotes::Railtie
- Inherits:
-
Rails::Railtie
- Object
- Rails::Railtie
- Sidenotes::Railtie
- Defined in:
- lib/sidenotes/railtie.rb
Constant Summary collapse
- MIGRATE_TASKS =
%w[db:migrate db:migrate:up db:migrate:down db:rollback].freeze
Class Method Summary collapse
- .install_migrate_hooks ⇒ Object
- .print_verify_report(verifier) ⇒ Object
- .run_generate ⇒ Object
- .run_model ⇒ Object
- .run_verify ⇒ Object
Class Method Details
.install_migrate_hooks ⇒ Object
88 89 90 91 92 93 94 95 96 |
# File 'lib/sidenotes/railtie.rb', line 88 def self.install_migrate_hooks MIGRATE_TASKS.each do |task_name| next unless Rake::Task.task_defined?(task_name) Rake::Task[task_name].enhance do Rake::Task['sidenotes:generate'].invoke if Rake::Task.task_defined?('sidenotes:generate') end end end |
.print_verify_report(verifier) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/sidenotes/railtie.rb', line 67 def self.print_verify_report(verifier) puts "Checking #{verifier.checked_count} model annotations against database..." puts verifier.drifts.each do |drift| puts " #{File.basename(drift.sidecar_path)} - DRIFT:" drift.issues.each { |issue| puts " #{issue}" } puts end verifier.missing_sidecars.each do |name| puts " #{name} - MISSING (model exists, no sidecar file)" end if verifier.drift? puts "#{verifier.issue_count} issue(s) found. Run `rake sidenotes:generate` to update." else puts 'All annotations are up to date.' end end |
.run_generate ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/sidenotes/railtie.rb', line 34 def self.run_generate generator = Sidenotes::Generator.new generator.generate_all puts "Sidenotes: Generated #{generator.models_generated.size} annotation(s)" generator.models_generated.each { |m| puts " #{m}" } return unless generator.models_skipped.any? puts "Skipped #{generator.models_skipped.size} model(s):" generator.models_skipped.each { |m| puts " #{m} (skipped)" } end |
.run_model ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/sidenotes/railtie.rb', line 47 def self.run_model model_name = ENV.fetch('MODEL', nil) abort 'Usage: rake sidenotes:model MODEL=User' unless model_name generator = Sidenotes::Generator.new path = generator.generate_for(model_name) if path puts "Sidenotes: Generated #{path}" else puts "Sidenotes: Could not generate annotation for #{model_name}" end end |
.run_verify ⇒ Object
61 62 63 64 65 |
# File 'lib/sidenotes/railtie.rb', line 61 def self.run_verify verifier = Sidenotes::Verifier.new.verify_all print_verify_report(verifier) exit(1) if verifier.drift? end |