Sha256: b47c77a21b9a77368a66ba824b6925b4944bb19266202925d891b3dca4b4ed54

Contents?: true

Size: 1.83 KB

Versions: 4

Compression:

Stored size: 1.83 KB

Contents

def email_config args={}
  config = {}
  args[:context] ||= self

  [:to, :from, :cc, :bcc].each do |field_name|
    process_email_field(field_name, config, args) do |field_card|
      field_card.process_email_addresses(
        args[:context], { format: "email_text" }, args
      )
    end
  end
  process_email_field(:attach, config, args) do |field_card|
    field_card.extended_item_contents args[:context]
  end
  process_message_field :subject, config, args, "email_text",
                        content_opts: { chunk_list: :nest_only }
  process_message_field :text_message, config, args, "email_text"

  from_name, from_email =
    if config[:from] =~ /(.*)\<(.*)>/
      [Regexp.last_match(1).strip, Regexp.last_match(2)]
    else
      [nil, config[:from]]
    end

  if (default_from = Card::Mailer.default[:from])
    config[:from] =
      if from_email
        %("#{from_name || from_email}" <#{default_from}>)
      else
        default_from
      end
    config[:reply_to] ||= config[:from]
  elsif config[:from].blank?
    config[:from] = Card[Card::WagnBotID].account.email
  end
  config.select { |_k, v| v.present? }
end

def process_email_field field, config, args
  config[field] =
    if args[field]
      args[field]
    elsif (field_card = fetch(trait: field))
      # configuration can be anything visible to configurer
      user = (args[:follower] && Card.fetch(args[:follower])) ||
        field_card.updater
      Auth.as(user) do
        yield(field_card)
      end
    else
      ""
    end
end

def process_message_field field, config, args, format, special_args=nil
  process_email_field(field, config, args) do |field_card|
    content_args = args.clone
    content_args.merge! special_args if special_args
    field_card.contextual_content args[:context], { format: format },
                                  content_args
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
card-1.20.4 mod/notifications/set/type/email_template/email_config.rb
card-1.20.3 mod/notifications/set/type/email_template/email_config.rb
card-1.20.2 mod/email/set/type/email_template/email_config.rb
card-1.20.1 mod/email/set/type/email_template/email_config.rb