Class: EffectiveEmailTemplates::Importer

Inherits:
Object
  • Object
show all
Defined in:
lib/effective_email_templates/importer.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.import(quiet: false, paths: nil) ⇒ Object



3
4
5
# File 'lib/effective_email_templates/importer.rb', line 3

def self.import(quiet: false, paths: nil)
  new().execute(overwrite: false, paths: paths, quiet: quiet)
end

.overwrite(quiet: false, paths: nil) ⇒ Object



7
8
9
# File 'lib/effective_email_templates/importer.rb', line 7

def self.overwrite(quiet: false, paths: nil)
  new().execute(overwrite: true, paths: paths, quiet: quiet)
end

Instance Method Details

#execute(overwrite:, paths: nil, quiet: false) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/effective_email_templates/importer.rb', line 11

def execute(overwrite:, paths: nil, quiet: false)
  return false unless ActiveRecord::Base.connection.table_exists?(EffectiveEmailTemplates.email_templates_table_name)

  paths ||= ActionController::Base.view_paths.map(&:path)

  paths.each do |path|
    Dir[Rails.root.join(path, '**', '*_mailer/', '*.liquid')].each do |filepath|
      name = File.basename(filepath, '.liquid')
      email_template = Effective::EmailTemplate.find_or_initialize_by(template_name: name)

      if email_template.persisted? && !overwrite
        puts("SKIPPED #{filename(filepath)}") unless quiet
        next
      end

      save(email_template, filepath, quiet: quiet)
    end
  end
end