Skip to content

Instantly share code, notes, and snippets.

@lnznt
Created May 1, 2012 04:40
Show Gist options
  • Save lnznt/2565051 to your computer and use it in GitHub Desktop.
Save lnznt/2565051 to your computer and use it in GitHub Desktop.
[sample] the % notation [ %w!...! ] (Ruby)
#!/usr/bin/env ruby
# -*- coding: UTF-8 -*-
#
# $ ruby -v
# ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
#
x = "xyz"
p %w!abc def!
p %w"abc def"
p %w#abc def#
p %w$abc def$
p %w%abc def%
p %w&abc def&
p %w'abc def'
p %w(abc def)
p %w)abc def)
p %w*abc def*
p %w+abc def+
p %w,abc def,
p %w-abc def-
p %w.abc def.
p %w/abc def/
p %w:abc def:
p %w;abc def;
p %w<abc def>
p %w=abc def=
p %w>abc def>
p %w?abc def?
p %w@abc def@
p %w[abc def]
p %w\abc def\
p %w]abc def]
p %w^abc def^
p %w_abc def_
p %w`abc def`
p %w{abc def}
p %w|abc def|
p %w}abc def}
p %w~abc def~
p ( %w!abc def! )
p ( %w"abc def" )
p ( %w#abc def# )
p ( %w$abc def$ )
p ( %w%abc def% )
p ( %w&abc def& )
p ( %w'abc def' )
p ( %w(abc def) )
p ( %w)abc def) )
p ( %w*abc def* )
p ( %w+abc def+ )
p ( %w,abc def, )
p ( %w-abc def- )
p ( %w.abc def. )
p ( %w/abc def/ )
p ( %w:abc def: )
p ( %w;abc def; )
p ( %w<abc def> )
p ( %w=abc def= )
p ( %w>abc def> )
p ( %w?abc def? )
p ( %w@abc def@ )
p ( %w[abc def] )
p ( %w\abc def\ )
p ( %w]abc def] )
p ( %w^abc def^ )
p ( %w_abc def_ )
p ( %w`abc def` )
p ( %w{abc def} )
p ( %w|abc def| )
p ( %w}abc def} )
p ( %w~abc def~ )
# 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 %w!abc def #{x}!
p %w"abc def #{x}"
#p %w#abc def #{x}# ### Syntax Error
p %w$abc def #{x}$
p %w%abc def #{x}%
p %w&abc def #{x}&
p %w'abc def #{x}'
p %w(abc def #{x})
p %w)abc def #{x})
p %w*abc def #{x}*
p %w+abc def #{x}+
p %w,abc def #{x},
p %w-abc def #{x}-
p %w.abc def #{x}.
p %w/abc def #{x}/
p %w:abc def #{x}:
p %w;abc def #{x};
p %w<abc def #{x}>
p %w=abc def #{x}=
p %w>abc def #{x}>
p %w?abc def #{x}?
p %w@abc def #{x}@
p %w[abc def #{x}]
p %w\abc def #{x}\
p %w]abc def #{x}]
p %w^abc def #{x}^
p %w_abc def #{x}_
p %w`abc def #{x}`
p %w{abc def #{x}}
p %w|abc def #{x}|
#p %w}abc def #{x}} ### Syntax Error
p %w~abc def #{x}~
p ( %w!abc def #{x}! )
p ( %w"abc def #{x}" )
#p ( %w#abc def #{x}# ) ### Syntax Error
p ( %w$abc def #{x}$ )
p ( %w%abc def #{x}% )
p ( %w&abc def #{x}& )
p ( %w'abc def #{x}' )
p ( %w(abc def #{x}) )
p ( %w)abc def #{x}) )
p ( %w*abc def #{x}* )
p ( %w+abc def #{x}+ )
p ( %w,abc def #{x}, )
p ( %w-abc def #{x}- )
p ( %w.abc def #{x}. )
p ( %w/abc def #{x}/ )
p ( %w:abc def #{x}: )
p ( %w;abc def #{x}; )
p ( %w<abc def #{x}> )
p ( %w=abc def #{x}= )
p ( %w>abc def #{x}> )
p ( %w?abc def #{x}? )
p ( %w@abc def #{x}@ )
p ( %w[abc def #{x}] )
p ( %w\abc def #{x}\ )
p ( %w]abc def #{x}] )
p ( %w^abc def #{x}^ )
p ( %w_abc def #{x}_ )
p ( %w`abc def #{x}` )
p ( %w{abc def #{x}} )
p ( %w|abc def #{x}| )
#p ( %w}abc def #{x}} ) ### Syntax Error
p ( %w~abc def #{x}~ )
# vi:set ts=2 sw=2 et:
#!/usr/bin/env ruby
# -*- coding: UTF-8 -*-
#
# $ ruby -v
# <%= RUBY_DESCRIPTION %>
#
x = "xyz"
<%
#string = 'abc def'
string = 'abc def #{x}'
arg = ""
q = "w"
wrap1 = -> s { s }
wrap2 = -> s { "( #{s} )" }
put_code = -> wrap do
(0x21..0x7e).map(&:chr)
.grep(/[_\W]/)
.map {|c| [c, {"(" => ")",
"<" => ">",
"[" => "]",
"{" => "}"}[c] || c] }
.map {|c1,c2| "\%#{q}#{c1}#{string}#{c2}#{arg}" }
.map(&wrap)
.map {|s| "p #{s}" } * "\n"
end
%>
<%= put_code.(wrap1) %>
<%= put_code.(wrap2) %>
# 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