Sha256: adf8fee8d16c0d84ba52a2cc901c4881a0672a68bc83b79bbc02db5b5ebc4a16

Contents?: true

Size: 588 Bytes

Versions: 1

Compression:

Stored size: 588 Bytes

Contents

# frozen_string_literal: true

module Flexdot
  class Logger
    Status = Struct.new(:target_file, :result, :backuped)

    def initialize(target_dir)
      @target_dir = target_dir
    end

    def log(target_file)
      status = Status.new(target_file)
      yield(status)
      puts message_for(status)
    end

    private

    attr_reader :target_dir

    def message_for(status)
      [].tap { |msg|
        msg << "[#{status.result}]"
        msg << status.target_file.relative_path_from(target_dir)
        msg << '(backup)' if status.backuped
      }.join(' ')
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
flexdot-1.0.2 lib/flexdot/logger.rb