Ruby Püf Noktaları

Ruby ile ilgili Türkçe püf noktaları

%w vs %W »

Belki örnek ile anlatmak daha iyi olacaktır :)

pry(main)> my_array = %w(ender ahmet)
=> ["ender", "ahmet"]
pry(main)> my_array_2 = %W(ender ahmet yurt)
=> ["ender", "ahmet", "yurt"]
pry(main)> last_name = "yurt"
=> "yurt"
pry(main)> my_array = %w(ender ahmet #{last_name})
=> ["ender", "ahmet", "\#{last_name}"]
pry(main)> my_array_2 = %W(ender ahmet #{last_name})
=> ["ender", "ahmet", "yurt"]
Yazan:
Ender Ahmet Yurt

Array'de elemanın yerini değiştirmek »

Array'lerde bazen bir element'in index'i değiştirmek isteriz. Ruby'de bunu hızlı bir şekilde yapmanın birden çok yolu var. Bu yollardan biri;

my_array = ["a", "b", "c"]
my_array.insert(0, my_array.delete_at(1))
=>  # [
  # [0] "b",
  # [1] "a",
  # [2] "c"
# ]

şeklinde olabilir.

Yazan:
Ender Ahmet Yurt

Hash'i Array'e çevirmek »

Drifting Ruby podcast’ini izlerken çok kolay bir yöntem öğrendim.

Yazan:
Uğur Özyılmazel

map, proc ve ampersand »

Ampesand yani & işareti, Ruby’de bazı özel şeyler yapmamızı sağlıyor.

Yazan:
Uğur Özyılmazel

Ruby 2.4 ile gelen yenilikler »

12 Aralık 2016 tarihinde Ruby 2.4.0-rc1 yayınlandı. rc1 Release Candidate1 yani sürüm için neredeyse aday anlamına geliyor. Stabil sürüm olan 2.3 göre yenilikler neler ?

Yazan:
Uğur Özyılmazel

Elvis Operatörü »

Geçtiğimiz günlerde sevgili Üstün Özgür’le sohbet ederken konu Elvis Operatörü’ne geldi.

Yazan:
Uğur Özyılmazel

`tap` ile detayları görmek »

Zincir işlem yaparken içeride nelerin olup bittiğini anlamak için tap method’unu kullanabiliriz. Object nesnesinden geldiği için diğer tüm tiplerde de bu method bulunur:

(0...8)                  .tap{ |x| puts "(1..10):  #{x.inspect}" }
  .to_a                  .tap{ |x| puts ".to_a:    #{x.inspect}" }
  .select{|x| x % 3 == 0}.tap{ |x| puts ".select:  #{x.inspect}" }
  .map{ |x| x ** x }     .tap{ |x| puts ".map:     #{x.inspect}" }

# >> (1..10):  0...8
# >> .to_a:    [0, 1, 2, 3, 4, 5, 6, 7]
# >> .select:  [0, 3, 6]
# >> .map:     [1, 27, 46656]
Yazan:
Uğur Özyılmazel

Spaceship operatorü »

Bir eşitlik karşılaştırma operatörü olarak Spaceship yani <=>

list = [8, 3, 1, 4, 0, 3] 
list.sort { |a, b| a <=> b } # => [0, 1, 3, 3, 4, 8]
Yazan:
Ender Ahmet Yurt

Dünyanın en küçük test framework'ü »

Tek yapmanız gereken bu aslında :)

def assert(condition)
  raise "FAIL" unless condition
end

Biraz daha detaylı bir örnek:

def assert(condition)
  raise "FAIL: condition is #{condition.inspect}" unless condition
end

assert 1 == 1
assert 2 > 1
assert 5 == 1
Yazan:
Uğur Özyılmazel

Mini IRB »

Tek satırda kendi IRB’iniz olsun!

ruby -n -e 'p eval($_)'
Yazan:
Uğur Özyılmazel

SONRAKİLER ›