Sha256: d8538e9fe1f7aa149d1b0845bd80da146575c416c06dee85b17775aa4a8dad8f
Contents?: true
Size: 1.46 KB
Versions: 2
Compression:
Stored size: 1.46 KB
Contents
# -*- coding: utf-8 -*- # Модель класса осуществляющего способ доставки. # * name - уникальное название (littlesms, actionmailer) # * type (класс) # ## Например: # * Courier::Service::SMS::LittleSMS # * Courier::Service::Email::ActionMailer # * Courier::Service::Email::MailChimp # * Courier::Service::Twitter::Grackle # * Courier::Service::Flash::GritterNotice # доставщики подключаются через команду # Courier.register_service(SMS::LittleSMS, Email::ActionMailer,.. ) require 'ostruct' class Courier::Service::Base class << self def inherited(subclass) subclass.instance_variable_set('@config', OpenStruct.new) super end def configure yield @config end def config @config end end def check_args owner, template, args # args[:text]||=template.get_text(self, args) end def message(owner, template, args) check_args owner, template, args Courier::Message.create! :owner=>owner, :template=>template.name, :service=>name, :options=>args end def to_s name end def name self.class.name.demodulize.underscore.to_sym end def deliver_message(message) raise 'inherit and implement me' end def messages Courier::Message.by_service(name) end def deliver_all! messages.fresh.each do |message| deliver_message(message) and message.mark_as_delivered! end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
courier-0.1.5 | lib/courier/service/base.rb |
courier-0.1.4 | lib/courier/service/base.rb |