effective_email_templates 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d30287d3cff749da524d949a3350afe46bba6dbd
4
- data.tar.gz: cd82018e4b99a829f5809d82abc15e9bf215f1a8
3
+ metadata.gz: c13e3d65af439b35d89c4033d870d692d08698f3
4
+ data.tar.gz: 485f5e8e247057d1b3604c0801e20953592ccef1
5
5
  SHA512:
6
- metadata.gz: 8ec0e2f0d4c32a25d5183d29e425035e316e4475c7fe6b14d0ee8e02d12ad8e435e40f020506851ffcd3b90a82b7075c10e7f8e0b7bfde710a997fc532e9d5e9
7
- data.tar.gz: 29fdd97bd3a101baf4a1bff2fc31fbca7e7bfd2f0bc1550dfed71e6d720450aeca8356605a81f5da4ed89c26c027cfcce3c1dd0d122142ccc238560b411aee0e
6
+ metadata.gz: 6d0c7473ffc31eeaacdf7e00d79e00447fd577096df058fad22cbae046fb7a269576c2665c647f6410b6ec587a432840726ba16a49ed4c2efbb095f45cf236cd
7
+ data.tar.gz: 9f6d12909a9cf44bf9a67f8d670e814b2d1a1fdc01f2015997c98c88eb845465026fe1bbc812dd76ca42031420643021b6fd10c7e99ea49609e6527568b4bf05
data/README.md CHANGED
@@ -1,9 +1,12 @@
1
+
1
2
  # Effective Email Templates
2
3
 
