コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

Rubyなど ; で区切るワンライナーを作る時はブラウザのURL欄を使うと楽

何を言っているんだというタイトルだが今日は生活の知恵ぐらいの話です。

やりたいこと

例えばこんなコードがあるとする

a = 10
x_list = [1,3,5,7,11]
x_list.each { |x| p "#{a * x} is number" }

これをファイルを作らず実行したい。

やりかた

セミコロンをつける

まずは行が終わるための区切り文字である ; を付与する。改行に置換するなどすると早い。

a = 10;
x_list = [1,3,5,7,11];
x_list.each { |x| p "#{a * x} is number" };

ChromeのURL欄に貼る。

何をいっているかわからないと思うがやる

f:id:shinkufencer:20190113131810g:plain
こんな感じに改行が取り除かれる

ChromeのURL欄をコピーして、任意のテキストエディタに貼り付ける

そうすると下記のようになる。

a = 10; x_list = [1,3,5,7,11]; x_list.each  { |x| p "#{a * x} is number" };

ruby -e で実行できるように '' で囲む

ruby -e 'a = 10; x_list = [1,3,5,7,11]; x_list.each  { |x| p "#{a * x} is number" };'

完成。

利点

  • エディタで改行取り除けばいいのでは…?と思うが、トライアンドエラーで書いているときに大変じゃないですかとか向け
  • 満足な置換機能がないエディタが手元にないときでもできる

注意点

  • 簡易なものなら今の所問題ないが、長くなってくるとわからない
  • URL的にエスケープしちゃうような文字列だと期待値とずれることもありそう(今の所遭遇していない)
  • シングルコーテーションを意図的に外せないものは考慮外