effective_email_templates 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42f8567bcf6351ab1762ee602ac678e4b63e8bbde2ae4e2c2858a7eff70a2a8d
4
- data.tar.gz: df20ca47c9a70a8a4867dc961da769db6f49a490fe80756e3fe9948b75dba5cc
3
+ metadata.gz: 633c93cac11add92db1adcfdd7d2441dbf928f12abc4182798e4c66d93995fe3
4
+ data.tar.gz: 85d947fcfd9da53aa93cf0b7e43e677633f250167a43afc67b1c6a71dc376a54
5
5
  SHA512:
6
- metadata.gz: c17a239840a85a12f9768b84be0315c7d0fddf924b435809af78bad8e203b145de905d40eef06d0473a18041e5483187deb4fc4db61df01428317d7c678a9974
7
- data.tar.gz: f10cfa33b6973e58b2b9e82a33c019b5ef7b8f532f23048682a6367e8e654304d61556c2a3a4e5de9114536d8a36deff4150301f68a107d462b0b3d47d1fd1c8
6
+ metadata.gz: 4e8ed05ed566941bb48fe9ec8be95bfc4d2019b7dbbee3fd0d282fd7c01061e5e51cfc13468bd466fc09c60b1f95ad8088db37af5095eb2fdb4929c6539bd993
7
+ data.tar.gz: '089e9291f52db8749cb282b2b087e162acb30c9b0c61da47d5e489a4ab18affd5f77e36aa5018f036efcde410f3ecb1594923c93fa3e57c5ccdb7211f70647f4'
@@ -18,7 +18,7 @@ class EffectiveEmailTemplatesDatatable < Effective::Datatable
18
18
  end
19
19
 
20
20
  col :bcc do |email_template|
21
- html_escape(email_template.cc)
21
+ html_escape(email_template.bcc)
22
22
  end
23
23
 
24
24
  col :subject
@@ -0,0 +1,35 @@
1
+ # HasOneEmailReview
2
+ # Allows any model to easily review an email template and make changes to the body
3
+
4
+ module EffectiveEmailTemplatesMailer
5
+ extend ActiveSupport::Concern
6
+
7
+ def mail(headers = {}, &block)
8
+ email_template = Effective::EmailTemplate.where(template_name: action_name).first!
9
+ assigns = (@assigns || {})
10
+
11
+ # Parse assigns. Special keys for body and subject.
12
+ body = assigns.delete(:body) || headers[:body] || headers['body']
13
+ email_template.body = body if body.present?
14
+
15
+ subject = assigns.delete(:subject) || headers[:subject] || headers['subject']
16
+ email_template.subject = subject if subject.present?
17
+
18
+ # Add any _url helpers
19
+ assigns = route_url_assigns(email_template).merge(assigns)
20
+
21
+ # Render from the template, possibly with updated body
22
+ rendered = email_template.render(assigns)
23
+
24
+ super(rendered.merge(headers.except(:body, :subject, 'body', 'subject')))
25
+ end
26
+
27
+ private
28
+
29
+ def route_url_assigns(email_template)
30
+ email_template.template_variables.select { |name| name.ends_with?('_url') }.inject({}) do |h, name|
31
+ h[name] = public_send(name) if respond_to?(name); h
32
+ end
33
+ end
34
+
35
+ end
@@ -1,33 +1,5 @@
1
1
  module Effective
2
2
  class EmailTemplatesMailer < ::ActionMailer::Base
3
-
4
- def mail(headers = {}, &block)
5
- email_template = Effective::EmailTemplate.where(template_name: action_name).first!
6
- assigns = (@assigns || {})
7
-
8
- # Parse assigns. Special keys for body and subject.
9
- body = assigns.delete(:body) || headers[:body] || headers['body']
10
- email_template.body = body if body.present?
11
-
12
- subject = assigns.delete(:subject) || headers[:subject] || headers['subject']
13
- email_template.subject = subject if subject.present?
14
-
15
- # Add any _url helpers
16
- assigns = route_url_assigns(email_template).merge(assigns)
17
-
18
- # Render from the template, possibly with updated body
19
- rendered = email_template.render(assigns)
20
-
21
- super(rendered.merge(headers.except(:body, :subject, 'body', 'subject')))
22
- end
23
-
24
- private
25
-
26
- def route_url_assigns(email_template)
27
- email_template.template_variables.select { |name| name.ends_with?('_url') }.inject({}) do |h, name|
28
- h[name] = public_send(name) if respond_to?(name); h
29
- end
30
- end
31
-
3
+ include EffectiveEmailTemplatesMailer
32
4
  end
33
5
  end
@@ -1,15 +1,19 @@
1
1
  module EffectiveEmailTemplates
2
2
  class Importer
3
- def self.import(quiet: false)
4
- new().execute(overwrite: false, quiet: quiet)
3
+ def self.import(quiet: false, paths: nil)
4
+ new().execute(overwrite: false, paths: paths, quiet: quiet)
5
5
  end
6
6
 
7
- def self.overwrite(quiet: false)
8
- new().execute(overwrite: true, quiet: quiet)
7
+ def self.overwrite(quiet: false, paths: nil)
8
+ new().execute(overwrite: true, paths: paths, quiet: quiet)
9
9
  end
10
10
 
11
- def execute(overwrite:, quiet: false)
12
- ActionController::Base.view_paths.map(&:path).each do |path|
11
+ def execute(overwrite:, paths: nil, quiet: false)
12
+ return false unless ActiveRecord::Base.connection.table_exists?(EffectiveEmailTemplates.email_templates_table_name)
13
+
14
+ paths ||= ActionController::Base.view_paths.map(&:path)
15
+
16
+ paths.each do |path|
13
17
  Dir[Rails.root.join(path, '**', '*_mailer/', '*.liquid')].each do |filepath|
14
18
  name = File.basename(filepath, '.liquid')
15
19
  email_template = Effective::EmailTemplate.find_or_initialize_by(template_name: name)
@@ -1,3 +1,3 @@
1
1
  module EffectiveEmailTemplates
2
- VERSION = '1.1.0'.freeze
2
+ VERSION = '1.1.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_email_templates
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-24 00:00:00.000000000 Z
11
+ date: 2021-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -92,6 +92,7 @@ files:
92
92
  - app/controllers/admin/email_templates_controller.rb
93
93
  - app/datatables/effective_email_templates_datatable.rb
94
94
  - app/helpers/effective_email_templates_helper.rb
95
+ - app/mailers/concerns/effective_email_templates_mailer.rb
95
96
  - app/mailers/effective/email_templates_mailer.rb
96
97
  - app/models/concerns/has_one_email_review.rb
97
98
  - app/models/effective/email_review.rb