# Ten cay wiersz jest komentarzem.
x = "#To jest acuch."               # A to jest komentarz.
y = /#To jest wyraenie regularne./   # Tu jest jeszcze jeden komentarz.



#
# Niniejsza klasa reprezentuje liczb typu Complex.
# Pomimo nazwy (zoona) nie jest ona wcale skomplikowana.
#



=begin Kto musi naprawi poniszy kod!
    Kod znajdujcy si w tym miejscu jest w komentarzu.
=end



# =begin Ten wiersz by komentarzem, a teraz sam jest w komentarzu!
    Kod znajdujcy si w tym miejscu nie jest w komentarzu.
# =end



#
# Gramatyka oznaczania komentarzy rdoc jest prosta jak w wiki.
#
# Akapity oddziela si pustym wierszem.
#
# = Nagwki.
#
# Nagwki zaczynaj si od znaku rwnoci.
#
# == Podnagwki.
# Powyszy wiersz tworzy podnagwek.
# === Pod-podnagwek.
# I tak dalej.
#
# = Przykady.
#
#   Wcite wiersze s wywietlane dosownie pismem o staej szerokoci znakw.
#     Naley uwaa, aby nie wci nagwkw lub list.
#
# = Listy i rodzaje pisma.
#
# Elementy listy zaczynaj si od znaku * lub -. Rodzaj pisma okrela si za pomoc interpunkcji lub kodu HTML:
# * _italic_ lub <i>kursywa</i>
# * *bold* lub <b>pogrubienie</b>
# * +code+ lub <tt>pismo o staej szerokoci znakw</tt>
#
# 1. Listy numerowane zaczynaj si od liczb.
# 99. Mona uywa dowolnych liczb; nie musz by kolejne.
# 1. Nie ma sposobu na zagniedanie list.
#
# Terminy list opisowych s umieszczane w nawiasach kwadratowych:
# [element 1]  Opis elementu 1.
# [element 2]  Opis elementu 2.
#



1                      # Litera cakowitoliczbowy.
1.0                    # Litera liczby zmiennoprzecinkowej.
'one'                  # Litera acuchowy.
"two"                  # Inny litera acuchowy.
/trzy/                 # Litera wyraenia regularnego.



i
x2
old_value
_internal    # Identyfikatory mog zaczyna si od znaku podkrelenia.
PI           # Staa.



def (x,y)  # Nazw tej metody jest znak mnoenia Unicode.
  x*y       # Metoda ta mnoy podane argumenty.
end



$files          # Zmienna globalna.
@data           # Zmienna obiektowa.
@@counter       # Zmienna klasowa.
empty?          # Metoda zwracajca warto logiczn, czyli predykat.
sort!           # Wersja metody sort modyfikujca obiekty bezporednio.
timeout=        # Metoda wywoywana przez przypisanie.



total = x +     # Wyraenie niekompletne  analiza jest kontynuowana.
  y



total = x  # To jest kompletne wyraenie.
  + y      # Bezuyteczne, ale kompletne wyraenie.



var total = first_long_variable_name + second_long_variable_name \
  + third_long_variable_name # Powyej nie ma adnego znaku koczcego instrukcj.



animals = Array.new
  .push("pies")   # Nie dziaa w Ruby 1.8.
  .push("krowa")
  .push("kot")
  .sort



f(3+2)+1
f (3+2)+1



[1,2,3]                # Litera tablicowy.
{1=>"one", 2=>"two"}   # Litera tablicy asocjacyjnej.
1..3                   # Litera zakresowy.



1         # Wyraenie pierwotne.
x         # Inne wyraenie pierwotne.
x = 1     # Wyraenie przypisania.
x = x + 1 # Wyraenie z dwoma operatorami.



if x < 10 then   # Jeli to wyraenie ma warto true,
  x = x + 1      # naley wykona t instrukcj.
end              # Oznacza koniec instrukcji warunkowej.
while x < 10 do  # Dopki wyraenie to ma warto true...
  print x        # naley wykonywa t instrukcj.
  x = x + 1      # Nastpnie naley wykona t instrukcj.
end              # Oznacza koniec ptli.



3.times { print "Ruby! " }


1.upto(10) do |x|
  print x
end



module Stats                          # Modu.
  class Dataset                       # Klasa w module.
    def initialize(filename)          # Metoda w klasie.
      IO.foreach(filename) do |line|  # Blok w metodzie.
        if line[0,1] == "#"           # Instrukcja if w bloku.
          next                        # Prosta instrukcja w instrukcji if.
        end                           # Koniec ciaa instrukcji if.
      end                             # Koniec bloku.
    end                               # Koniec ciaa metody.
  end                                 # Koniec ciaa klasy.
end                                   # Koniec ciaa moduu.



#!/usr/bin/ruby -w	Komentarz shebang.
# -*- coding: utf-8 -*-	Komentarz okrelajcy kodowanie.
require 'socket'	Zaadowanie biblioteki sieciowej.
  ...	Kod programu.
__END__	Koniec programu.
  ...	Dane programu.



ruby -E utf-8            # Nazwa kodowania po opcji -E.
ruby -Eutf-8             # Spacja jest opcjonalna.
ruby --encoding utf-8    # Nazwa kodowania po opcji --encoding ze spacj.
ruby --encoding=utf-8    # Po opcji --encoding mona wstawi znak rwnoci.



