Sha256: e01a59493e53c2a3572282dd201905c07c9c9a265e549acb3c5f85b779acebd2

Contents?: true

Size: 982 Bytes

Versions: 2

Compression:

Stored size: 982 Bytes

Contents

# -*- coding: utf-8 -*-
class Courier::Template::Base

  attr_accessor :name, :defaults

  def initialize(args)
    self.name = args[:name].to_sym or raise 'no template name defined'
    self.defaults={}
  end

  def get_text(service, args)
    args[:scope]=[:courier, service.to_s] unless args[:scope]
    args[:cascade]=true unless args.has_key? :cascade
    I18n::translate(name, args )
  end

  def get(service)
    service = Courier.service(service) if service.is_a?(Symbol)
    name = service.name.to_sym
    raise "Not defined default value for #{service} in template #{self}" unless defaults.has_key? name
    defaults[name]
  end

  def set(service, val)
    service = Courier.service(service) if service.is_a?(Symbol)
    defaults[service.name.to_sym] = check_val(val)
  end

  def to_s
    "Courier::Template(#{name})"
  end

  def key
    name
  end

  private

  def check_val(val)
    raise "Value must be :on or :off" unless val==:on or val==:off
    val
  end


end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
courier-0.1.5 lib/courier/template/base.rb
courier-0.1.4 lib/courier/template/base.rb