Class: TimeTravelGenerator
- Inherits:
-
ActiveRecord::Generators::Base
- Object
- ActiveRecord::Generators::Base
- TimeTravelGenerator
- Defined in:
- lib/generators/time_travel/time_travel_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #generate_migration ⇒ Object
- #migration_class_name ⇒ Object
- #migration_file_name ⇒ Object
- #migration_name ⇒ Object
- #migration_version ⇒ Object
- #model_exists? ⇒ Boolean
- #model_path ⇒ Object
Class Method Details
.source_root ⇒ Object
8 9 10 |
# File 'lib/generators/time_travel/time_travel_generator.rb', line 8 def self.source_root @source_root ||= File.('../templates', __FILE__) end |
Instance Method Details
#generate_migration ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/generators/time_travel/time_travel_generator.rb', line 12 def generate_migration if (behavior == :invoke && model_exists?) migration_template("time_travel_migration_existing.rb.erb", "db/migrate/#{migration_file_name}", migration_version: migration_version) else migration_template("time_travel_migration_new.rb.erb", "db/migrate/#{migration_file_name}", migration_version: migration_version) end end |
#migration_class_name ⇒ Object
40 41 42 |
# File 'lib/generators/time_travel/time_travel_generator.rb', line 40 def migration_class_name migration_name.camelize end |
#migration_file_name ⇒ Object
36 37 38 |
# File 'lib/generators/time_travel/time_travel_generator.rb', line 36 def migration_file_name "#{migration_name}.rb" end |
#migration_name ⇒ Object
32 33 34 |
# File 'lib/generators/time_travel/time_travel_generator.rb', line 32 def migration_name "add_time_travel_to_#{name.underscore.pluralize}" end |
#migration_version ⇒ Object
44 45 46 47 48 |
# File 'lib/generators/time_travel/time_travel_generator.rb', line 44 def migration_version if Rails.version.start_with? "5" "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]" end end |
#model_exists? ⇒ Boolean
24 25 26 |
# File 'lib/generators/time_travel/time_travel_generator.rb', line 24 def model_exists? File.exist?(File.join(destination_root, model_path)) end |
#model_path ⇒ Object
28 29 30 |
# File 'lib/generators/time_travel/time_travel_generator.rb', line 28 def model_path @model_path ||= File.join("app", "models", "#{file_path}.rb") end |