Ruby Receptury.pdf

(409 KB) Pobierz
Ruby. Receptury
Ruby. Receptury
Autorzy: Lucas Carlson, Leonard Richardson
T³umaczenie: Andrzej Gra¿yñski, Rados³aw Meryk
ISBN: 83-246-0768-4
Tytu³ orygina³ u: Ruby Cookbook
Format: B5, stron: 888
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Zbiór gotowych rozwi¹zañ dla programistów u¿ywaj¹cych jêzyka Ruby
Jak przetwarzaæ pliki XML i HTML?
Jak wykorzystywaæ œrodowisko Ruby on Rails?
W jaki sposób ³¹czyæ Ruby z technologi¹ AJAX?
Korzystasz w pracy z jêzyka Ruby i zastanawiasz siê, czy niektóre zadania
programistyczne mo¿na wykonaæ szybciej? Chcesz poznaæ zasady programowania
obiektowego w Ruby? A mo¿e interesuje Ciê framework Ruby on Rails? Jêzyk Ruby
zdobywa coraz wiêksz¹ popularnoœæ, jest wykorzystywany do tworzenia aplikacji
sieciowych i sta³ siê podstaw¹ œrodowiska Ruby on Rails. Jednak nawet najlepszy
jêzyk programowania nie uwalnia programistów od ¿mudnego realizowania zadañ,
które nie maj¹ zbyt wiele wspólnego z tworzeniem aplikacji, czyli usuwania b³êdów,
implementowania typowych algorytmów, poszukiwania rozwi¹zañ mniej lub bardziej
typowych problemów i wielu innych.
Ksi¹¿ka „Ruby. Receptury” znacznie przyspieszy Twoj¹ pracê. Znajdziesz tu kilkaset
praktycznych rozwi¹zañ problemów wraz z przejrzystym komentarzem oraz tysi¹ce
wierszy proponowanego kodu, który bêdziesz móg³ wykorzystaæ w swoich projektach.
Przeczytasz o strukturach danych, algorytmach, przetwarzaniu plików XML i HTML,
tworzeniu interfejsów u¿ytkownika dla aplikacji i po³¹czeniach z bazami danych.
Nauczysz siê generowaæ i obrabiaæ pliki graficzne, korzystaæ z us³ug sieciowych,
wyszukiwaæ i usuwaæ b³êdy w aplikacjach, a tak¿e pisaæ skrypty niezwykle pomocne
w administrowaniu systemem operacyjnym Linux.
Przetwarzanie danych tekstowych i liczbowych
Operacje na tablicach
Praca z systemem plików
Programowanie obiektowe
Przetwarzanie dokumentów XML i HTML oraz plików graficznych
Generowanie plików PDF
Po³¹czenie z bazami danych
Korzystanie z poczty elektronicznej, protoko³u telnet i po³¹czeñ Torrent
Projektowanie aplikacji internetowych za pomoc¹ Ruby on Rails
Stosowanie us³ug sieciowych
Optymalizacja aplikacji
Tworzenie wersji dystrybucyjnych
Automatyzacja zadañ z wykorzystaniem jêzyka Rake
Budowanie interfejsów u¿ytkownika
Jeœli chcesz rozwi¹zaæ problem, skorzystaj z gotowej receptury — ko³o ju¿ wynaleziono
400258792.002.png 400258792.003.png 400258792.004.png 400258792.005.png
Spis treści
Wprowadzenie .............................................................................................................. 17
1. Łańcuchy ........................................................................................................................29
1.1. Budowanie łańcucha z części
32
1.2. Zastępowanie zmiennych w tworzonym łańcuchu
34
1.3. Zastępowanie zmiennych w istniejącym łańcuchu
35
1.4. Odwracanie kolejności słów lub znaków w łańcuchu
37
1.5. Reprezentowanie znaków niedrukowalnych
39
1.6. Konwersja między znakami a kodami
41
1.7. Konwersja między łańcuchami a symbolami
42
1.8. Przetwarzanie kolejnych znaków łańcucha
43
1.9. Przetwarzanie poszczególnych słów łańcucha
45
1.10. Zmiana wielkości liter w łańcuchu
47
1.11. Zarządzanie białymi znakami
48
1.12. Czy można potraktować dany obiekt jak łańcuch?
49
1.13. Wyodrębnianie części łańcucha
51
1.14. Obsługa międzynarodowego kodowania
52
1.15. Zawijanie wierszy tekstu
53
1.16. Generowanie następnika łańcucha
55
1.17. Dopasowywanie łańcuchów za pomocą wyrażeń regularnych
58
1.18. Zastępowanie wielu wzorców w pojedynczym przebiegu
60
1.19. Weryfikacja poprawności adresów e-mailowych
61
1.20. Klasyfikacja tekstu za pomocą analizatora bayesowskiego
64
2. Liczby ............................................................................................................................. 67
2.1. Przekształcanie łańcucha w liczbę
68
2.2. Porównywanie liczb zmiennopozycyjnych
70
2.3. Reprezentowanie liczb z dowolną dokładnością
73
5
400258792.001.png
2.4. Reprezentowanie liczb wymiernych
76
2.5. Generowanie liczb pseudolosowych
77
2.6. Konwersje między różnymi podstawami liczenia
79
2.7. Logarytmy
80
2.8. Średnia, mediana i moda
83
2.9. Konwersja stopni na radiany i odwrotnie
85
2.10. Mnożenie macierzy
87
2.11. Rozwiązywanie układu równań liniowych
91
2.12. Liczby zespolone
94
2.13. Symulowanie subklasingu klasy Fixnum
96
2.14. Arytmetyka liczb w zapisie rzymskim
100
2.15. Generowanie sekwencji liczb
105
2.16. Generowanie liczb pierwszych
107
2.17. Weryfikacja sumy kontrolnej w numerze karty kredytowej
111
3. Data i czas .....................................................................................................................113
3.1. Odczyt dzisiejszej daty
115
3.2. Dekodowanie daty, dokładne i przybliżone
119
3.3. Drukowanie dat
122
3.4. Iterowanie po datach
126
3.5. Arytmetyka dat
127
3.6. Obliczanie dystansu między datami
129
3.7. Konwersja czasu między strefami czasowymi
131
3.8. Czas letni
134
3.9. Konwersje między obiektami Time i DateTime
135
3.10. Jaki to dzień tygodnia?
138
3.11. Obsługa dat biznesowych
139
3.12. Periodyczne wykonywanie bloku kodu
140
3.13. Oczekiwanie przez zadany odcinek czasu
142
3.14. Przeterminowanie wykonania
145
4. Tablice.......................................................................................................................... 147
4.1. Iterowanie po elementach tablicy
149
4.2. Wymiana zawartości bez używania zmiennych pomocniczych
152
4.3. Eliminowanie zdublowanych wartości
154
4.4. Odwracanie kolejności elementów w tablicy
155
4.5. Sortowanie tablicy
156
4.6. Sortowanie łańcuchów bez rozróżniania wielkości liter
158
4.7. Zabezpieczanie tablic przed utratą posortowania
159
6 | Spis treści
4.8. Sumowanie elementów tablicy
164
4.9. Sortowanie elementów tablicy według częstości występowania
165
4.10. Tasowanie tablicy
167
4.11. Znajdowanie N najmniejszych elementów tablicy
168
4.12. Tworzenie hasza za pomocą iteratora inject
170
4.13. Ekstrahowanie wybranych elementów z tablicy
172
4.14. Operacje teoriomnogościowe na tablicach
175
4.15. Partycjonowanie i klasyfikacja elementów zbioru
177
5. Hasze ........................................................................................................................... 183
5.1. Wykorzystywanie symboli jako kluczy
186
5.2. Wartości domyślne w haszach
187
5.3. Dodawanie elementów do hasza
189
5.4. Usuwanie elementów z hasza
191
5.5. Tablice i inne modyfikowalne obiekty w roli kluczy
193
5.6. Kojarzenie wielu wartości z tym samym kluczem
195
5.7. Iterowanie po zawartości hasza
196
5.8. Iterowanie po elementach hasza w kolejności ich wstawiania
200
5.9. Drukowanie hasza
201
5.10. Inwersja elementów hasza
203
5.11. Losowy wybór z listy zdarzeń o różnych prawdopodobieństwach
204
5.12. Tworzenie histogramu
207
5.13. Odwzorowanie zawartości dwóch haszów
209
5.14. Ekstrakcja fragmentów zawartości haszów
210
5.15. Przeszukiwanie hasza przy użyciu wyrażeń regularnych
211
6. Pliki i katalogi .............................................................................................................. 213
6.1. Czy taki plik istnieje?
216
6.2. Sprawdzanie uprawnień dostępu do plików
218
6.3. Zmiana uprawnień dostępu do plików
220
6.4. Sprawdzanie, kiedy plik był ostatnio używany
223
6.5. Przetwarzanie zawartości katalogu
224
6.6. Odczytywanie zawartości pliku
227
6.7. Zapis do pliku
230
6.8. Zapis do pliku tymczasowego
232
6.9. Losowy wybór wiersza z pliku
233
6.10. Porównywanie dwóch plików
234
6.11. Swobodne nawigowanie po „jednokrotnie odczytywalnych”
strumieniach wejściowych
238
Spis treści | 7
6.12. Wędrówka po drzewie katalogów
240
6.13. Szeregowanie dostępu do pliku
242
6.14. Tworzenie wersjonowanych kopii pliku
245
6.15. Łańcuchy udające pliki
248
6.16. Przekierowywanie standardowego wejścia i standardowego wyjścia
250
6.17. Przetwarzanie plików binarnych
252
6.18. Usuwanie pliku
255
6.19. Obcinanie pliku
257
6.20. Znajdowanie plików o określonej własności
258
6.21. Odczytywanie i zmiana bieżącego katalogu roboczego
260
7. Bloki kodowe i iteracje ...............................................................................................263
7.1. Tworzenie i wywoływanie bloku kodowego
265
7.2. Tworzenie metod wykorzystujących bloki kodowe
267
7.3. Przypisywanie bloku kodowego do zmiennej
269
7.4. Bloki kodowe jako domknięcia: odwołania do zmiennych zewnętrznych
w treści bloku kodowego
272
7.5. Definiowanie iteratora dla struktury danych
273
7.6. Zmiana sposobu iterowania po strukturze danych
276
7.7. Nietypowe metody klasyfikujące i kolekcjonujące
278
7.8. Zatrzymywanie iteracji
279
7.9. Iterowanie równoległe
281
7.10. Kod inicjujący i kończący dla bloku kodowego
285
7.11. Tworzenie systemów luźno powiązanych przy użyciu odwołań zwrotnych
287
8. Obiekty i klasy .............................................................................................................291
8.1. Zarządzanie danymi instancyjnymi
294
8.2. Zarządzanie danymi klasowymi
296
8.3. Weryfikacja funkcjonalności obiektu
299
8.4. Tworzenie klasy pochodnej
301
8.5. Przeciążanie metod
303
8.6. Weryfikacja i modyfikowanie wartości atrybutów
305
8.7. Definiowanie wirtualnych atrybutów
307
8.8. Delegowanie wywołań metod do innego obiektu
308
8.9. Konwersja i koercja typów obiektów
311
8.10. Prezentowanie obiektu w postaci czytelnej dla człowieka
315
8.11. Metody wywoływane ze zmienną liczbą argumentów
317
8.12. Symulowanie argumentów zawierających słowa kluczowe
319
8.13. Wywoływanie metod superklasy
321
8 | Spis treści
Zgłoś jeśli naruszono regulamin