Sha256: 06a1afa4397efe295786792971a4612b42ccd1e9eb608be69be401040a6a9c0d

Contents?: true

Size: 1.32 KB

Versions: 3

Compression:

Stored size: 1.32 KB

Contents

require 'effective_resources'
require 'effective_datatables'
require 'effective_classifieds/engine'
require 'effective_classifieds/version'

module EffectiveClassifieds

  def self.config_keys
    [
      :classifieds_table_name, :classified_submissions_table_name,
      :layout, :categories, :per_page, :use_effective_roles, :max_duration, :auto_approve,
      :classified_submission_class_name,
      :mailer, :parent_mailer, :deliver_method, :mailer_layout, :mailer_sender, :mailer_admin
    ]
  end

  include EffectiveGem

  def self.ClassifiedSubmission
    classified_submission_class_name&.constantize || Effective::ClassifiedSubmission
  end

  def self.mailer_class
    mailer&.constantize || Effective::ClassifiedsMailer
  end

  def self.parent_mailer_class
    return parent_mailer.constantize if parent_mailer.present?
    ActionMailer::Base
  end

  def self.send_email(email, *args)
    raise('expected args to be an Array') unless args.kind_of?(Array)

    if defined?(Tenant)
      tenant = Tenant.current || raise('expected a current tenant')
      args.last.kind_of?(Hash) ? args.last.merge!(tenant: tenant) : args << { tenant: tenant }
    end

    deliver_method = EffectiveClassifieds.deliver_method || EffectiveResources.deliver_method

    EffectiveClassifieds.mailer_class.send(email, *args).send(deliver_method)
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
effective_classifieds-0.1.0 lib/effective_classifieds.rb
effective_classifieds-0.0.3 lib/effective_classifieds.rb
effective_classifieds-0.0.2 lib/effective_classifieds.rb