Sha256: 57ebd6e27840b42c61b932fc5236fab3104554560730c1018d969d9c82f7aba4

Contents?: true

Size: 1.38 KB

Versions: 193

Compression:

Stored size: 1.38 KB

Contents

#!/usr/bin/env ruby

# This is a temporary file which exists to support the problem-specifications issue #767
# [Make description.md self contained.](# https://github.com/exercism/problem-specifications/issues/767)
#
# The exercise description given in description.md should be complete and self
# contained, and not require the addition of the blurb to make sense.
#
# This script copies the current blurb into description.md for all exercises.
#
# It will NOT update the description if it already begins with the blurb.
# Thus this script will not add multiple blurbs if it is run multiple times.

require 'yaml'

class Exercise
  attr_reader :path
  def initialize(path)
    @path = path
  end

  def update_description
    unless description.start_with?(blurb)
      complete_description = format("%s\n\n%s", blurb, description)
      File.write(description_filename, complete_description)
    end
  end

  private

  def blurb
    metadata['blurb']
  end

  def metadata
    metadata_filename = File.join(path, 'metadata.yml')
    YAML.load_file(metadata_filename)
  end

  def description
    File.read(description_filename)
  end

  def description_filename
    File.join(path, 'description.md')
  end
end


exercises = Dir.glob('exercises/*').map {|path| Exercise.new(path)}

updated = exercises.count do |exercise|
  exercise.update_description
end

puts "#{updated}/#{exercises.count} exercises updated"

Version data entries

193 entries across 193 versions & 1 rubygems

Version Path
trackler-2.2.1.180 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.179 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.178 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.177 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.176 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.175 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.174 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.173 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.172 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.171 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.170 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.169 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.167 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.166 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.165 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.164 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.163 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.162 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.161 problem-specifications/bin/transfer_blurb_to_description.rb
trackler-2.2.1.160 problem-specifications/bin/transfer_blurb_to_description.rb