Sha256: f18be929fe386adca886434f18bfb8daf1dda698cd0acb836d450640ddb16f60

Contents?: true

Size: 622 Bytes

Versions: 3

Compression:

Stored size: 622 Bytes

Contents

module MinceMigrator
  module Migrations
    require_relative 'file'

    class VersionedFile
      attr_reader :version

      def initialize(name, version = 1)
        @version = version
        @name = name
      end

      def name
        version > 1 ? "#{@name}_#{version}" : @name
      end

      def file
        @file ||= File.new(name)
      end

      def next_unused_version
        if file.persisted?
          bump
          next_unused_version
        else
          file
        end
      end

      private

      def bump
        @version += 1
        @file = File.new(name)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mince_migrator-1.0.2 lib/mince_migrator/migrations/versioned_file.rb
mince_migrator-1.0.1 lib/mince_migrator/migrations/versioned_file.rb
mince_migrator-1.0.0 lib/mince_migrator/migrations/versioned_file.rb