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:
gemmetodu gemi ekliyor ama kurmuyor. Yani biz gemleri ekledikten sonrabundle installmetodunu ç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…