質問
Pythonの世界には、クールな追加機能を追加する多くの代替Python通訳者がいます。特に便利な例の1つは、動的構文の強調表示を追加し、ドキュメントを自動的にプルし、ライブオートコンプリート情報を表示するBPYTHONです。 Rubyの世界では、これらの機能のサブセットでさえも基本的なIRBインタープリターに追加するプロジェクトをまだ発見していません。私は十分に一生懸命見ていないのですか、それともこれはRubyコミュニティに欠けているものですか?
解決
なんて偶然。 Rubyflow ちょうど昨日発表しました Irbtools GEMは、多くのクールなIRB強化宝石を含むメタゲムです。を含む:
- コメントとして色付けされた出力
wirb
とfancy_irb
- 素敵なIRBプロンプトとIRBのオートインデント
- stdlibのfileutilsを含む:
ls
,cd
,pwd
,ln_s
,rm
,mkdir
,touch
,cat
- 多くのデバッグヘルパー:
ap
,q
,o
,c
,y
,Object#m
,Object#d
ap
- Awesome_printq
- お気に入りp
, 、しかし1つの行にObject#m
- 順序付けされたメソッドリスト(整数パラメーターを取ります:ネストのレベル)Object#d
- オブジェクトを置き、自己を返します(使用しますtap
)
- 「魔法の」情報定数:
Info, OS, RubyVersion, RubyEngine
OS.windows?
RubyEngine.jruby?
RubyVersion.is.at_least? 1.9
- クリップボード機能:
copy
とpaste
- また利用可能:
copy_input
とcopy_output
セッション履歴
- また利用可能:
- 電話
vim
(または別のサポートされているエディター)ファイルを編集し、閉じて、現在のIRBセッションにロードされ、interactive_editor
- IRBへのライブロードの別の方法:スケッチ
- 文字列を強調表示します
olorize('string')
またはのファイルray('path')
, 、Coderayを搭載 - ActivereCordデータベースエントリをテーブルとして表示します
hirb
- 再起動
irb
とreset!
または、ルビーバージョンを変更しますuse
方法とrvm!
- ロードパスの現在のディレクトリが含まれています(セキュリティ上の理由で1.9.2で削除されましたが、IRBではかなり迷惑です)
- このように必要とする短い:
rq:mathn
- と再免除
rrq
- 含まれているものを試してください
Object#ri
ヘルパー、搭載ori
! - より多くのコマンドへのアクセス
boson
- コマンドを呼び出して開始します
上に素敵なスクリーンショットがあります Irbtools ページ。それについての1つの良い点は、1つまたは2つの機能を選択したい場合に備えて、それぞれのユーティリティが独自に立つことができることです。
2013年の更新
私はこれを書いたので、 こじ開けます 人気のあるIRB代替品になりました。それほど多くはしません irbtools
箱から出していますが、クールな機能を追加するプラグインの宝石で拡張可能です。 Unixディレクトリのようにソースコードを閲覧できます。
pry(main)> cd FileUtils
pry(FileUtils):1> show-method rm
From: /opt/ruby/lib/ruby/1.9.1/fileutils.rb @ line 556:
Number of lines: 10
Owner: FileUtils
def rm(list, options = {})
fu_check_options options, OPT_TABLE['rm']
list = fu_list(list)
fu_output_message "rm#{options[:force] ? ' -f' : ''} #{list.join ' '}" if options[:verbose]
return if options[:noop]
list.each do |path|
remove_file path, options[:force]
end
end
pry(FileUtils):2>
Rubyドキュメントを閲覧したり、シェルコマンドを発行したりすることもできます。また、Railsユーザーの場合は、 pry-rails
Railsコンソールをこじ開けるための宝石。また、それをシナトラに引っ掛けてHerokuで使用する方法もあります。
十分なドキュメントがあります - Railscastを含む多くのスクリーンキャストがあります。それは間違いなく調べる価値があります。
他のヒント
pryを使用してください: http://pry.github.com
あなたをしましょう:
- 実行時にセッションを開始します
- メソッドソースコードを表示します
- メソッドのドキュメントを表示する(RIを使用しないため、事前に生成する必要はありません)
- さまざまなコンテキストに出入りする
- 構文強調表示
- 要点統合
- 履歴を表示および再生します
- 使用してメソッドを編集する編集者をオープンします
edit-method obj.my_method
構文
より素晴らしいオリジナルの機能
IRBに代わる(人気のある)代替案については聞いたことがありませんが、IRBの体験をもっと良くする有用な宝石がいくつかあります。
- Awesome_print インデントと着色でルビーオブジェクトをプリントします。ネストされたハッシュまたは他の複雑なデータ構造を見ようとするときに非常に便利です。
- 見てください かなり素晴らしいです、それは方法を提供します
lp
(ルビーオブジェクトがクラス、スーパークラスなどからメソッドを取得する場所を示す(ルックアップパス)。 - スケッチ エディターとIRBを接続するため、インタラクティブな開発が好きなタイプである場合に特に便利です。 emacs
inf-ruby
これにも良いです。 - ワーブル タブの完了や構文の強調表示など、IRB強化のセット全体です。あります ユーティリティベルト, 、しかし、私は個人的にそれを使用していないので、その機能についてコメントすることはできません。
編集
忘れてた ハーブ, 、これは、RailsコンソールでActiverCordクエリの結果を示すのに非常に役立ちます。
Jrubyは一緒に出荷されます jirb_swing
, 、コードの完了を提供します。
IRBに代わる分野にはあまりありませんが、IRBに有用な機能を追加する宝石がいくつかあります。
最も注目に値します ワーブル, 、とりわけ、色付きの出力(入力ではありません)と、現在のセッションを超えた履歴が得られます。
チェックアウト ripl, 、拡張可能になるように設計されたモジュラーIRBの代替品。また、いくつかの答えを得ることができます RubyのBpythonのようなものはありますか?.
リブ モジュール式および軽いルビーインタラクティブシェルです。
それは、Pryのように、Rubyのパーサーを使用するので、Rubyとの一貫した動作があるため、バグが少なくなります(例: https://stackoverflow.com/a/39271791/474597)
モジュール式であるため、より多くの機能で簡単に拡張できます。
また、2016年の時点でも積極的に維持されています。
Google ChromeのJavaScriptコンソールからインスピレーションを受けた純粋なRubyコンソールを作成しました。
https://github.com/sancarn/rubyconsole
現在のアルゴリズムでバグを見つけ続けているので、それはまだ主にWIPプロジェクトですが、1.9.3+互換性を構築しています。