W świecie Pythona istnieje wiele alternatywnych interpreterów języka Python, które dodają fajne dodatkowe funkcje. Szczególnie użytecznym przykładem jest bpython, który dodaje dynamiczne podświetlanie składni, automatycznie pobiera dokumentację i wyświetla informacje o autouzupełnianiu na żywo. W świecie Ruby muszę jeszcze odkryć wszelkie projekty, które dodają do podstawowego interpretera IRB nawet podzbiór tych funkcji. Czy po prostu nie wyglądam wystarczająco mocno, czy jest to po prostu coś, czego brakuje społeczności Rubinów?Jakie są alternatywy dla IRB?
Odpowiedz
Co za zbieg okoliczności. Rubyflow właśnie wczoraj ogłosił klejnot, który jest meta-klejnotem zawierającym wiele klejnotów ulepszeń fajnej irb.Zawiera on:
- Colorized i wyjście jako komentarzem
wirb
ifancy_irb
- Nicea IRB wierszu i IRB auto wcięcia
- Zawiera fileutils stdlib za:
ls
,cd
,pwd
,ln_s
,rm
,mkdir
,touch
,cat
- Wiele pomocników do debugowania:
ap
,q
,o
,,y
,Object#m
,Object#d
ap
- awesome_printq
- jakp
, lecz w jednej liniiObject#m
- uporządkowany sposób (ma parametr całkowitą: poziom zagnieżdżenia)Object#d
- zawiesza obiekt, zwraca siebie (przy użyciutap
)
- „Magiczne” Stałe informacje:
Info, OS, RubyVersion, RubyEngine
OS.windows?
RubyEngine.jruby?
RubyVersion.is.at_least? 1.9
- cechy Schowek:
copy
ipaste
- również:
copy_input
icopy_output
do historii sesji
- również:
- połączeń
vim
(lub inny obsługiwany edytor), aby edytować plik, zamknij go i jest ładowany w bieżącej sesji IRB, zasilany przezinteractive_editor
- Innym sposobem na żywo załadunku do IRB: szkice
- Highlight ciąg z
olorize('string')
lub plik zray('path')
, zasilany przez coderay - Wyświetla wpisy bazy danych ActiveRecord jak tabele z
hirb
- Restart
irb
zreset!
lub zmiany wersja Ruby metodąuse
irvm!
- Zawiera aktualny katalog w ścieżce obciążenia (w 1.9.2 usunięto ze względów bezpieczeństwa, ale jest dość irytujące w IRB)
- Krótszy wymagające tak:
rq:mathn
- I ponownie zapytaj:
rrq
- Wypróbuj pomocnika
Object#ri
, zasilanego przezori
! - dostęp do dużo większej liczby poleceń z
boson
- wywołanie polecenia, aby zacząć
Są tam ładne screeny na stronie irbtools. Jedną z fajnych rzeczy jest to, że każde z narzędzi może stanąć na własną rękę, na wypadek gdybyś chciał wybrać jedną lub dwie funkcje.
2013 Aktualizacja
Odkąd napisałem to, Pry stał się popularnym IRB wymiana. To nie robi tak wiele, jak irbtools
po wyjęciu z pudełka, ale można go rozszerzyć dzięki klejnotom pluginów, które dodają fajne funkcje. Można przeglądać kod źródłowy jak to było katalogiem 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>
Możesz również przeglądać dokumentację Ruby poleceń powłoki problem, a jeśli jesteś użytkownikiem szyny, można użyć pry-rails
gem aby podpatrzyć w swojej Konsola Rails. Jest też sposób na podłączenie go do Sinatry i użycie go z Heroku.
Istnieje obszerna dokumentacja - jest kilka screencastów, w tym Railscast. Na pewno warto się nim zająć.
Nie ma wiele w zakresie alternatyw dla irb, ale istnieje kilka klejnotów, które dodają przydatne funkcje irb.
Przede wszystkim wirble, który, między innymi, daje kolorowe wydruki (nie wprowadzanie) i historię, która wykracza poza bieżącą sesję.
Istnieje http://github.com/alloy/dietrb.
Jest jeszcze wiele pracy do zrobienia. To powiedziawszy, włączając w to wersję 0.6, którą właśnie popchnąłem, DietRB ma następujące funkcje: czystszą implementację, ukończenie ścieżki kodu i pliku, kolorowanie z obsługą szablonu Wirble i automatyczne wcięcie. https://rubygems.org/gems/dietrb – alloy
Aha, i zauważ, że jest skierowany tylko do MRI 1.9 i MacRuby, ponieważ używa Rippera. – alloy
Nigdy nie słyszałem o (popularne) alternatywę dla IRB, ale na pewno jest kilka przydatnych perełki, które czynią IRB doświadczenie dużo ładniejszy:
- awesome_print ładne wydruki Ruby obiektów z wcięciem i kolorystyki, bardzo przydatne przy próbie spojrzenia na zagnieżdżone skróty lub inne skomplikowane struktury danych.
- looksee jest również całkiem niezły, zapewnia metodę
lp
(ścieżka wyszukiwania), która pokazuje, gdzie obiekt Ruby pobiera swoje metody (klasa, nadklasa itp.). - Sketches łączy twój edytor i IRB, więc jest to szczególnie przydatne, jeśli jesteś typem, który lubi rozwój interaktywny. Emacs z
inf-ruby
jest również odpowiedni do tego. - Wirble to cały zestaw ulepszeń IRB, takich jak uzupełnianie kart i podświetlanie składni. Jest też Utility Belt, ale nie używam go osobiście, więc nie mogę komentować jego funkcji.
Edycja
zapomniałem Hirb, co jest bardzo przydatne dla np pokazuje wyniki kwerendy ActiveRecord w konsoli Rails.
Zapoznaj się z ripl, modułową alternatywą irb, która ma być przedłużana. Możesz również uzyskać odpowiedzi od Is there something like bpython for Ruby?.
JRuby dostarczane są z jirb_swing
, która zapewnia uzupełnianie kodu.
Zastosowanie Pry: http://pry.github.com
pozwala ci:
- rozpoczęcia sesji w czasie wykonywania
- widok kodu źródłowego metoda
- dokumentacja metoda widok (nie używając RI więc nie trzeba wstępnie generować it)
- wyskakuje z różnych kontekstów
- podświetlanie składni
- integracyjne Istota
- widok i historii powtórka
- otwarte redaktorzy edytować metodę używając
edit-method obj.my_method
składni
tony więcej wspaniałych i oryginalnych elementów
rib to modułowy i lekki Ruby interaktywna powłoka.
To, jak pry wykorzystuje analizator Ruby więc jest spójne działanie Ruby zatem mniej błędów (np https://stackoverflow.com/a/39271791/474597)
to posiada konstrukcję modułową, dzięki czemu można łatwo rozszerzyć z więcej funkcji.
Jest również aktywnie utrzymywany od roku 2016.
- 1. Jakie są alternatywy dla PlayN?
- 2. Jakie są alternatywy ClickOnce?
- 3. Jakie są alternatywy dla edytora MATLAB?
- 4. Jakie są dobre alternatywy dla InstallShield?
- 5. Jakie są alternatywy dla uwierzytelniania Java?
- 6. Jakie są alternatywy open source dla Lattix?
- 7. Jakie są alternatywy dla przycisków radiowych?
- 8. Jakie są rzeczywiste zalety wzoru gościa? Jakie są alternatywy?
- 9. Jakie są alternatywy dla biblioteki wielościennej dla C/C++?
- 10. Jakie są alternatywy dla obsługi XML Schema 1.1 przez JAXB?
- 11. Jakie są alternatywy Wordpress dla Ruby on Rails?
- 12. Jakie są alternatywy dla wdrożeń OpenSplice i RTI DDS?
- 13. Jakie są alternatywy dla tych kontroli w iPhone
- 14. Jakie inne alternatywy dla logowania log4net istnieją?
- 15. Czy DDE nadal ma znaczenie? Jakie są alternatywy?
- 16. Jakie alternatywy dostępne są kontrolery SDN do POX?
- 17. Czy są dostępne darmowe alternatywy dla Silktest?
- 18. Czy są jakieś alternatywy dla py2exe?
- 19. Czy są jakieś dobre alternatywy dla WebSVN?
- 20. Czy są jakieś alternatywy dla XmlUnit?
- 21. Google nie zezwala już na używanie WebView. Jakie są alternatywy?
- 22. Alternatywy dla ERB
- 23. Alternatywy dla WCF
- 24. Co to są alternatywy dla NSURLConnection dla kodowania transferu kodowanego?
- 25. Jakie są niektóre alternatywy dla Gitk, które mogą być używane w Windows Powershell?
- 26. Jakie są dobre alternatywy dla komunikacji między lokalnymi programami w języku C++ i Java?
- 27. Jakie są alternatywy dla użycia ORDER BY w Podzapytanie w API JPA Criteria?
- 28. Alternatywy dla członkostwa .Net
- 29. Darmowe alternatywy dla Kodów?
- 30. Alternatywy dla JUnit
To wydaje się obecnie nieaktualne.Wymieniony poniżej Pry zyskał wystarczającą dynamikę, która wydaje się być preferowaną alternatywą dla irb. –
Dzięki za wskaźnik do Pry. Wygląda świetnie! Ma inny cel niż irbtools - robi więcej introspekcji kodu. Już nie będę zazdrosny o REPL Pythona. :) Nie sądzę jednak, że irbtools jest nieaktualny, ponieważ został zaktualizowany dla Rails 3 i nadal działa dla mnie. –
Bardziej aktualna strona główna projektu: https://github.com/janlelis/irbtools –