Czy istnieje samouczek, który uczy popularnych idiomów programowania Ruby używanych przez doświadczonych programistów,ale może nie być oczywisty dla początkujących? [zamknięte]

Obecnie pytanie to nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub wiedzą specjalistyczną, ale to pytanie będzie prawdopodobnie wywoływało debatę, argumenty, ankiety lub rozszerzoną dyskusję. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź Pomoc centrum dla wskazówek. Zamknięte 8 lat temu .

Szukam odpowiednika Ruby dla kodu podobnego do Pythonisty: Idiomatic Python

Pożądane cechy:

  • łatwy do odczytania
  • jednolity dokument, który obejmuje wszystkie tematy: wskazówki, wskazówki, wskazówki, zastrzeżenia i pułapki
  • rozmiar mniejszy niż książka
  • idiomy powinny zadziałać z pudełka do dystrybucji standardowej(% sudo apt-get install ruby irb rdoc)

Proszę umieścić jeden samouczek na odpowiedź, jeśli to możliwe, z przykładowym kodem z samouczka i jego znaczeniem.

Aktualizacja:

Są to najbardziej zbliżone do powyższego opisu zasoby, z którymi się spotkałem:

 30
Author: jfs, 2008-09-17

8 answers

Ruby Idioms (oryginalnie z RubyGarden) jest moim zwykłym odniesieniem do idiomów. Jest wyraźnie zorganizowany i dość kompletny. Jak mówi autor, są one z RubyGarden, które kiedyś były naprawdę fajne (dzięki Wayback Machine). Ale teraz wydaje się być offline .

 12
Author: Gordon Wilson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-19 18:36:25

Oto pokaz slajdów: Idiomatic Ruby .

Fragment:

'until' działa jak 'while not'

  x = x * 2 until x > 100
 9
Author: AShelly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-18 00:01:11

Proponowałbym odwieczną klasykę: Dlaczego jest przejmujący przewodnik

To zarówno wprowadzenie do Ruby, jak i dochodzenie w sprawie sposobu Ruby.

 6
Author: Toby Hede,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-28 03:52:19

Sprawdź The Ruby Way i The Rails Way , nie są to samouczki, ale myślę, że obejmą to, czego szukasz.

 4
Author: Lolindrath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-03 15:17:13

Chociaż nie jest to samouczek, oto blog, który znajdziesz na temat

Http://its.arubything.com/

 3
Author: Jeff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 18:09:18

A może skromna książeczka Pana Neigborly ' ego

Fragment:

IO.foreach("textfile.txt") {|line| puts line }
 3
Author: assplecake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-28 03:21:30

Wykonywalny przewodnik do zrozumienia zamknięć Rubiego, closures-in-ruby.rb .

 1
Author: Otto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-31 00:44:24

Znalazłem niedawno tego bloga. Jeszcze się w to nie wdałem, a kilka postów, które przeczytałem, było trochę początkujące. YMMV

Http://blog.rubybestpractices.com/

 1
Author: Henry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-21 23:09:35