34
Ruby. Pradžia Vidmantas Kabošis @ VilniusRB, 2013-11-30

Ruby. Pradžia

Embed Size (px)

Citation preview

Page 1: Ruby. Pradžia

Ruby. Pradžia

Vidmantas Kabošis @ VilniusRB, 2013-11-30

Page 2: Ruby. Pradžia

Pradžių pradžia

1995

Page 3: Ruby. Pradžia

Pradžių pradžia

1995© Kada, jei ne dabar

Page 4: Ruby. Pradžia

Visur

Page 5: Ruby. Pradžia

Visur - ir Lietuvoje

Page 6: Ruby. Pradžia

Žmogui: productivity & fun

“vilniusrb”.length

Page 7: Ruby. Pradžia

Žmogui: productivity & fun

“vilniusrb”.length[ 1, 2, 3 ].include?(2)

Page 8: Ruby. Pradžia

Žmogui: productivity & fun

“vilniusrb”.length[ 1, 2, 3 ].include?(2)print “YOLO” if 1 > 2

Page 9: Ruby. Pradžia

Žmogui: productivity & fun

“vilniusrb”.length[ 1, 2, 3 ].include?(2)print “YOLO” if 1 > 2

10.times do puts “99 bottles…”end

Page 10: Ruby. Pradžia

Katės

Page 11: Ruby. Pradžia

Objektai

Pradžioje visko, buvo

objektas

Page 12: Ruby. Pradžia

Objektų sukūrimas

Tam, kad pagamintume ką nors, reikia

instrukcijos

Page 13: Ruby. Pradžia

Klasės

Tam, kad pagamintume ką nors, reikia

klasės

Page 14: Ruby. Pradžia

Klasė

Page 15: Ruby. Pradžia

Objektai

Page 16: Ruby. Pradžia

Klasės aprašymas

class Pavadinimas # metodaiend

Page 17: Ruby. Pradžia

Klasės aprašymas

class House def number_of_floors

puts “2” endend

Page 18: Ruby. Pradžia

Objekto sukūrimas

home = House.newhome.number_of_floors

Page 19: Ruby. Pradžia

Objekto sukūrimas

home = House.newhome.number_of_floors

#=> “2”

Page 20: Ruby. Pradžia

Standartiniai objektai

42 # Integer3.14 # Float“VilniusRB” # String[1, 2, 3] # Array{ “pi” => 3.14, “e” => 2.71 } # Hash

Page 21: Ruby. Pradžia

Standartiniai objektai

[“langai”, “durys”, “sienos”].size

#=> 3

[“langai”, “durys”, “sienos”].include?(“balkonas”)

#=> false

4 * 2 #=> 8

Page 22: Ruby. Pradžia

Vykdymo tvarka

if condition # kodaselse # kitas kodasend

Page 23: Ruby. Pradžia

Sąlyga

NEVYKDOMA, jei sąlyga grąžina: false nil

Page 24: Ruby. Pradžia

Sąlyga

NEVYKDOMA, jei sąlyga grąžina: false nilVYKDOMA:visa kita :-)

true, tekstas, skaičius, sąrašas, ...

Page 25: Ruby. Pradžia

Pavyzdys

class Recipe

def contains?(ingredient)

if [“miltai”, “cukrus”].include?(ingredient)

puts “Šis ingredientas yra!”

else

puts “Teks nusipirkti”

end

end

end

r = Recipe.new

r.contains?(“razinkos”) #=> “Teks nusipirkti”

Page 26: Ruby. Pradžia

Sukūrimo metodas

class Recipe

def initialize(ingredients)

@ingredients = ingredients

end

end

r = Recipe.new([“miltai”, “razinkos”])

Page 27: Ruby. Pradžia

Objekto kintamasis

class Recipe

def initialize(ingredients)

@ingredients = ingredients

end

def contains?(ingredient)

if @ingredients.include?(ingredient)

puts “YAY!”

end

end

end

Page 28: Ruby. Pradžia

Objekto kintamasis

r = Recipe.new([“miltai”, “razinkos”])

r.contains?(“razinkos”)

#=> “YAY!”

r = Recipe.new([“cukrus”, “bananai”])

r.contains?(“razinkos”)

#=> nil

Page 29: Ruby. Pradžia

Užduotis

Parašyti klasę, kurios objektas mokėtų sukūrimo metu atsiminti perduotą sąrašą ir pasakyti, ar konkreti dalis yra tame sąraše.

Pavyzdžiui:home = House.new([“sienos”, “laiptai”])home.has?(“langai”) #=> “Ne”home.has?(“sienos”) #=> “Taip”

Page 30: Ruby. Pradžia

Papildoma užduotis pirmūnams :-)

Papildykite klasę nauju metodu, kuris pagal perduotą aukštų skaičių, grąžiną pastato aukštį (sakykim, kad vienas aukštas = 3.1 m)

Pavyzdžiui:home.height(2) #=> 6.2home.height(5) #=> 15.5

Page 31: Ruby. Pradžia

gem

Ruby klasėsSavo klasėsKitų klasės: gem

Page 32: Ruby. Pradžia

Panaudojimas

$ gem install credit_card_validator

Page 33: Ruby. Pradžia

Panaudojimas

require “credit_card_validator”

number = '1111 2222 3333 4444'CreditCardValidator::Validator.valid?(number)#=> false

Page 34: Ruby. Pradžia

end

@[email protected]