Po pierwsze, jeli w programie Ruby zawarty jest komentarz shebang (#!) informujcy systemy operacyjne typu Unix, jak go uruchomi , musi on znajdowa si w pierwszej linijce... 

Każdy jest innym i nikt sobą samym.


40
_
Rozdzia 2. Struktura i uruchamianie programów Ruby
Po drugie, w sytuacji gdy w programie Ruby znajduje si komentarz okrelajcy kodowanie znaków (opisane w podrozdziale 2.4.1), musi on znajdowa si w pierwszej linijce lub w drugiej,
jeli w pierwszej jest komentarz shebang.
Po trzecie, jeeli plik zawiera linijk, w której znajduje si tylko token _END_ bez adnych biaych znaków przed nim i za nim, interpreter ko czy przetwarzanie w tym miejscu. W dalszej czci pliku mog znajdowa si dowolne dane, które program moe odczytywa za pomoc
staej DATA obiektu IO (wicej informacji na temat tej staej globalnej mona znale w pod-
rozdziale 9.7 i rozdziale 10.).
Program Ruby nie musi mieci si w jednym pliku. Na przykad wiele programów aduje
kod Ruby z dodatkowych plików bibliotecznych. Do adowania kodu z innych plików suy metoda require. Szuka ona okrelonych moduów na ciece wyszukiwania i uniemoliwia zaadowanie danego moduu wicej ni jeden raz. Szczegóy na ten temat znajduj si w podrozdziale 7.6.
Poniszy kod ilustruje kady z wymienionych punktów struktury pliku z programem Ruby:
#!/usr/bin/ruby -w
Komentarz shebang.
# -*- coding: utf-8 -*-
Komentarz okrelajcy kodowanie.
require 'socket'
Zaadowanie biblioteki sieciowej.
...
Kod programu.
__END__
Koniec programu.
...
Dane programu.
2.4. Kodowanie znaków
Na najniszym poziomie program w jzyku Ruby jest cigiem znaków. Reguy leksykalne tego jzyka zostay zdefiniowane przy uyciu znaków z zestawu ASCII. Na przykad komentarze zaczynaj si od znaku # (kod ASCII 35), a dozwolone biae znaki to: tabulator po-ziomy (ASCII 9), znak nowego wiersza (10), tabulator pionowy (11), wysuw strony (12), powrót karetki (13) i spacja (32).Wszystkie sowa kluczowe jzyka Ruby zostay zapisane znakami ASCII; take wszystkie operatory i inne znaki interpunkcyjne pochodz z tego zestawu.
Domylnie interpreter Ruby przyjmuje, e kod ródowy Ruby jest zakodowany w systemie ASCII. Nie jest to jednak wymóg. Interpreter moe przetwarza take pliki zakodowane w innych
systemach zawierajcych wszystkie znaki dostpne w ASCII. Aby móg on zinterpretowa bajty pliku ródowego jako znaki, musi wiedzie , jakiego kodowania uy . Kodowanie mog
okrela pliki Ruby lub mona poinformowa o tym interpreter. Wyjanienie, jak to zrobi ,
znajduje si nieco dalej.
Interpreter Ruby jest bardzo elastyczny, jeli chodzi o znaki wystpujce w programach. Niektóre znaki ASCII maj specjalne znaczenie i nie mog by stosowane w identyfikatorach.
Poza tym program Ruby moe zawiera wszelkie znaki dozwolone przez kodowanie. Napi-
salimy wczeniej, e identyfikatory mog zawiera znaki spoza zestawu ASCII. To samo
dotyczy komentarzy, literaów a cuchowych i wyrae regularnych — mog zawiera do-
wolne znaki inne ni znak ograniczajcy oznaczajcy koniec komentarza lub literau. W plikach ASCII a cuchy mog zawiera dowolne bajty, take te, które reprezentuj niedrukowalne
znaki kontrolne (takie uycie surowych bajtów nie jest jednak zalecane; w literaach w jzyku Ruby mona stosowa symbole zastpcze, dziki czemu dowolne znaki mona wstawi przy
2.4. Kodowanie znaków
_
41
uyciu kodów liczbowych). Jeli plik jest zakodowany w systemie UTF-8, komentarze, a cuchy i wyraenia regularne mog zawiera dowolne znaki Unicode. Jeli plik jest zakodowany
w jednym z japo skich systemów — SJIS lub EUC — a cuchy mog zawiera znaki Kanji.
2.4.1. Okrelanie kodowania programu
Domylnie interpreter Ruby przyjmuje, e programy s kodowane w systemie ASCII. W Ruby 1.8 kodowanie mona zmieni za pomoc opcji wiersza polece -K. Aby uruchomi program
Ruby zawierajcy znaki Unicode w UTF-8, naley uruchomi interpreter przy uyciu opcji -Ku.
Programy zawierajce japo skie znaki w kodowaniu EUC-JP lub SJIS mona uruchomi , wy-
korzystujc opcj -Ke i -Ks.
Ruby 1.9 równie obsuguje opcj -K, ale nie jest ona ju preferowanym sposobem okrelania kodowania pliku z programem. Zamiast zmusza uytkownika skryptu do okrelenia kodo-
wania w trakcie uruchamiania Ruby, twórca skryptu moe je okreli za pomoc specjalnego
komentarza znajdujcego si na pocztku pliku1. Na przykad:
# coding: utf-8
Komentarz musi skada si wycznie ze znaków ASCII i zawiera sowo coding z dwu-
kropkiem lub znakiem równoci, po którym znajduje si nazwa wybranego kodowania (nie moe ona zawiera spacji ani znaków interpunkcyjnych z wyjtkiem mylnika i znaku pod-
krelenia). Biae znaki mog znajdowa si po obu stronach dwukropka lub znaku równoci,
a przed a cuchem coding moe znajdowa si dowolny przedrostek, jak en. W caym tym
komentarzu, wcznie ze sowem coding i nazw kodowania, nie s rozróniane wielkie i mae litery, a wic moe on by pisany zarówno maymi, jak i wielkimi literami.

Tematy