Skip to content

Instantly share code, notes, and snippets.

@lnznt
Created May 1, 2012 03:12
Show Gist options
  • Save lnznt/2564662 to your computer and use it in GitHub Desktop.
Save lnznt/2564662 to your computer and use it in GitHub Desktop.
[sample] the % notation [ %Q!...! ] (Ruby)
#!/usr/bin/env ruby
# -*- coding: UTF-8 -*-
#
# $ ruby -v
# ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
#
p %Q!abc!
p %Q"abc"
p %Q#abc#
p %Q$abc$
p %Q%abc%
p %Q&abc&
p %Q'abc'
p %Q(abc)
p %Q)abc)
p %Q*abc*
p %Q+abc+
p %Q,abc,
p %Q-abc-
p %Q.abc.
p %Q/abc/
p %Q:abc:
p %Q;abc;
p %Q<abc>
p %Q=abc=
p %Q>abc>
p %Q?abc?
p %Q@abc@
p %Q[abc]
p %Q\abc\
p %Q]abc]
p %Q^abc^
p %Q_abc_
p %Q`abc`
p %Q{abc}
p %Q|abc|
p %Q}abc}
p %Q~abc~
p ( %Q!abc! )
p ( %Q"abc" )
p ( %Q#abc# )
p ( %Q$abc$ )
p ( %Q%abc% )
p ( %Q&abc& )
p ( %Q'abc' )
p ( %Q(abc) )
p ( %Q)abc) )
p ( %Q*abc* )
p ( %Q+abc+ )
p ( %Q,abc, )
p ( %Q-abc- )
p ( %Q.abc. )
p ( %Q/abc/ )
p ( %Q:abc: )
p ( %Q;abc; )
p ( %Q<abc> )
p ( %Q=abc= )
p ( %Q>abc> )
p ( %Q?abc? )
p ( %Q@abc@ )
p ( %Q[abc] )
p ( %Q\abc\ )
p ( %Q]abc] )
p ( %Q^abc^ )
p ( %Q_abc_ )
p ( %Q`abc` )
p ( %Q{abc} )
p ( %Q|abc| )
p ( %Q}abc} )
p ( %Q~abc~ )
=begin
string = 'abc'
q = "Q"
#wrap = -> s { s }
wrap = -> s { "( #{s} )" }
(0x21..0x7e).map(&:chr)
.grep(/[_\W]/)
.map {|c| [c, {"(" => ")",
"<" => ">",
"[" => "]",
"{" => "}"}[c] || c] }
.map {|c1,c2| "\%#{q}#{c1}#{string}#{c2}" }
.map(&wrap)
.each {|s| puts "p #{s}" }
=end
# vi:set ts=2 sw=2 et:
#!/usr/bin/env ruby
# -*- coding: UTF-8 -*-
#
# $ ruby -v
# ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
#
x = "xyz"
p %Q!abc#{x}!
p %Q"abc#{x}"
#p %Q#abc#{x}# ### Syntax Error
p %Q$abc#{x}$
p %Q%abc#{x}%
p %Q&abc#{x}&
p %Q'abc#{x}'
p %Q(abc#{x})
p %Q)abc#{x})
p %Q*abc#{x}*
p %Q+abc#{x}+
p %Q,abc#{x},
p %Q-abc#{x}-
p %Q.abc#{x}.
p %Q/abc#{x}/
p %Q:abc#{x}:
p %Q;abc#{x};
p %Q<abc#{x}>
p %Q=abc#{x}=
p %Q>abc#{x}>
p %Q?abc#{x}?
p %Q@abc#{x}@
p %Q[abc#{x}]
p %Q\abc#{x}\
p %Q]abc#{x}]
p %Q^abc#{x}^
p %Q_abc#{x}_
p %Q`abc#{x}`
p %Q{abc#{x}}
p %Q|abc#{x}|
p %Q}abc#{x}}
p %Q~abc#{x}~
p ( %Q!abc#{x}! )
p ( %Q"abc#{x}" )
#p ( %Q#abc#{x}# ) ### Syntax Error
p ( %Q$abc#{x}$ )
p ( %Q%abc#{x}% )
p ( %Q&abc#{x}& )
p ( %Q'abc#{x}' )
p ( %Q(abc#{x}) )
p ( %Q)abc#{x}) )
p ( %Q*abc#{x}* )
p ( %Q+abc#{x}+ )
p ( %Q,abc#{x}, )
p ( %Q-abc#{x}- )
p ( %Q.abc#{x}. )
p ( %Q/abc#{x}/ )
p ( %Q:abc#{x}: )
p ( %Q;abc#{x}; )
p ( %Q<abc#{x}> )
p ( %Q=abc#{x}= )
p ( %Q>abc#{x}> )
p ( %Q?abc#{x}? )
p ( %Q@abc#{x}@ )
p ( %Q[abc#{x}] )
p ( %Q\abc#{x}\ )
p ( %Q]abc#{x}] )
p ( %Q^abc#{x}^ )
p ( %Q_abc#{x}_ )
p ( %Q`abc#{x}` )
p ( %Q{abc#{x}} )
p ( %Q|abc#{x}| )
p ( %Q}abc#{x}} )
p ( %Q~abc#{x}~ )
=begin
string = 'abc#{x}'
q = "Q"
#wrap = -> s { s }
wrap = -> s { "( #{s} )" }
(0x21..0x7e).map(&:chr)
.grep(/[_\W]/)
.map {|c| [c, {"(" => ")",
"<" => ">",
"[" => "]",
"{" => "}"}[c] || c] }
.map {|c1,c2| "\%#{q}#{c1}#{string}#{c2}" }
.map(&wrap)
.each {|s| puts "p #{s}" }
=end
# vi:set ts=2 sw=2 et:
#!/usr/bin/env ruby
# -*- coding: UTF-8 -*-
#
# $ ruby -v
# ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
#
x = "xyz"
p %Q!abc%s! % x
p %Q"abc%s" % x
p %Q#abc%s# % x
p %Q$abc%s$ % x
#p %Q%abc%s% % x ### Syntax Error
p %Q&abc%s& % x
p %Q'abc%s' % x
p %Q(abc%s) % x
p %Q)abc%s) % x
p %Q*abc%s* % x
p %Q+abc%s+ % x
p %Q,abc%s, % x
p %Q-abc%s- % x
p %Q.abc%s. % x
p %Q/abc%s/ % x
p %Q:abc%s: % x
p %Q;abc%s; % x
p %Q<abc%s> % x
p %Q=abc%s= % x
p %Q>abc%s> % x
p %Q?abc%s? % x
p %Q@abc%s@ % x
p %Q[abc%s] % x
p %Q\abc%s\ % x
p %Q]abc%s] % x
p %Q^abc%s^ % x
p %Q_abc%s_ % x
p %Q`abc%s` % x
p %Q{abc%s} % x
p %Q|abc%s| % x
p %Q}abc%s} % x
p %Q~abc%s~ % x
p ( %Q!abc%s! % x )
p ( %Q"abc%s" % x )
p ( %Q#abc%s# % x )
p ( %Q$abc%s$ % x )
#p ( %Q%abc%s% % x ) ### Syntax Error
p ( %Q&abc%s& % x )
p ( %Q'abc%s' % x )
p ( %Q(abc%s) % x )
p ( %Q)abc%s) % x )
p ( %Q*abc%s* % x )
p ( %Q+abc%s+ % x )
p ( %Q,abc%s, % x )
p ( %Q-abc%s- % x )
p ( %Q.abc%s. % x )
p ( %Q/abc%s/ % x )
p ( %Q:abc%s: % x )
p ( %Q;abc%s; % x )
p ( %Q<abc%s> % x )
p ( %Q=abc%s= % x )
p ( %Q>abc%s> % x )
p ( %Q?abc%s? % x )
p ( %Q@abc%s@ % x )
p ( %Q[abc%s] % x )
p ( %Q\abc%s\ % x )
p ( %Q]abc%s] % x )
p ( %Q^abc%s^ % x )
p ( %Q_abc%s_ % x )
p ( %Q`abc%s` % x )
p ( %Q{abc%s} % x )
p ( %Q|abc%s| % x )
p ( %Q}abc%s} % x )
p ( %Q~abc%s~ % x )
=begin
string = 'abc%s'
q = "Q"
#wrap = -> s { s }
wrap = -> s { "( #{s} )" }
(0x21..0x7e).map(&:chr)
.grep(/[_\W]/)
.map {|c| [c, {"(" => ")",
"<" => ">",
"[" => "]",
"{" => "}"}[c] || c] }
.map {|c1,c2| "\%#{q}#{c1}#{string}#{c2} % x" }
.map(&wrap)
.each {|s| puts "p #{s}" }
=end
# vi:set ts=2 sw=2 et:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment