-
S3 altında saklanıyor tüm gem'ler.
-
Açık kaynak.
-
Bize bir api verir. gem install filan deyince o api'den çekiyoruz. (source ile veriyoruz)
gem programında kullanabileceğimiz parametreler
https://guides.rubygems.org/command-reference/
https://ruby.github.io/TryRuby/
class HelloWorld
def initialize(name)
@name = name
end
def say_hey
puts "Merhaba #{@name}"
end
end
hello_world = HelloWorld.new('Dünya')
hello_world.say_hey
gets ve gets.chomp
birbirinden farkı; gets.chomp yapıldığında girdinin sonundaki \n
silinir.
Üst class'ları görmek için superclass
kullanılabilir.
1.class.superclass.superclass.superclass
'bora'.to_i.class
'bora'.to_i
Ruby'de soru işareti olan method'lar her zaman boolean döner. True/false dönen method'lara soru işareti eklemeliyiz.
Bir class'mı diye bakmak
3.15.is_a?(Integer)
3.15.integer?
5.even?
5.odd?
$global_değişken -> Her yerden erişilir
@instance_variable -> Class'ın örnek değişkeni
@@class_variable
SABIT_SAYI = 3.3
Değişkenin değişmesini istemediğimizde symbol kullanıyoruz. object_id hep aynı.
:semboooool.object_id
%w(1,2,3)
Array'e eleman eklemek için <<
kullanmak önerilir. En sona ekler.
İki eleman arasına eklemek için insert
önerilir.
Enumrator, sayılabilir hale getiriyor.
Enumrable
Enumrable.instance_methods
map! yapınca kalıcı hale geliyor.
collect, map'in alias'ı
z ||= 3
, eğer z boş ise değeri ata
def method_name(param1, param2=3)
# Do something
end
Multi params. Birden fazla parametre alabileceğimizde kullanırız.
def method_name(*multiparam)
puts multiparam
end
Ruby'de getter ve setter method'larını kolay yoldan tanımlamak, attr_reader, attr_writer, attr_accessor,
https://mixandgo.com/learn/ruby_attr_accessor_attr_reader_attr_writer
self üzerinden yaratılan method'lar static olur.
örneğin
def self.finder_numbers
10
end
bu method'u objeyi yaratmadan kullanabiliriz.
Ruby Style Guide, https://github.com/rubocop-hq/ruby-style-guide
Hiç bir zaman set, get gibi isimler konulmamalı, rubocop
boolean method'lara is, can, do koymamak lazım
module include yapılınca method'ları kullanılabilir olur.
Şimdi bir gem yazıcaz. Amacımız gelen ifadeye göre hangi plaka numarasını söylemek.
bundle gem license_plate_parser
Gemspec dosyası config dosyası gibidir.
gem build license_plate_parser.gemspec
değişiklik yaptıkan sonra version değiştirmeden test edebilmek amacıyla
pry -I lib -r license_plate_parser
require 'license_plate_parser'
LicensePlateParser::Plate.hello