Skip to content

Instantly share code, notes, and snippets.

@ongaeshi
Last active January 12, 2021 05:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ongaeshi/c26277db33ae7ad500c781227471e7d7 to your computer and use it in GitHub Desktop.
Save ongaeshi/c26277db33ae7ad500c781227471e7d7 to your computer and use it in GitHub Desktop.
irbをプログラマブル電卓として使いこなす

irbをプログラマブル電卓として使いこなす

基本設定

  • .irbrcに設定する
  • ヒストリと補完は必ず動くようにする(複数行編集とかもできるようになるのでRuby 2.7以降がおすすめ)
require 'irb/ext/save-history'
require 'irb/completion'
require 'caseninja'
require 'open-uri'
require 'json'

# オレオレライブラリを書ける場所を追加しておく(.irbrcに直接書いてもよい)
require_relative 'junk/script/text_filter'  

IRB.conf[:SAVE_HISTORY] = 200

# プロキシ環境下の場合、必要であれば通しておく
# ENV["http_proxy"] = "http://proxy.example.com:8080/"
# ENV["https_proxy"] = "http://proxy.example.com:8080/"

Windows

  • WSL2が使えるならそっちを使うとcurl使えたりgemのインストールも簡単なのでおすすめ
  • Ruby InstallerのRubyを使っている場合はInteractive Rubyというアプリがインストールされているのでそちらから起動する(コマンドプロンプト)
    • Windowsキー + irbで出てくる
    • バッチのプロパティからホームディレクトリだけは変えておいた方がいいかも

基本操作

  • 矢印キーでヒストリの呼び出し
  • 単体でメソッドコールするときは括弧を省略できる
    • Dir.chdir "/tmp/path"とか
    • 入力が大分楽になるのでirbでは積極的に使おう

クリップボードとのやりとり

def set_clipboard(str)
  IO.popen("clip", "w") { |pipe| pipe.print str }
end

alias :orig_set_clipboard :set_clipboard

def get_clipboard
  `powershell get-clipboard`
end

class String
  def set_clipboard
    orig_set_clipboard self
  end
end

Web APIを叩く

  • curlが使えるならsystem "curl -X ...."がお手軽
  • GETするだけならURI.open()でOK
  • URI.openのハッシュ引数を使えばヘッダ情報も渡せる
  • rest-clientというgemを入れればPOST, PUT, DELETEも簡単に送信できる(らしい)

base64エンコーディング

  • Web関連でたまにidとsecrectを連結してbase64エンコーディングしたものをヘッダに付けて送信してください、みたいなことがある
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment