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