Pythonの世界では、クールな追加機能を追加する代替のPythonインタープリターがいくつかあります。特に便利な例の1つは、動的な構文の強調表示を追加し、ドキュメントを自動的に取得し、ライブのオートコンプリート情報を表示するbpythonです。Rubyの世界では、これらの機能のサブセットでさえ、基本的なIRBインタープリターに追加されるプロジェクトをまだ発見していません。私はただ十分に見つめていませんか、それともこれはRubyコミュニティに欠けているものですか?
9 に答える
Pryを使用する:https ://github.com/pry/pry
あなたにしましょう:
- 実行時にセッションを開始する
- メソッドのソースコードを表示する
- メソッドのドキュメントを表示する(RIを使用していないため、事前に生成する必要はありません)
- さまざまなコンテキストに出入りする
- 構文の強調表示
- 要旨の統合
- 履歴の表示と再生
edit-method obj.my_method
エディターを開いて、構文を使用してメソッドを編集します
1トン以上の優れたオリジナルの機能
なんて偶然。Rubyflowは昨日、irbtools gemを発表しました。これは、多くのクールなirb拡張gemを含むメタgemです。を含む:
- とによるコメントとして色付けされて出力され
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
–オブジェクトを配置し、selfを返します(を使用して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')
- ActiveRecordデータベースエントリを次のテーブルとして表示します
hirb
- で再起動
irb
するか、メソッドをreset!
使用してRubyのバージョンを変更し、use
rvm!
- ロードパスに現在のディレクトリを含めます(セキュリティ上の理由から1.9.2で削除されましたが、IRBではかなり煩わしいです)
- このように必要な短い:
rq:mathn
- そして、
rrq
Object#ri
付属のヘルパーをお試しくださいori
。- より多くのコマンドへのアクセス
boson
–コマンドを呼び出して開始する
irbtoolsページに素敵なスクリーンショットがあります。それの良い点の1つは、1つまたは2つの機能を選択したい場合に備えて、各ユーティリティが独立していることです。
2013アップデート
私がこれを書いたので、Pryは人気のあるIRBの代替品になりました。箱から出してすぐに使えるほどではありませんがirbtools
、クールな機能を追加するプラグインgemで拡張できます。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
gemを使用してRailsコンソールでこじ開けることができます。Sinatraに接続して、Herokuで使用する方法もあります。
十分なドキュメントがあります。Railscastを含む多数のスクリーンキャストがあります。それは間違いなく調べる価値があります。
IRBの(人気のある)代替案について聞いたことがありませんが、IRBのエクスペリエンスを大幅に向上させる便利な宝石がいくつかあります。
- awesome_printは、インデントと色付けを使用してRubyオブジェクトをきれいに印刷します。これは、ネストされたハッシュやその他の複雑なデータ構造を調べようとするときに非常に便利です。
- lookseeも非常に優れており
lp
、Rubyオブジェクトがメソッドを取得する場所(クラス、スーパークラスなど)を示すメソッド(ルックアップパス)を提供します。 - SketchesはエディターとIRBを接続するため、インタラクティブな開発が好きなタイプの場合に特に便利です。Emacswith
inf-ruby
もこれに適しています。 - Wirbleは、タブ補完や構文の強調表示など、IRBの拡張機能のセット全体です。ユーティリティベルトもありますが、個人的には使っていないので、その機能についてコメントすることはできません。
編集
Hirbを忘れてしまいました。これは、RailsコンソールでActiveRecordクエリの結果を表示する場合などに非常に便利です。
jirb_swing
JRubyには、コード補完を提供するが付属しています。
irbに代わるものの分野はあまりありませんが、irbに便利な機能を追加するいくつかの宝石があります。
最も顕著なのは、特に、色付きの出力(ただし入力ではない)と現在のセッションを超える履歴を提供するwirbleです。
拡張可能に設計されたモジュラーirbの代替であるriplをチェックしてください。また、Ruby用のbpythonのようなものはありますか?。
ribは、モジュール式で軽量のRubyインタラクティブシェルです。
Pryと同様に、Rubyのパーサーを使用するため、Rubyとの動作が一貫しているため、バグが少なくなります(https://stackoverflow.com/a/39271791/474597など) 。
モジュール式なので、より多くの機能で簡単に拡張できます。
また、2016年現在も積極的に維持されています。
私は、GoogleChromeのJavaScriptコンソールから着想を得た純粋なRubyコンソールを作成しました。
https://github.com/sancarn/RubyConsole
現在のアルゴリズムでバグを見つけ続けているので、それはまだほとんどWIPプロジェクトですが、1.9.3+互換になるように構築しています。