• Merhaba arkadaşlar, Sizlere daha iyi hizmet verebilmek için forumdaki değişiklikler hızla devam ediyor. İstek ve önerilerinizi Bize Ulaşın kısmından gönderebilirsiniz. Bizi bu yolda yanlız bırakmadığınız için teşekkür ederiz.

Ruby Nedir?

bursa kiralık vinç

EkibomMedya

Siber Güvenlik & Yazılım
Katılım
9 Ara 2020
Mesajlar
49
Tepki puanı
28
Puanları
18
Yaş
38
Konum
Antalya
1995 yılında Japon asıllı “Matz” lakaplı Yukihiro Matsumoto tarafından geliştirilen, Nesne Tabanlı, Yorumlanan Okunabilirlik seviyesi oldukça yüksek, WhiteSapace bağımsız, tab boşluk kullanılabilir, Python programlama diline oldukça benzeyen bir programlama dilidir. Ruby’de herşey nesnedir.

Çok karıştırılan bir konuda Ruby, Ruby On Rails değildir. Ruby On Rails aslında Ruby ile yazılmış bir web frameworkudur. Ruby programlama dilini web harici projelerde de kullanmayı düşünebilirsiniz!

Kurulum
Ruby:
apt update && apt dist-upgrade
apt install ruby
apt install ruby-rails
Ruby'i üç farklı şekilde çalıştırabiliriz.


Konsol Üzerinden
ruby -e 'puts "ibrahim"'
ruby -e 'print "ibrahim"'
Dosya Üzerinden
ruby test.rb

Son olarak konsol üzerinde "irb" yazarak interactive olarak Ruby kodu yazabilirsiniz.

Ufak bir örnek yapalım bu örneğimiz bir class ve içinde metodlar barındırsın.


Ruby:
class Selamlama           
  def initialize(isim = "4v5")
@isim = isim
end
def merhaba
puts "Merhaba #{@akcaenis}!"
end
def hoscakal
puts "Hoşcakal #{@akcaenis}, Tekrar bekleriz."
end
end

g = Selamlama.new("ibrahim")
g.merhaba
g.hoscakal




Migration Oluşturma​


Ruby:
rails generate migration AddPublishDateToPage publish_time:date:index

invoke active_record
create db/migrate/20180813094931_add_publish_date_to_page.rb


Oluşan migrate dosyamızı aşağıdaki


Ruby:
rake db:migrate:up VERSION=20180813094931

Alanımız oluşturuldu.
==  AddPublishDateToPage: migrating
-- add_column(:page, :publish_date, :date)
-> 0.3943s
-- add_index(:page, :publish_date)
-> 0.1202s
== AddPublishDateToPage: migrated (0.5146s)



Farklı bir örnek daha yapalım bu örneğimizde tinyint alanı ekleyelim.

Ruby:
# rails generate migration AddShowOnAndroidOrIosToGames show_on_android:boolean:index show_on_ios:boolean:index
....
invoke active_record
create db/migrate/20180817080315_add_show_on_android_or_ios_to_games.rb
Migration kısmını oluşturduk artık bu migration'ı db imiz için çalıştırabiliriz.


Ruby:
# rake db:migrate:up VERSION=20180817080315
....
== AddShowOnAndroidOrIosToGames: migrating
-- add_column(:games, :show_on_android, :boolean)
-> 0.3818s
-- add_index(:games, :show_on_android)
-> 0.1136s
-- add_column(:games, :show_on_ios, :boolean)
-> 0.4097s
-- add_index(:games, :show_on_ios)
-> 0.1152s
== AddShowOnAndroidOrIosToGames: migrated (1.0205s)


Manuel olarak default alanı ekleyelim.


Ruby:
class AddShowOnAndroidOrIosToGames < ActiveRecord::Migration
  def change
add_column :games, :show_on_android, :boolean, :default => false
add_index :games, :show_on_android
add_column :games, :show_on_ios, :boolean, :default => false
add_index :games, :show_on_ios
end
end
Windows kullanıcıları bundle exec ekleyerek kullanmalı.


# bundle exec rake db:migrate:up VERSION=20180817080315

Yukarıda yaptığımız örneğimizde aynı anda iki alan oluşturmuş olduk ayrıca tinyint(1) tipinde farklı bir alan ekledik.

Aşağıdaki örneğimizle bir alanı nasıl drop edeceğimize bakalım.


Ruby:
bundle exec rails generate migration RemoveShowOnMobileFromPlay show_on_mobile:boolean
..................
invoke active_record
create db/migrate/20180903063131_remove_show_on_mobile_from_play.rb


Yukarıda oluşturduğumuz dosyayı istersek manuel olarak düzenleme yapabiliriz. Düzenleme yapmasak bile yükseltme yapmadan bakıp kontrol etmekte fayda var.


Ruby:
vim db/migrate/20180903063131_remove_show_on_mobile_from_play.rb

Her hangi bir sıkıntı görmüyorsanız yükseltme yapabilirsiniz.


Ruby:
# bundle exec rake db:migrate:up VERSION=20180903063131

Bazı durumlarda migration kısmında ilaveler yapmamız gerekebilir örneğin kaldıralan bir alan değerini yeni açılan alanlara taşınması gibi aşağıdaki migration dosyasının içeriğini inceleyebilirsiniz.


Ruby:
class RemoveShowOnMobileFromGames < ActiveRecord::Migration
  def up
Game.update_all("show_on_android=show_on_mobile,show_on_ios=show_on_mobile")
remove_column :games, :show_on_mobile
end

def down
add_column :games, :show_on_mobile, :boolean
end
end


Bu konu ile alakalı genel destek 4v5.net kullanıcılarına ücretsiz dağlayabilirim...

Herkeze iyi çalışmalar..
 
Şu an forumumuzda
51 Kullanıcı Aktif
Konu 3,038
Cevaplar 4,357
Kullanıcılar 1,191
Son Üye BUZMAVİSİ
Webdebul.net; 5651 Sayılı Kanun kapsamında BTK tarafından onaylı Yer Sağlayıcı'dır.

Bu sebeple içerikleri kontrol etme ya da araştırma yükümlülüğü yoktur.
Hukuka ve mevzuata aykırı olduğunu düşündüğünüz içeriği. BURADAN bildirebilirsiniz.
Kısa sürede dönüş yapmaya çalışacağız.
Webmaster Forumu ® Güvenli Alışverişin Yeni Adresi Webdebul.net altyapı gücünü Netwebo'dan alır.
Reklam vermek için: reklam@webdebul.net
Ban sorunları için: ban@webdebul.net
Hukuksal sorunlar için: hukuk@webdebul.net
Diğer sorunlar için: bilgi@webdebul.net
Üst Alt