class DeviseSmsVerifiable::MigrationGenerator
Public Instance Methods
add_migrations()
click to toggle source
# File lib/generators/devise_sms_verifiable/migration_generator.rb, line 6 def add_migrations table_name = Devise::default_scope.to_s.pluralize exist_migration = Dir.glob('db/migrate/*_devise_sms_verifiable_add_to_*') if exist_migration.any? && self.behavior == :invoke p("Check db/migrate, look like have sms verifiable migration") end if exist_migration.blank? && self.behavior != :revoke migration_path = "db/migrate/#{Time.now.strftime("%Y%m%d%H%M%S")}_devise_sms_verifiable_add_to_#{table_name}.rb" migration_template = <<-RUBY class DeviseSmsVerifiableAddTo#{table_name.camelize} < ActiveRecord::Migration def self.up change_table :#{table_name} do |t| t.string :phone t.string :sms_answer t.boolean :phone_confirm, default: false t.datetime :sms_token_sent_at t.datetime :sms_token_confirmed_at end end def self.down remove_column :#{table_name}, :phone remove_column :#{table_name}, :sms_answer remove_column :#{table_name}, :phone_confirm remove_column :#{table_name}, :sms_token_sent_at remove_column :#{table_name}, :sms_token_confirmed_at end end RUBY create_file(migration_path, migration_template) elsif self.behavior == :revoke FileUtils.rm_rf *exist_migration if exist_migration.any? end end