Question

Dans le monde de python, il y a un certain nombre d'interprètes de python alternatives qui ajoutent des fonctionnalités très supplémentaires. Un exemple particulièrement utile est bpython, qui ajoute la syntaxe dynamique mise en évidence, tire automatiquement la documentation, et affiche des informations en direct autocomplete. Dans le monde Ruby, je n'ai pas encore permis de découvrir des projets qui ajoutent à l'interprète de base de la CISR, même un sous-ensemble de ces caractéristiques. Suis-je tout simplement pas assez dur à la recherche, ou est-ce juste quelque chose de la communauté Ruby manque?

Était-ce utile?

La solution

Quelle coïncidence. Rubyflow juste a annoncé hier la joyau de irbtools, qui est un contenant beaucoup de méta-gemme de gemmes d'amélioration de RIR de cool. Il contient:

  • Colorisation et sortie comme commentaire par wirb et fancy_irb
  • Nice CISR rapide et l'auto de la CISR indention
  • Comprend FileUtils de la stdlib: ls, cd, pwd, ln_s, rm, mkdir, touch, cat
  • De nombreux assistants de débogage: ap, q, o, c, y, Object#m, Object#d
    • ap - awesome_print
    • q - comme p, mais sur une ligne
    • Object#m - Liste de procédé commandé (a entier paramètres: niveau d'imbrication)
    • Object#d - met l'objet, les retours auto (en utilisant tap)
  • Informations « magiques » constantes: Info, OS, RubyVersion, RubyEngine
    • OS.windows?
    • RubyEngine.jruby?
    • RubyVersion.is.at_least? 1.9
  • Presse-papiers caractéristiques: copy et paste
    • également disponible: copy_input et copy_output pour l'histoire de la session
  • Appel vim (ou un autre éditeur pris en charge) pour modifier un fichier, fermez-le et il est chargé en votre session actuelle RIR, alimenté par interactive_editor
  • Une autre façon de chargement direct dans irb: croquis
  • Mettre en surbrillance une chaîne avec olorize('string') ou un fichier avec ray('path'), alimenté par coderay
  • Affiche les entrées de la base de données sous forme de tableaux avec ActiveRecord hirb
  • Redémarrez irb avec reset! ou changer la version Ruby avec la méthode use et rvm!
  • Y compris le répertoire courant dans le trajet de charge (a été éliminé 1.9.2 pour des raisons de sécurité, mais il est assez ennuyeux dans la CISR)
  • Shorter exigeant comme ceci: rq:mathn
  • Et rerquiring avec rrq
  • Essayez l'assistant Object#ri inclus, alimenté par ori!
  • L'accès à beaucoup d'autres commandes avec boson - commandes d'appel pour commencer

Il y a des captures d'écran Nice sur la page irbtools . Une bonne chose à ce sujet est que chacun des services publics peut se suffire à lui-même, au cas où vous voulez juste écrémer une ou deux fonctions.

Mise à jour 2013

Depuis que j'ai écrit cela, Pry est devenu un remplacement de la CISR populaire. Il ne fait pas autant que irbtools hors de la boîte, mais extensible avec le plugin gemmes qui ajoutent des fonctionnalités fraîches. Vous pouvez parcourir le code source comme il é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 aussi consulter la documentation Ruby, commandes shell d'émission, et si vous êtes un utilisateur Rails, vous pouvez utiliser la gemme pry-rails pour obtenir levier dans la console Rails. Il y a aussi une façon de le brancher dans Sinatra et l'utiliser avec Heroku.

Il y a une abondante documentation - il y a un tas de screencasts, y compris un Railscast. Il vaut vraiment la peine de regarder dans.

Autres conseils

Utilisez Pry: http://pry.github.com

Soit vous est:

  • démarrer des sessions lors de l'exécution
  • Afficher le code source de la méthode
  • Afficher la documentation de la méthode (ne pas utiliser RI si vous ne devez pré-le générer)
  • pop dans et hors de différents contextes
  • coloration syntaxique
  • intégration essentiel
  • et vue historique replay
  • éditeurs ouverts à la méthode d'édition à l'aide edit-method obj.my_method syntaxe

Une tonne de plus grandes caractéristiques et originales

Je ne l'ai jamais entendu parler d'un (populaire) alternative à la CISR, mais il y a certainement plusieurs gemmes utiles qui rendent l'expérience de la CISR une plus belle du lot:

  • awesome_print imprime assez des objets Ruby avec indentation et la coloration, très utile lorsque vous essayez de regarder hash imbriqués ou d'autres structures de données complexes.
  • looksee est assez impressionnant aussi, il fournit une lp méthode (chemin recherche) qui vous montre où objet Ruby obtient ses méthodes de (classe, superclasse etc).
  • Sketches relie votre éditeur et la CISR, il est donc particulièrement utile si vous êtes le type qui aime le développement interactif. Emacs avec inf-ruby est également bon pour cela.
  • Wirble est un ensemble d'améliorations de la CISR, comme la complétion et la coloration syntaxique. Il y a aussi ceinture utilitaire, mais je ne l'utilise pas personnellement que, ne peut donc pas faire de commentaires sur ses caractéristiques.

Modifier

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

navires JRuby avec jirb_swing, qui fournit la complétion de code.

Il n'y a pas grand-chose dans le domaine des solutions de rechange à irb, mais il y a quelques pierres précieuses qui ajoutent des fonctionnalités utiles à irb.

Plus particulièrement wirble , qui, entre autres choses, vous donne une sortie de couleur (pas d'entrée bien) et une histoire qui va au-delà de la session en cours.

Commander RIPL , une alternative irb modulaire qui est conçu pour être extensible. Vous pouvez également obtenir des réponses de Y at-il quelque chose comme bpython pour Ruby? .

nervure

est une interface interactive Ruby modulaire et la lumière.

, comme Pry, utilise l'analyseur de Ruby a donc un comportement cohérent avec Ruby ainsi moins de bugs (par exemple https://stackoverflow.com/ a / 39271791/474597 )

Il est modulaire, donc on peut facilement étendre avec plus de fonctionnalités.

Il est également toujours maintenu activement au 2016.

J'ai fait une console pur Ruby, inspiré de la console JavaScript de Google Chrome.

https://github.com/sancarn/RubyConsole

Il est encore principalement un projet de travaux en cours que je continue à trouver des bugs avec l'algorithme actuel, mais je construis qu'il soit compatible 1.9.3+.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top