one_gadget/tasks
david942j ecf0ae04ab
Enable new cops and fix styles (#131)
2020-10-18 15:18:29 +08:00
..
builds Enable new cops and fix styles (#131) 2020-10-18 15:18:29 +08:00
readme.rake Enable new cops and fix styles (#131) 2020-10-18 15:18:29 +08:00

readme.rake

# frozen_string_literal: true

desc 'To auto generate README.md from README.tpl'
task :readme do
  next if ENV['CI']

  @tpl = IO.binread('README.tpl.md')

  def replace(prefix)
    @tpl.gsub!(/#{prefix}\(.*\)/) do |s|
      yield(s[(prefix.size + 1)...-1])
    end
  end

  replace('SHELL_OUTPUT_OF') do |cmd|
    out = "$ #{cmd}\n"
    out + `#{cmd}`.lines.map do |c|
      next "#\n" if c.strip.empty?

      "# #{c}"
    end.join
  end

  require 'one_gadget'
  replace('RUBY_OUTPUT_OF') do |cmd|
    res = instance_eval(cmd)
    "#{cmd}\n#=> #{res.inspect}\n"
  end

  IO.binwrite('README.md', @tpl)
end