Advertisement
Guest User

deflate.rb

a guest
Aug 11th, 2020
405
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.60 KB | None | 0 0
  1. #!/usr/bin/env ruby -Ku
  2. #coding: utf-8
  3.  
  4. =begin
  5. つかいかた:
  6. $ ruby deflate.rb agc047_e.rb > agc047_e.min.rb
  7. =end
  8.  
  9. require "zlib"
  10.  
  11. deflated = Zlib.deflate(ARGF.read.chomp, 9)
  12.  
  13. code =
  14.     if deflated.include? ?\r
  15.         # \rがあると''で囲めない(エスケープする必要がある〜
  16.         '"' + deflated.gsub(/\\/, "\\\\").gsub(/"/, "\\\"").gsub(/#(?=\{)/, "\\#").gsub(/\r/, "\\r").gsub(/\n/, "\\n") + '"'
  17.     else
  18.         "'" + deflated.gsub(/\\'/, "\\\\'").gsub(/'/, "\\'") + "'"
  19.     end
  20.  
  21. file = <<EOF.chomp
  22. #!ruby -Knrzlib
  23. eval Zlib.inflate#{code}
  24. EOF
  25. STDERR.puts "#{file.length} B"
  26. print file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement