Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Uğur "vigo" Özyılmazel vigobronx vigo

Slide 3

Slide 3 text

webboxio http://webbox.io

Slide 4

Slide 4 text

PROGRAMLAMA DİLİ

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Ruby, programcıları mutlu etmek üzere tasarlanmıştır! - Matz

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

TÜRKÇE BİLİYOR!

Slide 9

Slide 9 text

şehirler = %w[İstanbul Ankara Viyana Paris] gittiğim_şehirler = %w[İstanbul Viyana] puts "Gitmem gereken şehirler", şehirler - gittiğim_şehirler Gitmem gereken şehirler Ankara Paris

Slide 10

Slide 10 text

Perl'den güçlü

Slide 11

Slide 11 text

python'dan daha object orıented

Slide 12

Slide 12 text

Herşey : nesne

Slide 13

Slide 13 text

5.class # => Fixnum 5.class.superclass # => Integer 5.class.superclass.superclass # => Numeric 5.class.superclass.superclass.superclass # => Object 5.class.superclass.superclass.superclass.superclass # => BasicObject

Slide 14

Slide 14 text

Fixnum Integer Numeric Object Basic Object

Slide 15

Slide 15 text

5.methods # => [:to_s, :inspect, :-@, :+, :-, :*, :/, :div, : %, :modulo, :divmod, :fdiv, :**, :abs, :magnitude, :==, :===, :<=>, : >, :>=, :<, :<=, :~, :&, :|, :^, : [], :<<, :>>, :to_f, :size, :bit_length, :zero?, :odd?, :even?, :succ , :integer?, :upto, :downto, :times, :next, :pred, :chr, :ord, :to_i, :to_int, :floor, :ceil, :truncate, :round, :gcd, :lcm, :gcdlcm, :nume rator, :denominator, :to_r, :rationalize, :singleton_method_added, :c oerce, :i, : +@, :eql?, :remainder, :real?, :nonzero?, :step, :quo, :to_c, :real, :imaginary, :imag, :abs2, :arg, :angle, :phase, :rectangular, :rect, :polar, :conjugate, :conj, :between?, :nil?, :=~, :!~, :hash, :class, :singleton_class, :clone, :dup, :taint, :tainted?, :untaint, :untrust , :untrusted?, :trust, :freeze, :frozen?, :methods, :singleton_method s, :protected_methods, :private_methods, :public_methods, :instance_v ariables, :instance_variable_get, :instance_variable_set, :instance_v ariable_defined?, :remove_instance_variable, :instance_of?, :kind_of? , :is_a?, :tap, :send, :public_send, :respond_to?, :extend, :display, :method, :public_method, :singleton_method, :define_singleton_method, :object_id, :to_enum, :enum_for, :equal?, :!, :! =, :instance_eval, :instance_exec, :__send__, :__id__]

Slide 16

Slide 16 text

TÜM SINIFLAR AÇIKTIR!

Slide 17

Slide 17 text

class Fixnum def kere(n) self * n end end 5.kere(5) # => 25 5.kere(5).kere(2) # => 50

Slide 18

Slide 18 text

class Fixnum def gün self * 24 * 60 * 60 end def önce Time.now - self end def sonra Time.now + self end end Time.now # => 2015-01-12 12:30:37 +0200 5.gün.önce # => 2015-01-07 12:30:37 +0200 1.gün.sonra # => 2015-01-13 12:30:37 +0200

Slide 19

Slide 19 text

PHP?

Slide 20

Slide 20 text

konuşma dİlİne benzer

Slide 21

Slide 21 text

5.times do |i| puts "Ruby’i seviyorum, i = #{i}" if i > 2 end # Ruby’i seviyorum, i = 3 # Ruby’i seviyorum, i = 4

Slide 22

Slide 22 text

meals = %w[Pizza Döner Kebab] print "Let’s eat here!" unless meals.include? "Soup" menü'de çorba yoksa yemeğİ burada YİYELİM!

Slide 23

Slide 23 text

KOD ?

Slide 24

Slide 24 text

varıable merhaba = "Dünya" # Değişken @merhaba # Instance Variable @@merhaba # Class Variable $merhaba # Global Variable MERHABA # Constant

Slide 25

Slide 25 text

ARRAY [] # => [] [1, "Merhaba", 2] # => [1, "Merhaba", 2] [[1, 2], ["Merhaba", "Dünya"]] # => [[1, 2], ["Merhaba", "Dünya"]]

Slide 26

Slide 26 text

hash {} # => {} {:foo => "bar"} # => {:foo=>"bar"} # Eski {foo: "bar"} # => {:foo=>"bar"} # Yeni

Slide 27

Slide 27 text

parantez? def merhaba kullanıcı "Merhaba #{kullanıcı}" end merhaba "vigo" # => "Merhaba vigo"

Slide 28

Slide 28 text

SORU İŞARETİ [].empty? # => true ["vigo", "ezel"].include? "vigo" # => true user.admin? # => false

Slide 29

Slide 29 text

ÜNLEM İŞARETİ isim = "vigo" isim.reverse # => "ogiv" isim # => "vigo" isim.reverse! # => "ogiv" isim # => "ogiv"

Slide 30

Slide 30 text

zİNCİRLEME METHODLAR "vigo".reverse.reverse # => "vigo" ["v", "i", "g", "o"].join.reverse.split(//).join.reverse # => "vigo"

Slide 31

Slide 31 text

İterasyon [1, "merhaba", 2, "dünya"].each do |eleman| puts eleman end [1, "merhaba", 2, "dünya"].each {|eleman| puts eleman} # 1 # merhaba # 2 # dünya

Slide 32

Slide 32 text

İterasyon [1, 2, 3, 4, 5].select{|number| number.even?} # => [2, 4] [1, 2, 3, 4, 5].inject{|sum, number| sum + number} # => 15 [1, 2, 3, 4, 5].map{|number| number * 2} # => [2, 4, 6, 8, 10]

Slide 33

Slide 33 text

class class Person attr_accessor :age end vigo = Person.new vigo # => # vigo.age = 43 vigo # => # vigo.age # => 43

Slide 34

Slide 34 text

class class Person attr_accessor :age # Getter & Setter def initialize(name) @name = name end def greet "Hello #{@name}" end end vigo = Person.new "Uğur" vigo.age = 43 vigo # => # vigo.greet # => "Hello Uğur"

Slide 35

Slide 35 text

class class Person def initialize(name) @name = name end def age=(value) @age = value end def age @age end def greet "Hello #{@name}" end end vigo = Person.new "Uğur" vigo.age = 43 Getter Setter attr_accessor :age }

Slide 36

Slide 36 text

class class Person def is_human? true end end class Cyborg < Person def is_human? false end end vigo = Person.new # => # vigo.is_human? # => true t800 = Cyborg.new # => # t800.is_human? # => false

Slide 37

Slide 37 text

module + MIXIN module Greeter def say_hello "Hello #{@name}" end end class Person include Greeter def initialize(name) @name = name end end vigo = Person.new "Uğur" vigo.say_hello # => "Hello Uğur"

Slide 38

Slide 38 text

hazırım!

Slide 39

Slide 39 text

İLERİ SEVİYE KONULAR Meta Programming Monkey Patching Block & Proc & Lambda Functional Programming

Slide 40

Slide 40 text

kaynaklar http://www.ruby-doc.org/ http://vigo.gitbooks.io/ruby-101/ http://tryruby.org/ http://rubykoans.com/ https://rubymonk.com/ https://www.ruby-lang.org/en/documentation/quickstart/ https://www.ruby-lang.org/en/documentation/ruby-from-other-languages/

Slide 41

Slide 41 text

fotoğraflar http://www.sitepoint.com/ https://500px.com/photo/72621187/let-me-fly-by-kshitij-bhardwaj http://www.gratisography.com/