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