lib/generators/index/index_generator.rb in gindex-0.1.2 vs lib/generators/index/index_generator.rb in gindex-0.2.0

- old
+ new

@@ -1,30 +1,30 @@ -require "rails/generators/migration" +require "rails/generators/active_record" class IndexGenerator < Rails::Generators::Base - include Rails::Generators::Migration + include ActiveRecord::Generators::Migration + source_root File.join(__dir__, "templates") - source_root File.expand_path("../templates", __FILE__) - argument :table, type: :string argument :columns, type: :array - # Implement the required interface for Rails::Generators::Migration. - def self.next_migration_number(dirname) #:nodoc: - next_migration_number = current_migration_number(dirname) + 1 - if ::ActiveRecord::Base.timestamped_migrations - [Time.now.utc.strftime("%Y%m%d%H%M%S"), "%.14d" % next_migration_number].max - else - "%.3d" % next_migration_number - end - end - def copy_migration - migration_template "index_migration.rb", "db/migrate/add_index_on_#{columns.join('_and_')}_to_#{table}.rb" + migrate_path = ActiveRecord::Tasks::DatabaseTasks.migrations_paths.first + migration_template "index_migration.rb", "#{migrate_path}/add_index_on_#{columns.join('_and_')}_to_#{table}.rb" end def migration_version - if ActiveRecord::VERSION::MAJOR >= 5 - "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]" + "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]" + end + + def table_str + table.to_sym.inspect + end + + def column_str + if columns.size == 1 + columns.first.to_sym.inspect + else + columns.map(&:to_sym).inspect end end end