Dark Mode

Napravo k'm s'd'rzhanieto

Ruby

ot Uikipediia, svobodnata entsiklopediia
Ruby
Paradigmaobektno orientiran
Realizirane prez1995
AvtorIukikhiro Matsumoto
Tipizatsiia na dannitedinamichna
Povliian otSmalltalk, Perl, Lisp, Python, Clu, Dylan
PovliiavaGroovy
Softueren litsenzRuby License i GPL
Uebsaitwww.ruby-lang.org
Ruby v Obshchomediia

Ruby (proiznasia se rubi, na b'lgarski oznachava rubin) e interpretiruem, interaktiven, obektno orientiran ezik za programirane. Kombinira cherti ot mnogo drugi ezitsi, sred koito Smalltalk, Perl, Lisp i Python. Osnovnata mu implementatsiia e bezplatna i s otvoren kod.

Ezik't e s'zdaden ot iaponetsa Iukikhiro Matsumoto, po priakor ,,Mats". Toi zapochva rabota po Ruby prez 1993. Prez 1995 izliza p'rvata versiia na ezika.

Imeto na ezika proizliza ot zodiakalniia kam'k na priiatel i kolega na Iukikhiro.

Do oktomvri 2006 poslednata stabilna versiia e 1.8.5. Klon't 1.8.kh e stabilen, razrabotchitsite rabotiat v klona 1.9, koito sled stabiliziraneto si shche se prev'rne v 2.0.

Vodeshchiiat printsip na Mats pri s'zdavaneto na ezika e da napravi programistite shchastlivi chrez namaliavane na nenuzhnata rabota, sledvaiki printsipite za dizain na potrebitelski interfeis[1]. Mats tv'rdi, che dizain't na prilozheniia triabva da otgovaria na choveshkite, a ne na kompiut'rnite nuzhdi[2].

Stremezh't e Ruby da sledva printsipa na nai-malka iznenada. Tova oznachava, che povedenieto na ezika triabva da e intuitivno i toi triabva da raboti taka, kakto programist't bi ochakval. V'zmozhno e krainiiat rezultat da e ,,printsip't na nai-malka iznenada za Mats", no ogromen broi programisti po sveta tv'rdiat, che ezik't s'otvetstva i na tekhniia model na mislene.

Ruby e obektno orientiran. Vsiaka edinitsa s danni, bila tia promenliva, konstanta ili dazhe literal, e obekt. Vsiaka funktsiia e metod. Promenlivite sa vinagi psevdonimi na obektite i nikoga samite obekti.

V'preki che Ruby ne podd'rzha mnozhestveno naslediavane, klasovete mogat da importirat moduli i podd'rzhat dinamichno delegirane.

Spored chesto zadavanite v'prosi ot dokumentatsiiata na Ruby, ,,ako kharesvate Perl, shche zapochnete da kharesvate i Ruby i lesno shche navlezete v negovata semantika. Ako kharesvate Python, mozhe bi shche se otdr'pnete zaradi ogromnata razlika v'v filosofiite na Python i Ruby/Perl"[3]

Kharakteristiki

[redaktirane | redaktirane na koda]

Ruby vse oshche ne poddr'zhka tsialostno Unikod, a samo chastichno UTF-8.

Khranilishcha i biblioteki

[redaktirane | redaktirane na koda]

Ruby Application Archive (RAA) Arkhiv na originala ot 2013-08-05 v Wayback Machine. i RubyForge sa khranilishcha s poveche ot 2000 prilozheniia i biblioteki.

RubyGems e standartniiat paketen menidzh'r za instalirane na dop'lnitelni biblioteki. Po nachina si na upotreba silno prilicha na portovata sistema, sreshchana v razlichnite BSD distributsii.

puts "Hello World!"

Prosti funktsionalnosti

[redaktirane | redaktirane na koda]
# napomniame, che vsichko e obekt:
-199.abs # 199
"ruby is cool".length # 12
"Rick".index("c") # 2
"Nice Day Isn't It?".split(//).uniq.sort.join # " '?DINaceinsty"

Rabota s nizove

[redaktirane | redaktirane na koda]
str = "Ruby rocks"
str[0] # 82
str.include? "Ruby" # true
str.include? "Rails" # false
str.start_with? "Ruby" # true
str.end_with? "Ruby" # false
str.slice(0,4) # "Ruby"
str + "!" # "Ruby rocks!"

Rabota s reguliarni izrazi

[redaktirane | redaktirane na koda]
"Ruby rocks".match(/.+ ([a-z]+)/)[1] # "rocks"
"Ruby rocks" =~ /[a-z]+/ # 0
"Ruby rocks" =~ /[a-zA-Z]+/ # 0

Rabota s masivi

[redaktirane | redaktirane na koda]
arr1 = [1,10,3,6,3]
arr2 = [9,4, 5,3,2]
arr1.sort # [1, 3, 3, 6, 10]
arr1.max # 10
arr1.min # 1
arr1 + arr2 # [1, 10, 3, 6, 3, 9, 4, 5, 3, 2]
arr1 - arr2 # [1, 10, 6]
arr1 & arr2 # [3]

Rabota s data i chas

[redaktirane | redaktirane na koda]
date = Date.new(2010, 03, 22) # #
date.day # 22
date.month # 3
date.year # 2010
date.strftime("%d-%m-%Y") # "22-03-2010"

Ruby ima dve osnovni realizatsii: ofitsialniiat interpretator, koito e i nai-shiroko izpolzvan, i JRuby -- interpretator napisan na Java.

Operatsionni sistemi

[redaktirane | redaktirane na koda]

Ruby se razprostraniava za slednite operatsionni sistemi:

Interpretator't i bibliotekite sa s dvoen litsenz: GPL i Ruby License [4].

Ruby on Rails ("Rubi na relsi", chesto s'krashchavano samo na Rails ili RoR) e nabirashch populiarnost freimu'rk za ueb prilozheniia, napisan iztsialo na Ruby, vkliuchvashch v sebe si mnozhestvo realizirani shabloni za programirane, sred koito Model-View-Controller, ActiveRecord i mnogo drugi. Samiiat freimu'rk se predlaga kato paket prez RubyGems (gem install rails).

V'nshni prepratki

[redaktirane | redaktirane na koda]