class Orphanage::InitGenerator
Public Instance Methods
create_migration()
click to toggle source
# File lib/generators/orphanage/init_generator.rb, line 36 def create_migration puts "creating migration file..." migration_file_name = "#{Time.now.utc.strftime("%Y%m%d%H%M%S")}_create_#{home_file_name}_temps.rb" template "migration.rb.erb", "db/migrate/#{migration_file_name}" end
ensure_home_model_and_table_exists()
click to toggle source
# File lib/generators/orphanage/init_generator.rb, line 12 def ensure_home_model_and_table_exists begin home_model rescue NameError => e fail "Home model not found. Plese generate it first." end table_exists = ActiveRecord::Base.connection.data_source_exists? home_table_name fail "table #{home_table_name} does not exist. Stopping." if !table_exists end
generate_model()
click to toggle source
# File lib/generators/orphanage/init_generator.rb, line 25 def generate_model generate "model #{home_model_name}Temp --skip-migration" end
orphanize_model()
click to toggle source
# File lib/generators/orphanage/init_generator.rb, line 30 def orphanize_model # change the model to be an orphan model puts "replacing model..." template "model.rb.erb", "app/models/#{home_file_name}_temp.rb", force: true end
Private Instance Methods
home_file_name()
click to toggle source
# File lib/generators/orphanage/init_generator.rb, line 48 def home_file_name home_model_name.underscore end
home_model()
click to toggle source
# File lib/generators/orphanage/init_generator.rb, line 44 def home_model home_model_name.constantize end
home_table_name()
click to toggle source
# File lib/generators/orphanage/init_generator.rb, line 52 def home_table_name home_file_name.pluralize end
migration_columns()
click to toggle source
# File lib/generators/orphanage/init_generator.rb, line 60 def migration_columns # get all column names needed_cols = home_model.columns.select { |col| !%w(id created_at updated_at).include? col.name } # returns an array of strings each representing a single column to add in the migration. migrations = needed_cols.map {|col| "t.#{col.type} :#{col.name}, null: #{col.null}" } return migrations end
orphan_table_name()
click to toggle source
# File lib/generators/orphanage/init_generator.rb, line 56 def orphan_table_name (home_model_name + "Temp").underscore.pluralize end