class SeoOptimizer::ModelsGenerator

Public Class Methods

next_migration_number(_path) click to toggle source
# File lib/generators/seo_optimizer/models/models_generator.rb, line 21
def self.next_migration_number(_path)
  Time.now.utc.strftime('%Y%m%d%H%M%S')
end
orm() click to toggle source
# File lib/generators/seo_optimizer/models/models_generator.rb, line 13
def self.orm
  Rails::Generators.options[:rails][:orm]
end
orm_has_migration?() click to toggle source
# File lib/generators/seo_optimizer/models/models_generator.rb, line 17
def self.orm_has_migration?
  [:active_record].include? orm
end

Public Instance Methods

create_migration_file() click to toggle source
# File lib/generators/seo_optimizer/models/models_generator.rb, line 25
def create_migration_file
  return unless self.class.orm_has_migration?

  migration_template 'model_template.erb',
                     "db/migrate/add_#{model_name}_seo_slug_migration.rb",
                     migration_version: migration_version,
                     model_name: model_name,
                     model_table: model_table,
                     desired_fields_reference: desired_fields_reference

end

Private Instance Methods

desired_fields_reference() click to toggle source
# File lib/generators/seo_optimizer/models/models_generator.rb, line 51
def desired_fields_reference
  desired_fields.delete('seo_slug')
  desired_fields.join(', ')
end
migration_version() click to toggle source
# File lib/generators/seo_optimizer/models/models_generator.rb, line 56
def migration_version
  if rails5?
    '[4.2]'
  elsif rails6?
    '[6.0]'
  end
end
model() click to toggle source
# File lib/generators/seo_optimizer/models/models_generator.rb, line 39
def model
  name
end
model_name() click to toggle source
# File lib/generators/seo_optimizer/models/models_generator.rb, line 43
def model_name
  model.downcase
end
model_table() click to toggle source
# File lib/generators/seo_optimizer/models/models_generator.rb, line 47
def model_table
  model_name.pluralize(2)
end
rails5?() click to toggle source
# File lib/generators/seo_optimizer/models/models_generator.rb, line 64
def rails5?
  Rails.version.start_with? '5'
end
rails6?() click to toggle source
# File lib/generators/seo_optimizer/models/models_generator.rb, line 68
def rails6?
  Rails.version.start_with? '6'
end