コード日進月歩

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

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的にエスケープしちゃうような文字列だと期待値とずれることもありそう(今の所遭遇していない)
  • シングルコーテーションを意図的に外せないものは考慮外

関連リンク