Sha256: 1716838c6c68b81395cb9f7c0bb4ae8c4bd73f0fd82af8746530dea8a840b386

Contents?: true

Size: 1.33 KB

Versions: 7

Compression:

Stored size: 1.33 KB

Contents

# -*- encoding : utf-8 -*-

class Card::Flexmail
  class << self
    def configs_for card
      email_config_cardnames(card).map do |email_config|
        config = {}

        [:to, :from, :cc, :bcc, :attach].each do |field|
          config[field] = ( fld_card=Card["#{email_config}+*#{field}"] ).nil? ? '' :
              # configuration can be anything visible to configurer
              Account.as( fld_card.updater ) do
                list = fld_card.extended_list card
                field == :attach ? list : list * ','
              end
        end

        [:subject, :message].each do |field|
          config[field] = ( fld_card=Card["#{email_config}+*#{field}"] ).nil? ? '' :
              Account.as( fld_card.updater ) do
                fld_card.contextual_content card, :format=>'email_html'
              end
        end

        config[:subject] = strip_html(config[:subject]).strip
        config
      end
    end

    def email_config_cardnames card
      #warn "card is #{card.inspect}"
      event_card = card.rule_card :send
      return [] unless event_card
      Account.as_bot { event_card.item_names }
    end

    def mail_for card
      configs_for(card).map do |config|
        Mailer.flexmail config
      end.compact.each(&:deliver)
    end

    def strip_html string
      string.gsub(/<\/?[^>]*>/, "")
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
wagn-1.12.13 lib/card/flexmail.rb
wagn-1.12.12 lib/card/flexmail.rb
wagn-1.12.11 lib/card/flexmail.rb
wagn-1.12.10 lib/card/flexmail.rb
wagn-1.12.9 lib/card/flexmail.rb
wagn-1.12.8 lib/card/flexmail.rb
wagn-1.12.7 lib/card/flexmail.rb