2016-04-11 13 views
0

DRY konumunda kalmak için Smtpapi :: Header sınıfını genişletmeye çalışıyorum. Bu orijinal Smtpapi ayarlayıcıları uzantıma yerleştirmenin uygun yolu mu? Ben Ruby için yeni. CustomMailerHeader.new sadece CustomMailerHeader.new aynı şey olurdu gerçiBir Ruby Sınıfını genişletmenin doğru yolu?

class CustomMailerHeader < Smtpapi::Header 

    def initialize(params) 

     super 
    end 

    def no_service_header 
      self.add_category("Service Down Email") 
      self.add_filter('templates', 'enable', 1) 
      self.add_filter('templates', 'template_id', '8bawd1-9e66') 
      self.add_substitution('-|A_MESSAGE|-', ['server down']) 
      self.set_tos('[email protected]') 
      self 
    end 

end 

Sonra O çalışacağız bu

header = CustomMailerHeader.new.no_service_header 
+0

Bu işe yaramaz. 'new' bir argüman gerektirir ve siz hiç geçmiyorsunuz. – sawa

cevap

0

gibi kullanabilirsiniz, böylece yapabilirsiniz no_service_header ve biraz bunu temizlemek uzak soyut:

def initialize 
    super 
    no_service_header 
end 

private 

def no_service_header 
    add_category("Service Down Email") 
    add_filter('templates', 'enable', 1) 
    add_filter('templates', 'template_id', '8bawd1-9e66') 
    add_substitution('-|A_MESSAGE|-', ['server down']) 
    set_tos('[email protected]') 
end 

Kullanımı:

header = CustomMailerHeader.new 
+0

Teşekkür ederiz! "Süper" nin diğer bazı diller gibi denen son şey olması gerektiğini düşündüm. – jdog

İlgili konular