10. if (sequel == 7)
print("yes!")
end
series.push("Mission to Moscow")
title.reverse().capitalize()
1. Zagrade!
if sequel == 7
print "yes!"
end
series.push "Mission to Moscow"
title.reverse.capitalize
11. 2. if-ovi bez granica
if character == "Harris"
print "MAHONEY!!!"
end
print "MAHONEY!!!" if character == "Harris"
unless character.russian?
play_academy_theme
end
12. 3. Sve je objekt
"police academy".upcase
=> "POLICE ACADEMY"
13. 3. Sve je objekt
"police academy".upcase
=> "POLICE ACADEMY"
mission_to_moscow = Movie.new
=> #<Movie:0x00000106f95a40>
14. 3. SVE je objekt
"police academy".upcase
=> "POLICE ACADEMY"
19.years.ago
=> Sat, 18 Jun 1994 00:55:38 UTC +00:00
mission_to_moscow = Movie.new
=> #<Movie:0x00000106f95a40>
15. 4. Najljepši literali
'Ovo je string bez posebnih znakova n/'
"Ovo je policijska akademija #{ 6 + 1 }"
/police academy [0-9]+/i
oscar_reception_date = nil
us_gross = 126_247
%w(Lassard Jones Tackleberry) == ["Lassard","Jones","Tackleberry"]
{de: "Mission in Moskau", it: "Missione a Mosca",
hu: "A rendõrakadémia Moszkvában" }
25. 8. Dinamično programiranje
"Tackleberry".methods
=> [:==, :===, :eql?, :hash, :casecmp, :+, :*,
:%, :[], :[]=, ...
class Character
def speak
# bla bla
end
end
jones = Character.new
jones.speak
def jones.make_noises
puts "beep! boop!"
end
jones.make_noises
27. 10. method_missing
class RussianAcademyProxy
def initialize(academy)
@academy = academy
end
def do_russian_stuff
# ...
end
def method_missing(method, *args, &block)
@academy.send(method, *args, &block)
end
end
37. Module#prepend
class Character
def speak
puts "Hello"
end
include RussianCulture
end
russian = Character.new
russian.drink_votka
russian.speak
=> "Hello"
Character.ancestors
=> [Character, RussianCulture, Object, Kernel, BasicObject]
module RussianCulture
def drink_votka
end
def speak
puts "привет"
end
end
38. Module#prepend
class Character
def speak
puts "Hello"
end
prepend RussianCulture
end
russian = Character.new
russian.drink_votka
russian.speak
=> "привет"
Character.ancestors
=> [RussianCulture, Character, Object, Kernel, BasicObject]
module RussianCulture
def drink_votka
end
def speak
puts "привет"
end
end
41. module RussianQuery
refine String do
def russian?
match(/"p{Cyrillic}+.*?.?"/ui) ? true : false
end
end
end
"привет".respond_to?(:russian?) #=> false
using RussianQuery
"привет".russian? #=> true
Refinements