This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
s = ARGF.read | |
s.gsub!(/%s"([^"]+)"/) { | |
"%x#{$1.chars.map{|c|c.ord.to_s(16)}.join(".")}" | |
} | |
puts s |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'open3' | |
require 'tempfile' | |
require 'shellwords' | |
if ARGV.size != 2 | |
warn "** usage: jsondiff.rb j1 j2" | |
exit 63 | |
end | |
files = ARGV.dup.map do |arg| |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'rexml/document' | |
require 'open3' | |
default_fn = "svg-fig-00" | |
d = REXML::Document.new(ARGF) | |
REXML::XPath.each(d.root, "//svg:svg", {"svg" => "http://www.w3.org/2000/svg"}) do |x| | |
fn = default_fn.succ! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby -Ku | |
# coding: utf-8 | |
require 'rexml/document' | |
require 'open-uri' | |
# require 'open-uri/cached' | |
CBOR_TAGS = "https://www.iana.org/assignments/cbor-tags/cbor-tags.xml" | |
ACCEPT_XML = {"Accept" => "application/xml"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby -Ku | |
Encoding.default_external = "UTF-8" # wake up, smell the coffee | |
require 'kramdown' | |
# FIX THIS dirname: | |
# You need to be in the root of the proceedings directory as obtained via rsync, | |
# e.g. in my case via: rsync -av rsync.ietf.org::proceedings ~/std/proceedings | |
# Warning: ~ 50 GB! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def remove_indentation(s) | |
l = s.lines | |
indent = l.grep(/\S/).map {|l| l[/^\s*/].size}.min | |
l.map {|l| l.sub(/^ {0,#{indent}}/, "")}.join | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Array | |
def uniq_c | |
each_with_object(Hash.new(0)) { _2[_1] += 1 } | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby -Ku -i.bak | |
fail "Usage: section1.rb foo.md" unless ARGV.size == 1 | |
s = ARGF.read | |
SECTIONS_RE = /Section(?:s? (?:[\w.]+, )*[\w.]+,? and)? [\w.]+/ | |
puts s.gsub(/(#{SECTIONS_RE}\s+of)\s+{{([-\w.]+}})/) { "{{#$1 #$2" } | |
# Note that we don't fix "Section 3 and 5 of {{foo}}" into "Sections 3 and 5 of {{foo}" | |
# -- that must be done manually, with all the not so easy to recognize section references |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby -Ku -pi.bak | |
$_.sub!(/^(.*?h')([A-Fa-f0-9]{67,})'/) { # 67!!! 1 byte slop, should be 65 | |
prefix = $1 | |
indent = " " * prefix.size | |
parts = $2.scan(/.{1,64}/) | |
"#{prefix}#{parts.join("\n#{indent}")}'" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'cbor' | |
# Assume that the cbor-diag gem is installed, but don't use it directly | |
def pretty(item) | |
IO.popen("cbor2pretty.rb", "wb") {|io| io.write(item)} | |
end | |
puts "# Show that the default Time representation is Tag 1" | |
t = Time.now |
NewerOlder