Sha256: 189d56c2b67c3bcd8eeb19649862557b9ddce8f0edf74610cf9c5f46638f0c0d

Contents?: true

Size: 881 Bytes

Versions: 5

Compression:

Stored size: 881 Bytes

Contents

# Should be called *after* the revision
module Spontaneous::Publishing::Steps
  class WriteRevisionFile < BaseStep

    def call
      @progress.stage("writing revision file")
      save_state
      padded_revision = Spontaneous::Paths.pad_revision_number(revision)
      write_revision_file(padded_revision)
      @progress.step(count, "#{path.inspect} => #{padded_revision.inspect}")
    end

    def count
      1
    end

    def rollback
      if @previous
        write_revision_file(@previous)
      else
        FileUtils.rm(path)
      end
    end

    def write_revision_file(contents)
      File.open(path, "w:UTF-8") do |file|
        file.write(contents)
      end
    end

    def path
      @site.revision_root / "REVISION"
    end

    def save_state
      @previous = if File.exist?(path)
        File.read(path)
      else
        nil
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
spontaneous-0.2.0.beta10 lib/spontaneous/publishing/steps/write_revision_file.rb
spontaneous-0.2.0.beta9 lib/spontaneous/publishing/steps/write_revision_file.rb
spontaneous-0.2.0.beta8 lib/spontaneous/publishing/steps/write_revision_file.rb
spontaneous-0.2.0.beta7 lib/spontaneous/publishing/steps/write_revision_file.rb
spontaneous-0.2.0.beta6 lib/spontaneous/publishing/steps/write_revision_file.rb