33 votes

Quelles sont les alternatives à l'IRB-t-on?

Dans le python du monde, il y a un certain nombre d'autres interpréteurs python qui ajoutent des frais de fonctionnalités supplémentaires. Un exemple est particulièrement utile bpython, ce qui ajoute de la dynamique de la syntaxe, extrait automatiquement de la documentation, et affiche en direct de saisie semi-automatique de l'information. Dans le Rubis du monde, je n'ai pas encore permis de découvrir des projets qui s'ajoutent à la base de la CISR interprète même un sous-ensemble de ces fonctionnalités. Suis-je juste ne regarde pas assez dur, ou est-ce juste quelque chose de la communauté Ruby est en manque?

35voto

banister Points 13181

L'utilisation de Levier: http://pry.github.com

Vous permet de:

  • début des séances à l'exécution
  • méthode de vue du code source
  • méthode de vue de la documentation (n'utilisant pas RI de sorte que vous n'avez pas à pré-générer)
  • pop dans et hors de différents contextes
  • la coloration syntaxique
  • résumé de l'intégration
  • la vue et la relecture de l'histoire
  • ouvrir les éditeurs à modifier la méthode à l'aide d' edit-method obj.my_method de la syntaxe

Une tonne de plus grands et des caractéristiques d'origine

29voto

Mark Thomas Points 19281

Quelle coïncidence. Rubyflow hier, a annoncé la irbtools gem, qui est un méta-gemme contenant beaucoup de fraîcheur de la cisr amélioration de pierres précieuses. Il contient:

  • Colorisée et de sortie comme commentaire par wirb et fancy_irb
  • Nice CISR rapide et de la CISR auto indentation
  • Comprend stdlib de FileUtils: ls, cd, pwd, ln_s, rm, mkdir, touch, cat
  • Beaucoup de débogage aides: ap, q, o, c, y, Object#m, Object#d
    • ap – awesome_print
    • q comme p, mais sur une seule ligne
    • Object#m – commandé la méthode de la liste (prend en paramètre de type entier: niveau d'imbrication)
    • Object#d – met l'objet, renvoie de soi (à l'aide d' tap)
  • "Magique" de l'information constantes: Info, OS, RubyVersion, RubyEngine
    • OS.windows?
    • RubyEngine.jruby?
    • RubyVersion.is.at_least? 1.9
  • Presse-papiers caractéristiques: copy et paste
    • aussi disponible: copy_input et copy_output pour la session de l'histoire
  • Appelez vim (ou d'une autre, pris en charge éditeur) pour éditer un fichier, fermez-la et il est chargé dans votre rir en cours de session, alimenté par interactive_editor
  • Une autre façon de vivre le chargement dans la cisr: croquis
  • Mettre en évidence une chaîne de caractères avec olorize('string') ou un autre fichier ray('path'), alimenté par coderay
  • Affiche ActiveRecord entrées de base de données sous forme de tables avec hirb
  • Redémarrez irb avec reset! ou de changer la version de Ruby avec l' use méthode et rvm!
  • Comprend le répertoire courant dans le répertoire de chargement (a été supprimé dans 1.9.2 pour des raisons de sécurité, mais est assez gênant dans CISR)
  • Plus courte, exigeant comme ceci: rq:mathn
  • Et rerquiring avec rrq
  • Essayez incluses Object#ri helper, alimenté par ori!
  • L'accès à un plus beaucoup de commandes avec boson – commandes d'appel pour obtenir commencé

Il y a de belles captures d'écran sur le irbtools page. Une bonne chose, c'est que chacun des utilitaires peuvent se tenir debout sur ses propres, dans le cas où vous voulez juste de piocher une ou deux fonctionnalités.

2013 mise à Jour

Depuis que j'ai écrit cela, Soulever est devenu le standard de facto de la CISR de remplacement. Il ne veut pas en faire autant que irbtools hors de la boîte, mais il extensible avec le plugin gemmes et ce qu'il permet est wicked cool. Vous pouvez parcourir le code source comme c'était un répertoire 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>

Vous pouvez également parcourir documentation de Ruby, émettre des commandes du shell, et si vous êtes un Rails de l'utilisateur, vous pouvez utiliser l' pry-rails gem pour obtenir soulever dans votre console Rails. Il est également possible de le brancher en Sinatra et de l'utiliser avec Heroku.

Il y a une ample documentation--il y a un tas de screencasts, y compris un Railscast. C'est certainement la peine de regarder dans.

3voto

Michael Kohl Points 33345

Je n'ai jamais entendu parler d'un (populaire) alternative à la CISR, mais il y a certainement plusieurs utile pierres précieuses qui font de la CISR expérience beaucoup plus agréable:

  • awesome_print assez imprime les objets Ruby avec l'indentation et la coloration, très utile lorsque vous essayez de regarder imbriqués les hachages ou d'autres structures de données complexes.
  • looksee est assez génial aussi, il fournit une méthode lp (chemin de recherche) qui vous montre où un Rubis objet obtient ses méthodes de (classe de super-classe, etc).
  • Croquis connecte votre éditeur et de la CISR, il est donc particulièrement utile si vous êtes le type qui aime de développement interactif. Emacs avec inf-ruby est également bon pour cela.
  • Wirble est un ensemble de RIR des améliorations, comme l'onglet de l'achèvement et de la syntaxe. Il y a aussi la Ceinture d'Utilité, mais je n'ai personnellement pas l'utiliser, ne peut donc pas commenter sur ses caractéristiques.

Modifier

J'ai oublié Hirb, ce qui est très utile pour, par exemple, avec les résultats de la ActiveRecord requête dans une console Rails.

2voto

Reactormonk Points 7990

2voto

Jörg W Mittag Points 153275

JRuby est livré avec jirb_swing, ce qui fournit la complétion de code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X