Sha256: c90a52e1d42999cb2e309b6c656f45bc89d82005745306cbee2e17db14547660

Contents?: true

Size: 1.25 KB

Versions: 4

Compression:

Stored size: 1.25 KB

Contents

#!/usr/bin/env ruby
# encoding: UTF-8

$:.unshift File.expand_path('../../lib', __FILE__)

require 'image_optim'

README_FILE = File.expand_path('../../README.markdown', __FILE__)
BEGIN_MARKER = '<!---<worker-options>-->'
END_MARKER = '<!---</worker-options>-->'
GENERATED_NOTE = "<!-- markdown for worker options is generated by `#{$0}` -->"

def update_worker_options(text)
  text.clone.sub!(/#{Regexp.escape(BEGIN_MARKER)}.*#{Regexp.escape(END_MARKER)}/m) do
    StringIO.open do |md|
      md.puts BEGIN_MARKER
      md.puts GENERATED_NOTE
      md.puts

      ImageOptim::Worker.klasses.each_with_index do |klass, i|
        md.puts "### :#{klass.bin_sym} =>"
        if klass.option_definitions.empty?
          md.puts 'Worker has no options'
        else
          klass.option_definitions.each do |option_definition|
            md.puts "* `:#{option_definition.name}` — #{option_definition.description} *(defaults to `#{option_definition.default.inspect}`)*"
          end
        end
        md.puts
      end

      md.puts END_MARKER

      md.string.strip
    end
  end
end

readme = File.read(README_FILE)
if readme = update_worker_options(readme)
  File.open(README_FILE, 'w') do |f|
    f.write readme
  end
else
  abort "Did not update worker options"
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
image_optim-0.13.3 script/update_worker_options_in_readme
image_optim-0.13.2 script/update_worker_options_in_readme
image_optim-0.13.1 script/update_worker_options_in_readme
image_optim-0.13.0 script/update_worker_options_in_readme