3
- Description!!
4
+ Create email templates that an admin or any user can safely edit (you're protected from SQL injection and other nastiness).
5
+ Effective Email Templates relies on [Liquid templates](http://liquidmarkup.org/) built by Shopify to profide this safety.
4
6
 
5
7
  Rails 3.2.x and Rails 4 Support
6
8
 
9
+
7
10
  ## Getting Started
8
11
 
9
12
  Add to your Gemfile:
@@ -35,27 +38,52 @@ rake db:migrate
35
38
  ```
36
39
 
37
40
 
38
- ## Usage
41
+ ## Creating Email Templates
42
+
43
+ This is very similar to creating other emails in Rails.
39
44
 
40
- - Create some email templates at `/admin/email_templates`
41
- - Create a mailer method for each email
45
+ 1. Create a new mailer object (i.e. `/app/mailers/template_mailer.rb`)
42
46
  - Mailer objects need to inherit from `Effective::LiquidMailer`
43
- - Mailer methods and email template slugs need to match up
44
- - Email headers can be declared in the #mail method but can be overrided by the saved attributes on the Effective::EmailTemplate model.
45
- - Create mail objects and deliver them like normal
47
+ 2. Create a method inside the mailer object based on the name of your email (i.e. `def welcome_email`)
48
+ 3. Create a default email template file (i.e. `/app/views/template_mailer/welcome_email.liquid`)
49
+ - Start out with a plain text email (without any variables and we'll show you how to add dynamic content below)
50
+ - Add the email subject and from address at the top of the email. For example:
51
+
52
+ ```yaml
53
+ ---
54
+ subject: 'Hello User' # REQUIRED
55
+ from: 'effective@email_templates.com' # REQUIRED
56
+ cc: 'my_friend@email_templates.com' # optional
57
+ bcc: 'my_secret_friend@example.com' # optional
58
+ ---
59
+ Hello new user! I'm a liquid template that will be editable to site admins and/or users.
60
+ ```
46
61
 
47
- An example liquid template (put these into the database through the admin panel: `/admin/email_templates`):
62
+ 4. Run this rake task to import this email template from the filesystem to the database (where it will be editable)
63
+ - Remember to do this in your staging and production environments as well!
64
+ - This task can be run even when no new templates have been added and will not overwrite existing
65
+ database templates. This allows you to run the rake task in a deploy script if you are adding new
66
+ templates frequently.
67
+
68
+ ```console
69
+ rake effective_email_templates:import_default_views
70
+ ```
71
+
72
+ 5. Visit `localhost:3000/admin/email_templates` in your browser to edit templates.
73
+
74
+
75
+ ## Making Content Dynamic
48
76
 
49
77
  ```liquid
50
- Welcome to our site. We think you're {{ adjective }}
78
+ Welcome to our site. We think you're {{ adjective }}!
51
79
  ```
52
80
 
53
81
  The corresponding Mailer:
54
82
 
55
83
  ```ruby
56
- # app/mailers/user_liquid_mailer.rb
57
- class UserLiquidMailer < Effective::LiquidMailer
58
- def after_create_user(user)
84
+ # app/mailers/template_mailer.rb
85
+ class TemplateMailer < Effective::LiquidMailer
86
+ def welcome_email(user)
59
87
  @to_liquid = {
60
88
  'adjective' => 'awesome'
61
89
  }
@@ -67,39 +95,10 @@ end
67
95
  Send the emails like normal:
68
96
 
69
97
  ```ruby
70
- mail = UserLiquidMailer.after_create_user(self)
98
+ mail = TemplateMailer.welcome_email(user)
71
99
  mail.deliver
72
100
  ```
73
101
 
74
- ### Default Templates
75
-
76
- Email templates can still be added by a developer into a view file if a rake task is run to import
77
- them into the database in production. To create a view template for the `after_create_user` email
78
- above, simply create a template file inside /app/views (probably in the user_liquid directory)
79
- with a .liquid file extension. That file should contain metadata in YAML format at the top
80
- surrounded by two lines with three hyphens:
81
-
82
- ```yaml
83
- ---
84
- subject: 'Hello User' # REQUIRED
85
- from: 'effective@email_templates.com' # REQUIRED
86
- cc: 'my_friend@email_templates.com' # optional
87
- bcc: 'my_secret_friend@example.com' # optional
88
- ---
89
- Hello new user! I'm a liquid template and you can use {{ }} inside of me to interpolate variables
90
- defined in the corresponding LiquidMailer method.
91
- ```
92
-
93
- To add these templates to the database, run the `effective_email_templates:import_default_views` task.
94
- This task can be run even when no new templates have been added and will not overwrite existing
95
- database templates. This allows you to run the rake task in a deploy script:
96
-
97
- ```ruby
98
- # an example Heroku deploy script
99
- ...
100
- system 'heroku run rake effective_email_templates:import_default_views'
101
- ...
102
- ```
103
102
 
104
103
  ## Authorization
105
104
 
@@ -178,18 +177,3 @@ You are not granted rights or licenses to the trademarks of Code and Effect
178
177
 
179
178
  ## Testing
180
179
 
181
-
182
-
183
-
184
-
185
-
186
-
187
-
188
-
189
-
190
-
191
-
192
-
193
-
194
-
195
-
@@ -2,16 +2,18 @@ if defined?(EffectiveDatatables)
2
2
  module Effective
3
3
  module Datatables
4
4
  class EmailTemplates < Effective::Datatable
5
- default_order :subject, :asc
5
+ datatable do
6
+ default_order :subject, :asc
6
7
 
7
- table_column :id, visible: false
8
- table_column :slug
9
- table_column :subject
10
- table_column :from
11
- table_column :cc, sortable: false, visible: false, label: 'CC'
12
- table_column :bcc, sortable: false, visible: false, label: 'BCC'
13
- table_column :body, sortable: false, visible: false
14
- table_column :actions, sortable: false, partial: '/admin/email_templates/actions'
8
+ table_column :id, visible: false
9
+ table_column :slug
10
+ table_column :subject
11
+ table_column :from
12
+ table_column :cc, sortable: false, visible: false, label: 'CC'
13
+ table_column :bcc, sortable: false, visible: false, label: 'BCC'
14
+ table_column :body, sortable: false, visible: false
15
+ table_column :actions, sortable: false, partial: '/admin/email_templates/actions'
16
+ end
15
17
 
16
18
  def collection
17
19
  Effective::EmailTemplate.all
@@ -1,3 +1,3 @@
1
1
  module EffectiveEmailTemplates
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
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: 0.3.0
4
+ version: 0.3.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: 2015-04-22 00:00:00.000000000 Z
11
+ date: 2015-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -140,16 +140,16 @@ dependencies:
140
140
  name: effective_datatables
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: 0.3.17
145
+ version: 2.0.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 0.3.17
152
+ version: 2.0.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: pry
155
155
  requirement: !ruby/object:Gem::Requirement