class Courier::Config
Attributes
services_hash[RW]
services_order[RW]
templates_hash[RW]
templates_order[RW]
Public Class Methods
new()
click to toggle source
# File lib/courier/config.rb, line 5 def initialize self.services_order=[] self.services_hash={} self.templates_order=[] self.templates_hash={} end
Public Instance Methods
class_of_service(name)
click to toggle source
# File lib/courier/config.rb, line 47 def class_of_service(name) if name.is_a? Symbol "Courier::Service::#{name.to_s.classify}".constantize else name end end
get_service(name)
click to toggle source
# File lib/courier/config.rb, line 26 def get_service name name=name.to_sym services_hash[name] or raise "No such service '#{name}'. Specify it by Courier.init in ./config/initializers/courier.rb" end
get_template(key)
click to toggle source
# File lib/courier/config.rb, line 43 def get_template key templates_hash[key.to_sym] or raise "No such template '#{key}'. Specify it by Courier.init in ./config/initializers/courier.rb" end
services(*services)
click to toggle source
# File lib/courier/config.rb, line 16 def services *services return services_order if services.empty? raise 'Список сервисов уже определен' unless services_order.empty? self.services_order = services.map { |s| service = class_of_service(s).new services_hash[service.name] = service } end
template(name, *sets)
click to toggle source
# File lib/courier/config.rb, line 31 def template name, *sets raise "Values (#{sets.count}) and services counts (#{services_order.count}) not much" unless services_order.count==sets.count template = Courier::Template::Base.new(:name=>name) raise "Such template is already defined #{name}" if templates_hash.has_key? template.name sets.each_with_index do |val, index| service = services_order[index] or "Too many values (#{index}), no such services" template.set(service, val) end templates_order << template templates_hash[template.name] = template end
templates()
click to toggle source
# File lib/courier/config.rb, line 12 def templates templates_order end