kcdragon/mongration

View on GitHub
lib/mongration/create_migration/migration_file_writer.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Mongration
  class CreateMigration

    # @private
    class MigrationFileWriter

      def self.write(file_name, options = {})
        new(file_name, options).write
      end

      def initialize(file_name, options = {})
        @file_name = file_name
        @up = options[:up]
        @down = options[:down]
      end

      def write
        path = ::File.join(Mongration.configuration.dir, @file_name)
        ::File.open(path, 'w') do |file|
          file.write(<<EOS
class #{class_name}
  def self.up
    #{@up}
  end

  def self.down
    #{@down}
  end
end
EOS
          )
        end
        path
      end

      private

      def class_name
        File.new(@file_name).class_name
      end
    end
  end
end