Template nedir ?
Yeni bir rails
uygulaması oluştururken genel görevleri otomatikleştirmek için yardımcı ruby
script. Örneğin her rails
projesinde devise
gemini kullanıyorsak bunu her seferinde eklemek yerine template’ e ekleyip aynı işlemleri tekrarlamaktan kurtulabiliriz.
Template Oluşturma
Template oluşturmak için ne bir generator
nede bir gem
kullancağız. İçerisine bazı metodlar yazabileceğimiz bir ruby
dosyası yeterli :)
Template Kullanımı
Yeni bir uygulama oluştururken -m
parametresinden sonra template yolunu yazıyoruz.
1 2 |
|
Yada rails:tempalte
rake’ ini kullanabiliriz.
1 2 |
|
Template metodları:
gem(name, options = {})
gem
metodu Gemfile dosyasın gem eklenmesini sağlıyor.
1 2 3 |
|
NOT:
gem
metodu gemi ekliyor ama kurmuyor. Yani biz gemleri ekledikten sonrabundle install
metodunu çalıştırmalıyız.
gem_group(*names, &block)
Grup içerisine gem yazmamızı sağlar.
1 2 3 4 5 |
|
add_source(source, options = {})
Gemler için source eklememizi sağlar.
1
|
|
initializer(filename, data = nil, &block)
config/initializers
klasörü altına initializer dosyası eklememizi sağlar.
1 2 3 4 5 6 |
|
rakefile(filename, data = nil, &block)
lib/tasks
altına rake oluşturuyor
1 2 3 4 5 6 |
|
generate(what, args)
generate
metodu rails generator
’ lerini çalıştırmamızı sağlıyor.
1 2 |
|
run(command, config={})
run
metodu ismindende anlaşılcağı gibi sistem komutlarını çalıştırmaya yarıyor.
1 2 |
|
rake(command, options = {})
rake
çalıştırmamızı sağlıyor.
1 2 3 4 |
|
route(routing_code)
Route config/routes.rb
dosyasına routing entry eklememizi sağlar.
1
|
|
inside(dir)
Klasör içerinde komut çalıştırmamıza yarar.
1 2 3 4 |
|
ask(question)
Kullanıcıdan bilgi alınmasını sağlar.
1 2 3 4 5 6 7 |
|
yes?(question) or no?(question)
Kullanıcya soru sormamızı sağlarlar.
1 2 3 4 5 |
|
git(:command)
Git komutlarını kullanmamızı sağlıyor.
1 2 3 |
|
create_file(destination, data=nil, config={}, &block)
create_file
metodu yeni bir dosya oluşturur.
1 2 3 4 |
|
gsub_file(path, flag, *args, &block)
Dosya içerisinde text değiştirmemizi sağlar. flag
parametresi string ve regex bir ifade olabilir.
1
|
|
remove_file(path, config={})
Dosya siler.
1 2 |
|
inject_into_file(destination, *args, &block)
Dosya içerisine text eklememeizi sağlar. :after
ve :before
parametreleri ile nereye ekleme yapılacağını belirtebiliriz.
1 2 3 4 5 6 7 8 9 10 |
|
append_file(path, *args, &block)
Dosyaya text eklememizi sağlar.
1 2 3 4 5 |
|
get(source, destination=nil, config={}, &block)
Verilen adresteki içeriği alır ve hedef kaynağa yerleştirir. Yani hedef doyaya yazar.
1 2 |
|
Genel olarak sık kullandığımız metodları yazamaya çalıştım. Aşağıdaki linklerden daha fazla kaynağa ulşabilirsiniz. Dilerseniz lab2023 rails temaplate’ i inceleyebilrsiniz.
Kaynaklar: http://guides.rubyonrails.org/rails_application_templates.html https://github.com/wycats/thor/wiki/Actions http://textmate.rubyforge.org/thor/Thor/Actions.html http://rdoc.info/github/wycats/thor/master/Thor/Actions
İyi çalışmalar…