Advertisement
Guest User

deflate-uriencode.rb

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