gem install omu-smsYapılandırma
OMU::SMS.configureprovider: :mutlu_cell,user: 'cezmi',pass: 'secret',from: 'OMUBAUM',title: 'Ondokuz Mayıs Üniversitesi'# isteğe bağlıGönderim
OMU::SMS.(to: %w[12345677654321],body: 'foo bar baz')Yapılandırmadan ön tanımlı gelen from alanını değiştir
OMU::SMS.(to: %w[12345677654321],body: 'foo bar baz',from'OMUUZEM')Yapılandırmadan ön tanımlı gelen date alanını değiştir
OMU::SMS.(to: %w[12345677654321],body: 'foo bar baz',date: '02/08/2020 01:53')Yapılandırmasız şekilde her şeyi açık ver
OMU::SMS.(provider: :verimor,user: 'cezmi',pass: 'secret',from: 'OMUBAUM',to: '1234567',# tek numara da olabilirdate: '02/08/2020 01:53',body: 'foo bar baz')Örneğin Acme adında yeni bir SMS sağlayıcı için provider dizininde
acme.rb isimli bir sürücü oluştur.
moduleOMU::SMS::ProviderclassAcme < Basepostingendpoint: 'https://example.com/send',header: {'content-type'=>'text/xml;charset=utf-8','accept'=>'xml'}.freezerenderingcontent: <<~TEMPLATE <?xml version="1.0" encoding="UTF-8"?> ... TEMPLATEinspectingdo |result|
result.detail.credits=result.response.body&.to_sendendendBu örnekte görülen TEMPLATE API isteklerinde render edilerek POST edilen bir
ERB şablonudur. Şablonda (öncelik sırasıyla) message nesnesi ve Provider
yapılandırmasında tanımlı tüm nitelikleri kullanabilirsiniz. Örnekte
inspecting ile (istisna üretmeden sonlanan) başarılı bir POST işlemi
sonrasında çalıştırılacak bir callback ayarlanır. Bu callback her sağlayıcı
tarafından gerçeklenmelidir.
Asgari olarak tüm sağlayıcılarda user, pass ve from (öntanımlı değer
olarak) yapılandırılmış olmalıdır. Sağlayıcı bunun dışında bir nitelik,
örneğin customer_no gerektiriyorsa aşağıdaki örnekten yararlanabilirsiniz.
moduleOMU::SMS::ProviderclassAcme < Basepostingendpoint: 'https://example.com/send',header: {'content-type'=>'text/xml;charset=utf-8','accept'=>'xml'}.freezerenderingrequired: %i[customer_no],content: <<~TEMPLATE <?xml version="1.0" encoding="UTF-8"?> <sms customer=<%= customer_no %>> ... </sms> TEMPLATEinspectingdo |result|
result.detail.credits=result.response.body&.to_sendendendSağlayıcıya veri gönderilirken farklı bir HTTP seçeneğine ihtiyaç duyarsanız
options seçeneğini ayarlayın.
moduleOMU::SMS::ProviderclassAcme < Basepostingendpoint: 'https://example.com/send',header: {'content-type'=>'text/xml;charset=utf-8','accept'=>'xml'}.freeze,options: {ssl_version: :TLSv1_2}.freezerenderingcontent: <<~TEMPLATE <?xml version="1.0" encoding="UTF-8"?> ... TEMPLATEinspectingdo |result|
result.detail.credits=result.response.body&.to_sendendendTüm değişiklikler tamamlandıktan sonra:
Lint ve Test
bundle exec rake lint bundle exec rake test
Varsa hataları düzelt
Komitle
git commit -a git push origin master
CI'da hata varsa düzeltinceye kadar devam et
Sürüm yükselt
$EDITOR lib/omu/sms/version.rb git commit -a -m "Yeni sürüm: «sürüm»" git push origin master
Etiketle
git tag -a «sürüm» -m «sürüm» git push --tags origin
Paketle
bundle exec rake package