Book description
Ksišżka znacznie przyspieszy Twojš pracę. Znajdziesz tu kilkaset praktycznych rozwišzań problemów wraz z przejrzystym komentarzem oraz tysišce wierszy proponowanego kodu, który...
Publisher resources
Table of contents
- Ruby. Receptury
- Dedykacja
- Wprowadzenie
-
1. Łańcuchy
- 1.1. Budowanie łańcucha z części
- 1.2. Zastępowanie zmiennych w tworzonym łańcuchu
- 1.3. Zastępowanie zmiennych w istniejącym łańcuchu
- 1.4. Odwracanie kolejności słów lub znaków w łańcuchu
- 1.5. Reprezentowanie znaków niedrukowalnych
- 1.6. Konwersja między znakami a kodami
- 1.7. Konwersja między łańcuchami a symbolami
- 1.8. Przetwarzanie kolejnych znaków łańcucha
- 1.9. Przetwarzanie poszczególnych słów łańcucha
- 1.10. Zmiana wielkości liter w łańcuchu
- 1.11. Zarządzanie białymi znakami
- 1.12. Czy można potraktować dany obiekt jak łańcuch?
- 1.13. Wyodrębnianie części łańcucha
- 1.14. Obsługa międzynarodowego kodowania
- 1.15. Zawijanie wierszy tekstu
- 1.16. Generowanie następnika łańcucha
- 1.17. Dopasowywanie łańcuchów za pomocą wyrażeń regularnych
- 1.18. Zastępowanie wielu wzorców w pojedynczym przebiegu
- 1.19. Weryfikacja poprawności adresów e-mailowych
- 1.20. Klasyfikacja tekstu za pomocą analizatora bayesowskiego
-
2. Liczby
- 2.1. Przekształcanie łańcucha w liczbę
- 2.2. Porównywanie liczb zmiennopozycyjnych
- 2.3. Reprezentowanie liczb z dowolną dokładnością
- 2.4. Reprezentowanie liczb wymiernych
- 2.5. Generowanie liczb pseudolosowych
- 2.6. Konwersje między różnymi podstawami liczenia
- 2.7. Logarytmy
- 2.8. Średnia, mediana i moda
- 2.9. Konwersja stopni na radiany i odwrotnie
- 2.10. Mnożenie macierzy
- 2.11. Rozwiązywanie układu równań liniowych
- 2.12. Liczby zespolone
- 2.13. Symulowanie subklasingu klasy Fixnum
- 2.14. Arytmetyka liczb w zapisie rzymskim
- 2.15. Generowanie sekwencji liczb
- 2.16. Generowanie liczb pierwszych
- 2.17. Weryfikacja sumy kontrolnej w numerze karty kredytowej
-
3. Data i czas
- 3.1. Odczyt dzisiejszej daty
- 3.2. Dekodowanie daty, dokładne i przybliżone
- 3.3. Drukowanie dat
- 3.4. Iterowanie po datach
- 3.5. Arytmetyka dat
- 3.6. Obliczanie dystansu między datami
- 3.7. Konwersja czasu między strefami czasowymi
- 3.8. Czas letni
- 3.9. Konwersje między obiektami Time i DateTime
- 3.10. Jaki to dzień tygodnia?
- 3.11. Obsługa dat biznesowych
- 3.12. Periodyczne wykonywanie bloku kodu
- 3.13. Oczekiwanie przez zadany odcinek czasu
- 3.14. Przeterminowanie wykonania
-
4. Tablice
- 4.1. Iterowanie po elementach tablicy
- 4.2. Wymiana zawartości bez używania zmiennych pomocniczych
- 4.3. Eliminowanie zdublowanych wartości
- 4.4. Odwracanie kolejności elementów w tablicy
- 4.5. Sortowanie tablicy
- 4.6. Sortowanie łańcuchów bez rozróżniania wielkości liter
- 4.7. Zabezpieczanie tablic przed utratą posortowania
- 4.8. Sumowanie elementów tablicy
- 4.9. Sortowanie elementów tablicy według częstości występowania
- 4.10. Tasowanie tablicy
- 4.11. Znajdowanie N najmniejszych elementów tablicy
- 4.12. Tworzenie hasza za pomocą iteratora inject
- 4.13. Ekstrahowanie wybranych elementów z tablicy
- 4.14. Operacje teoriomnogościowe na tablicach
- 4.15. Partycjonowanie i klasyfikacja elementów zbioru
-
5. Hasze
- 5.1. Wykorzystywanie symboli jako kluczy
- 5.2. Wartości domyślne w haszach
- 5.3. Dodawanie elementów do hasza
- 5.4. Usuwanie elementów z hasza
- 5.5. Tablice i inne modyfikowalne obiekty w roli kluczy
- 5.6. Kojarzenie wielu wartości z tym samym kluczem
- 5.7. Iterowanie po zawartości hasza
- 5.8. Iterowanie po elementach hasza w kolejności ich wstawiania
- 5.9. Drukowanie hasza
- 5.10. Inwersja elementów hasza
- 5.11. Losowy wybór z listy zdarzeń o różnych prawdopodobieństwach
- 5.12. Tworzenie histogramu
- 5.13. Odwzorowanie zawartości dwóch haszów
- 5.14. Ekstrakcja fragmentów zawartości haszów
- 5.15. Przeszukiwanie hasza przy użyciu wyrażeń regularnych
-
6. Pliki i katalogi
- 6.1. Czy taki plik istnieje?
- 6.2. Sprawdzanie uprawnień dostępu do plików
- 6.3. Zmiana uprawnień dostępu do plików
- 6.4. Sprawdzanie, kiedy plik był ostatnio używany
- 6.5. Przetwarzanie zawartości katalogu
- 6.6. Odczytywanie zawartości pliku
- 6.7. Zapis do pliku
- 6.8. Zapis do pliku tymczasowego
- 6.9. Losowy wybór wiersza z pliku
- 6.10. Porównywanie dwóch plików
- 6.11. Swobodne nawigowanie po „jednokrotnie odczytywalnych” strumieniach wejściowych
- 6.12. Wędrówka po drzewie katalogów
- 6.13. Szeregowanie dostępu do pliku
- 6.14. Tworzenie wersjonowanych kopii pliku
- 6.15. Łańcuchy udające pliki
- 6.16. Przekierowywanie standardowego wejścia i standardowego wyjścia
- 6.17. Przetwarzanie plików binarnych
- 6.18. Usuwanie pliku
- 6.19. Obcinanie pliku
- 6.20. Znajdowanie plików o określonej własności
- 6.21. Odczytywanie i zmiana bieżącego katalogu roboczego
-
7. Bloki kodowe i iteracje
- 7.1. Tworzenie i wywoływanie bloku kodowego
- 7.2. Tworzenie metod wykorzystujących bloki kodowe
- 7.3. Przypisywanie bloku kodowego do zmiennej
- 7.4. Bloki kodowe jako domknięcia: odwołania do zmiennych zewnętrznych w treści bloku kodowego
- 7.5. Definiowanie iteratora dla struktury danych
- 7.6. Zmiana sposobu iterowania po strukturze danych
- 7.7. Nietypowe metody klasyfikujące i kolekcjonujące
- 7.8. Zatrzymywanie iteracji
- 7.9. Iterowanie równoległe
- 7.10. Kod inicjujący i kończący dla bloku kodowego
- 7.11. Tworzenie systemów luźno powiązanych przy użyciu odwołań zwrotnych
-
8. Obiekty i klasy
- 8.1. Zarządzanie danymi instancyjnymi
- 8.2. Zarządzanie danymi klasowymi
- 8.3. Weryfikacja funkcjonalności obiektu
- 8.4. Tworzenie klasy pochodnej
- 8.5. Przeciążanie metod
- 8.6. Weryfikacja i modyfikowanie wartości atrybutów
- 8.7. Definiowanie wirtualnych atrybutów
- 8.8. Delegowanie wywołań metod do innego obiektu
- 8.9. Konwersja i koercja typów obiektów
- 8.10. Prezentowanie obiektu w postaci czytelnej dla człowieka
- 8.11. Metody wywoływane ze zmienną liczbą argumentów
- 8.12. Symulowanie argumentów zawierających słowa kluczowe
- 8.13. Wywoływanie metod superklasy
- 8.14. Definiowanie metod abstrakcyjnych
- 8.15. Zamrażanie obiektów w celu ich ochrony przed modyfikacją
- 8.16. Tworzenie kopii obiektu
- 8.17. Deklarowanie stałych
- 8.18. Implementowanie metod klasowych i metod-singletonów
- 8.19. Kontrolowanie dostępu — metody prywatne, publiczne i chronione
-
9. Moduły i przestrzenie nazw
- 9.1. Symulowanie wielokrotnego dziedziczenia za pomocą modułów-domieszek
- 9.2. Rozszerzanie wybranych obiektów za pomocą modułów
- 9.3. Rozszerzanie repertuaru metod klasowych za pomocą modułów
- 9.4. Moduł Enumerable — zaimplementuj jedną metodę, dostaniesz 22 za darmo
- 9.5. Unikanie kolizji nazw dzięki ich kwalifikowaniu
- 9.6. Automatyczne ładowanie bibliotek na żądanie
- 9.7. Importowanie przestrzeni nazw
- 9.8. Inicjowanie zmiennych instancyjnych dołączanego modułu
- 9.9. Automatyczne inicjowanie modułów-domieszek
-
10. Odzwierciedlenia i metaprogramowanie
- 10.1. Identyfikacja klasy obiektu i jej superklasy
- 10.2. Zestaw metod obiektu
- 10.3. Lista metod unikalnych dla obiektu
- 10.4. Uzyskiwanie referencji do metody
- 10.5. Poprawianie błędów w „obcych” klasach
- 10.6. Śledzenie zmian dokonywanych w danej klasie
- 10.7. Weryfikacja atrybutów obiektu
- 10.8. Reagowanie na wywołania niezdefiniowanych metod
- 10.9. Automatyczne inicjowanie zmiennych instancyjnych
- 10.10. Oszczędne kodowanie dzięki metaprogramowaniu
- 10.11. Metaprogramowanie z użyciem ewaluacji łańcuchów
- 10.12. Ewaluacja kodu we wcześniejszym kontekście
- 10.13. Anulowanie definicji metody
- 10.14. Aliasowanie metod
- 10.15. Programowanie zorientowane aspektowo
- 10.16. Wywołania kontraktowane
-
11. XML i HTML
- Patrz także
- 11.1. Sprawdzanie poprawności dokumentu XML
- 11.2. Ekstrakcja informacji z drzewa dokumentu
- 11.3. Ekstrakcja informacji w trakcie analizy dokumentu XML
- 11.4. Nawigowanie po dokumencie za pomocą XPath
- 11.5. Parsowanie błędnych dokumentów
- 11.6. Konwertowanie dokumentu XML na hasz
- 11.7. Walidacja dokumentu XML
- 11.8. Zastępowanie encji XML
- 11.9. Tworzenie i modyfikowanie dokumentów XML
- 11.10. Kompresowanie białych znaków w dokumencie XML
- 11.11. Autodetekcja standardu kodowania znaków w dokumencie
- 11.12. Konwersja dokumentu między różnymi standardami kodowania
- 11.13. Ekstrakcja wszystkich adresów URL z dokumentu HTML
- 11.14. Transformacja tekstu otwartego na format HTML
- 11.15. Konwertowanie ściągniętego z internetu dokumentu HTML na tekst
- 11.16. Prosty czytnik kanałów
-
12. Formaty plików graficznych i innych
- 12.1. Tworzenie miniaturek
- 12.2. Dodawanie tekstu do grafiki
- 12.3. Konwersja formatów plików graficznych
- 12.4. Tworzenie wykresów
- 12.5. Wprowadzanie graficznego kontekstu za pomocą wykresów typu Sparkline
- 12.6. Silne algorytmy szyfrowania danych
- 12.7. Przetwarzanie danych rozdzielonych przecinkami
- 12.8. Przetwarzanie plików tekstowych nie w pełni zgodnych z formatem CSV
- 12.9. Generowanie i przetwarzanie arkuszy Excela
- 12.10. Kompresowanie i archiwizowanie plików za pomocą narzędzi Gzip i Tar
- 12.11. Czytanie i zapisywanie plików ZIP
- 12.12. Czytanie i zapisywanie plików konfiguracyjnych
- 12.13. Generowanie plików PDF
- 12.14. Reprezentowanie danych za pomocą plików muzycznych MIDI
-
13. Bazy danych i trwałość obiektów
- 13.1. Serializacja danych za pomocą biblioteki YAML
- 13.2. Serializacja danych z wykorzystaniem modułu Marshal
- 13.3. Utrwalanie obiektów z wykorzystaniem biblioteki Madeleine
- 13.4. Indeksowanie niestrukturalnego tekstu z wykorzystaniem biblioteki SimpleSearch
- 13.5. Indeksowanie tekstu o określonej strukturze z wykorzystaniem biblioteki Ferret
- 13.6. Wykorzystywanie baz danych Berkeley DB
- 13.7. Zarządzanie bazą danych MySQL w systemie Unix
- 13.8. Zliczanie wierszy zwracanych przez zapytanie
- 13.9. Bezpośrednia komunikacja z bazą danych MySQL
- 13.10. Bezpośrednia komunikacja z bazą danych PostgreSQL
- 13.11. Mapowanie obiektowo-relacyjne z wykorzystaniem biblioteki ActiveRecord
- 13.12. Mapowanie obiektowo-relacyjne z wykorzystaniem biblioteki Og
- 13.13. Programowe tworzenie zapytań
- 13.14. Sprawdzanie poprawności danych z wykorzystaniem biblioteki ActiveRecord
- 13.15. Zapobieganie atakom typu SQL Injection
- 13.16. Obsługa transakcji z wykorzystaniem biblioteki ActiveRecord
- 13.17. Definiowanie haków dotyczących zdarzeń związanych z tabelami
- 13.18. Oznaczanie tabel bazy danych z wykorzystaniem modułów-domieszek
-
14. Usługi internetowe
- 14.1. Pobieranie zawartości strony WWW
- 14.2. Obsługa żądań HTTPS
- 14.3. Dostosowywanie nagłówków żądań HTTP
- 14.4. Wykonywanie zapytań DNS
- 14.5. Wysyłanie poczty elektronicznej
- 14.6. Czytanie poczty z serwera IMAP
- 14.7. Czytanie poczty z wykorzystaniem protokołu POP3
- 14.8. Implementacja klienta FTP
- 14.9. Implementacja klienta telnet
- 14.10. Implementacja klienta SSH
- 14.11. Kopiowanie plików do innego komputera
- 14.12. Implementacja klienta BitTorrent
- 14.13. Wysyłanie sygnału ping do zdalnego komputera
- 14.14. Implementacja własnego serwera internetowego
- 14.15. Przetwarzanie adresów URL
- 14.16. Pisanie skryptów CGI
- 14.17. Ustawianie plików cookie i innych nagłówków odpowiedzi HTTP
- 14.18. Obsługa przesyłania plików na serwer z wykorzystaniem CGI
- 14.19. Uruchamianie serwletów WEBrick
- 14.20. Własny klient HTTP
-
15. Projektowanie aplikacji internetowych: Ruby on Rails
- 15.1. Prosta aplikacja Rails wyświetlająca informacje o systemie
- 15.2. Przekazywanie danych ze sterownika do widoku
- 15.3. Tworzenie układu nagłówka i stopki
- 15.4. Przekierowania do innych lokalizacji
- 15.5. Wyświetlanie szablonów za pomocą metody render
- 15.6. Integracja baz danych z aplikacjami Rails
- 15.7. Reguły pluralizacji
- 15.8. Tworzenie systemu logowania
- 15.9. Zapisywanie haseł użytkowników w bazie danych w postaci skrótów
- 15.10. Unieszkodliwianie kodu HTML i JavaScript przed wyświetlaniem
- 15.11. Ustawianie i odczytywanie informacji o sesji
- 15.12. Ustawianie i odczytywanie plików cookie
- 15.13. Wyodrębnianie kodu do modułów pomocniczych
- 15.14. Rozdzielenie widoku na kilka części
- 15.15. Dodawanie efektów DHTML z wykorzystaniem biblioteki script.aculo.us
- 15.16. Generowanie formularzy do modyfikowania obiektów modelu
- 15.17. Tworzenie formularzy Ajax
- 15.18. Udostępnianie usług sieciowych w witrynie WWW
- 15.19. Przesyłanie wiadomości pocztowych za pomocą aplikacji Rails
- 15.20. Automatyczne wysyłanie komunikatów o błędach pocztą elektroniczną
- 15.21. Tworzenie dokumentacji witryny WWW
- 15.22. Testy modułowe witryny WWW
- 15.23. Wykorzystywanie pułapek w aplikacjach internetowych
-
16. Usługi sieciowe i programowanie rozproszone
- 16.1. Wyszukiwanie książek w serwisie Amazon
- 16.2. Wyszukiwanie zdjęć w serwisie Flickr
- 16.3. Jak napisać klienta XML-RPC?
- 16.4. Jak napisać klienta SOAP?
- 16.5. Jak napisać serwer SOAP?
- 16.6. Wyszukiwanie w internecie z wykorzystaniem usługi sieciowej serwisu Google
- 16.7. Wykorzystanie pliku WSDL w celu ułatwienia wywołań SOAP
- 16.8. Płatności kartami kredytowymi
- 16.9. Odczytywanie kosztów przesyłki w serwisie UPS lub FedEx
- 16.10. Współdzielenie haszów przez dowolną liczbę komputerów
- 16.11. Implementacja rozproszonej kolejki
- 16.12. Tworzenie współdzielonej „tablicy ogłoszeń”
- 16.13. Zabezpieczanie usług DRb za pomocą list kontroli dostępu
- 16.14. Automatyczne wykrywanie usług DRb z wykorzystaniem biblioteki Rinda
- 16.15. Wykorzystanie obiektów pośredniczących
- 16.16. Zapisywanie danych w rozproszonej pamięci RAM z wykorzystaniem systemu MemCached
- 16.17. Buforowanie kosztownych obliczeniowo wyników za pomocą systemu MemCached
- 16.18. Zdalnie sterowana „szafa grająca”
-
17. Testowanie, debugowanie, optymalizacja i tworzenie dokumentacji
- 17.1. Uruchamianie kodu wyłącznie w trybie debugowania
- 17.2. Generowanie wyjątków
- 17.3. Obsługa wyjątków
- 17.4. Ponawianie próby wykonania kodu po wystąpieniu wyjątku
- 17.5. Mechanizmy rejestrowania zdarzeń w aplikacji
- 17.6. Tworzenie i interpretowanie stosu wywołań
- 17.7. Jak pisać testy modułowe?
- 17.8. Uruchamianie testów modułowych
- 17.9. Testowanie kodu korzystającego z zewnętrznych zasobów
- 17.10. Wykorzystanie pułapek do kontroli i modyfikacji stanu aplikacji
- 17.11. Tworzenie dokumentacji aplikacji
- 17.12. Profilowanie aplikacji
- 17.13. Pomiar wydajności alternatywnych rozwiązań
- 17.14. Wykorzystywanie wielu narzędzi analitycznych jednocześnie
- 17.15. Co wywołuje tę metodę? Graficzny analizator wywołań
-
18. Tworzenie pakietów oprogramowania i ich dystrybucja
- 18.1. Wyszukiwanie bibliotek poprzez kierowanie zapytań do repozytoriów gemów
- 18.2. Instalacja i korzystanie z gemów
- 18.3. Wymaganie określonej wersji gemu
- 18.4. Odinstalowywanie gemów
- 18.5. Czytanie dokumentacji zainstalowanych gemów
- 18.6. Tworzenie pakietów kodu w formacie gemów
- 18.7. Dystrybucja gemów
- 18.8. Instalacja i tworzenie samodzielnych pakietów z wykorzystaniem skryptu setup.rb
-
19. Automatyzacja zadań z wykorzystaniem języka Rake
- 19.1. Automatyczne uruchamianie testów modułowych
- 19.2. Automatyczne generowanie dokumentacji
- 19.3. Porządkowanie wygenerowanych plików
- 19.4. Automatyczne tworzenie gemów
- 19.5. Pobieranie informacji statystycznych dotyczących kodu
- 19.6. Publikowanie dokumentacji
- 19.7. Równoległe uruchamianie wielu zadań
- 19.8. Uniwersalny plik Rakefile
-
20. Wielozadaniowość i wielowątkowość
- 20.1. Uruchamianie procesu-demona w systemie Unix
- 20.2. Tworzenie usług systemu Windows
- 20.3. Wykonywanie dwóch operacji jednocześnie z wykorzystaniem wątków
- 20.4. Synchronizacja dostępu do obiektu
- 20.5. Niszczenie wątków
- 20.6. Równoległe uruchamianie bloku kodu dla wielu obiektów
- 20.7. Ograniczanie liczby wątków z wykorzystaniem ich puli
- 20.8. Sterowanie zewnętrznym procesem za pomocą metody popen
- 20.9. Przechwytywanie strumienia wyjściowego i informacji o błędach z polecenia powłoki w systemie Unix
- 20.10. Zarządzanie procesami w innym komputerze
- 20.11. Unikanie zakleszczeń
-
21. Interfejs użytkownika
- Zasoby
- 21.1. Pobieranie danych wejściowych wiersz po wierszu
- 21.2. Pobieranie danych wejściowych znak po znaku
- 21.3. Przetwarzanie argumentów wiersza polecenia
- 21.4. Sprawdzenie, czy program działa w trybie interaktywnym
- 21.5. Konfiguracja i porządkowanie po programie wykorzystującym bibliotekę Curses
- 21.6. Czyszczenie ekranu
- 21.7. Określenie rozmiaru terminala
- 21.8. Zmiana koloru tekstu
- 21.9. Odczytywanie haseł
- 21.10. Edycja danych wejściowych z wykorzystaniem biblioteki Readline
- 21.11. Sterowanie migotaniem diod na klawiaturze
- 21.12. Tworzenie aplikacji GUI z wykorzystaniem biblioteki Tk
- 21.13. Tworzenie aplikacji GUI z wykorzystaniem biblioteki wxRuby
- 21.14. Tworzenie aplikacji GUI z wykorzystaniem biblioteki Ruby/GTK
- 21.15. Tworzenie aplikacji Mac OS X z wykorzystaniem biblioteki RubyCocoa
- 21.16. Wykorzystanie AppleScript do pobierania danych wejściowych od użytkownika
- 22. Rozszerzenia języka Ruby z wykorzystaniem innych języków
-
23. Administrowanie systemem
- 23.1. Pisanie skryptów zarządzających zewnętrznymi programami
- 23.2. Zarządzanie usługami systemu Windows
- 23.3. Uruchamianie kodu w imieniu innego użytkownika
- 23.4. Okresowe uruchamianie zadań bez używania mechanizmu cron lub at
- 23.5. Usuwanie plików, których nazwy spełniają kryteria określone przez wyrażenie regularne
- 23.6. Zmiana nazw grupy plików
- 23.7. Wyszukiwanie plików zdublowanych
- 23.8. Automatyczne wykonywanie kopii zapasowych
- 23.9. Ujednolicanie własności i uprawnień w katalogach użytkowników
- 23.10. Niszczenie wszystkich procesów wybranego użytkownika
- A. O autorach
- Indeks
- Kolofon
- Copyright
Product information
- Title: Ruby. Receptury
- Author(s):
- Release date: November 2012
- Publisher(s): Helion
- ISBN: 9781457177415
You might also like
book
Learning SQL, 3rd Edition
As data floods into your company, you need to put it to work right away—and SQL …
book
Python for Excel
While Excel remains ubiquitous in the business world, recent Microsoft feedback forums are full of requests …
book
Python Crash Course, 3rd Edition
Python Crash Course is the world's best-selling guide to the Python guide programming language, with over …
book
Explore It!
Uncover surprises, risks, and potentially serious bugs with exploratory testing. Rather than designing all tests in …