rails_email_preview 0.2.20 → 0.2.21

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
  SHA1:
3
- metadata.gz: dbaf4be7a442f4bfe3b88dee868d30e5734d5eea
4
- data.tar.gz: 5aa58ac87f863b6c4fda28917a998ad609068e7d
3
+ metadata.gz: e6a3a68dcd424b8bad4c8835e9a43cfb388ccadd
4
+ data.tar.gz: 0c878a6582eee10408bf7bc522b60fb49961b77e
5
5
  SHA512:
6
- metadata.gz: 22eef373270fd2974c41974b8c2838219001f44c92f31445670537ae0e80af14a025713d3512959e586bd3b3f5094717cda2453eafd6f84d777e2f83a4742665
7
- data.tar.gz: 7ae5581b11e36e3af9ebf3557f92beb0b32e0418a9809bb9b40e085f69060d08aeee577ed763999b1259540f1e6cb60eee5849d8ed2e20610be5b7cb053b384f
6
+ metadata.gz: cc4d460e598e8daaaa8b81ee000c51ae6fecd382be0a705ceff5bd36895f54e47f91b69cfb056f396012b0ace6fc29baf85f7038f559c76e914d77bdcba802a2
7
+ data.tar.gz: eee63446fb36c5e0c5675de0ed9d7a24f8bcedf4c1bd504ca2a1ac6f3a44ebdacd07593a3eed7e1b0c5aebd5671b50db0afb3764b68437fe307923489a48f41a
data/Gemfile CHANGED
@@ -11,4 +11,4 @@ platform :rbx do
11
11
  end
12
12
 
13
13
  # a debugger that works with MRI 2.0.0
14
- gem 'byebug', platforms: :ruby_20, groups: [:development, :test]
14
+ gem 'byebug', platforms: :ruby_21, groups: [:development, :test]
data/README.md CHANGED
@@ -1,5 +1,4 @@
1
- Rails Email Preview [![Build Status](https://travis-ci.org/glebm/rails_email_preview.png)](https://travis-ci.org/glebm/rails_email_preview) [![Gem Version](https://badge.fury.io/rb/rails_email_preview.png)](http://badge.fury.io/rb/rails_email_preview) [![Code Climate](https://codeclimate.com/github/glebm/rails_email_preview.png)](https://codeclimate.com/github/glebm/rails_email_preview)
2
- ================================
1
+ # Rails Email Preview [![Build Status][travis-badge]][travis] [![Gem Version][gem-badge]][gem] [![Code Climate][codeclimate-badge]][codeclimate]
3
2
 
4
3
  A Rails Engine to preview plain text and html email in your browser. Compatible with Rails 3 and 4.
5
4
 
@@ -12,13 +11,12 @@ List:
12
11
  REP can use the application styles and comes with [a bootstrap 3 theme][rep-show-default-screenshot] by default (default markup for [twbs/bootstrap](twbs/bootstrap) 3).
13
12
  *These screenshots are from [Zuigo](http://zuigo.com/), a platform to organize & discover events; using REP default markup and app styles*
14
13
 
15
- How to
16
- -----
14
+ ## How to
17
15
 
18
16
  Add to Gemfile
19
17
 
20
18
  ```ruby
21
- gem 'rails_email_preview', '~> 0.2.19'
19
+ gem 'rails_email_preview', '~> 0.2.21'
22
20
  ```
23
21
 
24
22
  REP handles setup for you:
@@ -61,8 +59,7 @@ end
61
59
  ```
62
60
 
63
61
 
64
- Routing
65
- -------
62
+ ## Routing
66
63
 
67
64
  You can access REP urls like this:
68
65
 
@@ -75,8 +72,7 @@ rails_email_preview.rep_emails_url
75
72
  rails_email_preview.rep_email_url('user_mailer-welcome')
76
73
  ```
77
74
 
78
- Send Emails
79
- -------------------
75
+ ## Send Emails
80
76
 
81
77
  You can send emails via REP. This is especially useful when testing with limited clients (Blackberry, Outlook, etc.).
82
78
  This will use the environment's mailer settings, but the handler will `perform_deliveries`.
@@ -86,8 +82,7 @@ Uncomment this line in the initializer to disable sending test emails:
86
82
  config.enable_send_email = false
87
83
  ```
88
84
 
89
- Email editing
90
- -------------
85
+ ## Email editing
91
86
 
92
87
  You can use [comfortable_mexican_sofa](https://github.com/comfy/comfortable-mexican-sofa) for storing and editing emails.
93
88
  REP comes with an integration for it -- see [CMS Guide](https://github.com/glebm/rails_email_preview/wiki/Edit-Emails-with-Comfortable-Mexican-Sofa).
@@ -95,16 +90,14 @@ REP comes with an integration for it -- see [CMS Guide](https://github.com/glebm
95
90
  [![screenshot](https://raw.github.com/glebm/rails_email_preview/master/doc/img/rep-edit-sofa.png)](https://github.com/glebm/rails_email_preview/wiki/Edit-Emails-with-Comfortable-Mexican-Sofa)
96
91
 
97
92
 
98
- Premailer
99
- ---------------------
93
+ ## Premailer
100
94
 
101
95
  [Premailer](https://github.com/alexdunae/premailer) automatically translates standard CSS rules into old-school inline styles. Integration can be done by using the <code>before_render</code> hook.
102
96
 
103
97
  To integrate Premailer with your Rails app you can use either [actionmailer_inline_css](https://github.com/ndbroadbent/actionmailer_inline_css) or [premailer-rails](https://github.com/fphilipe/premailer-rails).
104
98
  Simply uncomment the relevant options in [the initializer](https://github.com/glebm/rails_email_preview/blob/master/config/initializers/rails_email_preview.rb). *initializer is generated during `rails g rails_email_preview:install`*
105
99
 
106
- I18n
107
- -------------
100
+ ## I18n
108
101
 
109
102
  REP expects emails to use current `I18n.locale`:
110
103
 
@@ -136,8 +129,7 @@ You can set the language in `config.to_prepare` section of the initializer, defa
136
129
  RailsEmailPreview.locale = :de
137
130
  ```
138
131
 
139
- Views
140
- ---------------------
132
+ ## Views
141
133
 
142
134
  You can render all REP views inside your app layout (this will need styling to look nice if you don't use bootstrap):
143
135
 
@@ -174,8 +166,7 @@ You can `//= require 'rails_email_preview/layout'` REP-specific styles (`@import
174
166
  You can also override any individual view by placing a file with the same path in your project's `app/views`,
175
167
  e.g. `app/views/rails_email_preview/emails/index.html.slim`. *PRs accepted* if you need hooks.
176
168
 
177
- Authentication & authorization
178
- ------------------------------
169
+ ## Authentication & authorization
179
170
 
180
171
  You can specify the parent controller for REP controller, and it will inherit all before filters.
181
172
  Note that this must be placed before any other references to REP application controller in the initializer (and before `layout=` call):
@@ -207,5 +198,11 @@ This project rocks and uses MIT-LICENSE.
207
198
  [rep-show-default-screenshot]: https://raw.github.com/glebm/rails_email_preview/master/doc/img/rep-show-default.png "Show Email Screenshot (default styles)"
208
199
 
209
200
 
210
- [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/glebm/rails_email_preview/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
211
-
201
+ [travis]: http://travis-ci.org/glebm/rails_email_preview
202
+ [travis-badge]: http://img.shields.io/travis/glebm/rails_email_preview.svg
203
+ [gem]: https://rubygems.org/gems/rails_email_preview
204
+ [gem-badge]: http://img.shields.io/gem/v/rails_email_preview.svg
205
+ [codeclimate]: https://codeclimate.com/github/glebm/rails_email_preview
206
+ [codeclimate-badge]: http://img.shields.io/codeclimate/github/glebm/rails_email_preview.svg
207
+ [coveralls]: https://coveralls.io/r/glebm/rails_email_preview
208
+ [coveralls-badge]: http://img.shields.io/coveralls/glebm/rails_email_preview.svg
@@ -30,6 +30,12 @@ class RailsEmailPreview::EmailsController < ::RailsEmailPreview::ApplicationCont
30
30
  end
31
31
  end
32
32
 
33
+ def show_attachment
34
+ @mail = @preview.preview_mail
35
+ attachment = @mail.attachments.find { |a| a.filename == "#{params[:filename]}.#{request.format.symbol}" }
36
+ send_data attachment.body.raw_source
37
+ end
38
+
33
39
  def test_deliver
34
40
  redirect_url = rails_email_preview.rep_email_url(params.slice(:preview_id, :email_locale))
35
41
  if (address = params[:recipient_email]).blank? || address !~ /@/
@@ -61,7 +67,7 @@ class RailsEmailPreview::EmailsController < ::RailsEmailPreview::ApplicationCont
61
67
  def mail_body(preview, part_type, edit_links = (part_type == 'text/html'))
62
68
  RequestStore.store[:rep_edit_links] = true if edit_links
63
69
  mail = preview.preview_mail(true)
64
-
70
+
65
71
  return "<pre id='raw_message'>#{html_escape(mail.to_s)}</pre>".html_safe if part_type == 'raw'
66
72
 
67
73
  body_part = if mail.multipart?
@@ -69,10 +75,18 @@ class RailsEmailPreview::EmailsController < ::RailsEmailPreview::ApplicationCont
69
75
  else
70
76
  mail
71
77
  end
78
+
72
79
  if body_part.content_type =~ /plain/
73
80
  "<pre id='message_body'>#{html_escape(body_part.body.to_s)}</pre>".html_safe
74
81
  else
75
- body_part.body.to_s.html_safe
82
+ body_content = body_part.body.to_s
83
+
84
+ mail.attachments.each do |attachment|
85
+ web_url = rails_email_preview.rep_raw_email_attachment_url(params[:preview_id], attachment.filename)
86
+ body_content.gsub!(attachment.url, web_url)
87
+ end
88
+
89
+ body_content.html_safe
76
90
  end
77
91
  end
78
92
 
@@ -24,15 +24,23 @@ module RailsEmailPreview::EmailsHelper
24
24
  end
25
25
  end
26
26
 
27
+ def attachment_links
28
+ @mail.attachments.map do |attachment|
29
+ url = rails_email_preview.rep_raw_email_attachment_path(params[:preview_id], attachment.filename)
30
+ link_to(attachment.filename, url)
31
+ end.join('').html_safe
32
+ end
33
+
27
34
  def headers_name_value
28
35
  I18n.with_locale @email_locale do
29
36
  {
30
- 'Subject' => @mail.subject || '(no subject)',
31
- 'From' => @mail.from,
32
- 'Reply to' => @mail.reply_to,
33
- 'To' => @mail.to,
34
- 'CC' => @mail.cc,
35
- 'BCC' => @mail.bcc
37
+ 'Subject' => @mail.subject || '(no subject)',
38
+ 'From' => @mail.from,
39
+ 'Reply to' => @mail.reply_to,
40
+ 'To' => @mail.to,
41
+ 'CC' => @mail.cc,
42
+ 'BCC' => @mail.bcc,
43
+ 'Attachments' => attachment_links
36
44
  }.delete_if { |k, v| v.blank? }
37
45
  end
38
46
  end
@@ -1,7 +1,8 @@
1
1
  -# When rendering inside rails_email_preview hide nav, and hide irrelevant things from the form
2
2
  ruby:
3
- snippet = @snippet || @record.is_a?(Cms::Snippet) && @record
4
- if snippet && (p = ::RailsEmailPreview::Integrations::ComfortableMexicanSofa.rep_email_params_from_snippet(snippet))
3
+ adapter = ::RailsEmailPreview::Integrations::ComfortableMexicanSofa
4
+ snippet = @snippet || (adapter.cms_snippet_class === @record && @record)
5
+ if snippet && (p = adapter.rep_email_params_from_snippet(snippet))
5
6
  show_url = rails_email_preview.rep_raw_email_url(p.merge part_type: 'text/html')
6
7
  end
7
8
  customize_form = show_url.present? || snippet && !snippet.persisted?
@@ -1,6 +1,9 @@
1
1
  base_locale: en
2
2
  locales: [en, de]
3
-
3
+ search:
4
+ paths:
5
+ - app/
6
+ - lib/
4
7
  ignore_eq_base:
5
8
  en,de:
6
9
  - rep.base.in
@@ -1,34 +1,41 @@
1
+ ---
1
2
  de:
2
3
  rep:
3
4
  base:
4
5
  email:
5
- one: "1 E-Mail"
6
+ one: 1 E-Mail
6
7
  other: "%{count} E-Mails"
7
8
  mailer:
8
- one: "1 Mailer"
9
+ one: 1 Mailer
9
10
  other: "%{count} Mailer"
10
- in: "in"
11
- loading: "Lade..."
11
+ in: in
12
+ loading: Lade...
12
13
  test_deliver:
13
- no_delivery_method: "Bitte setze 'config.action_mailer.delivery_method' um E-Mails in der „%{environment}“ Umgebung zu senden."
14
- provide_email: "An welche Adresse senden?"
15
- sent_notice: "Senden an %{address} mit %{delivery_method}"
14
+ no_delivery_method: Bitte setze 'config.action_mailer.delivery_method' um E-Mails
15
+ in der „%{environment}“ Umgebung zu senden.
16
+ provide_email: An welche Adresse senden?
17
+ sent_notice: Senden an %{address} mit %{delivery_method}
16
18
  layouts:
17
19
  rails_email_preview:
18
20
  application:
19
- head_title: "E-Mails - REP"
21
+ head_title: E-Mails - REP
20
22
  rails_email_preview:
21
23
  emails:
22
24
  index:
23
- list_title: "Anwendungs E-Mails"
25
+ list_title: Anwendungs E-Mails
24
26
  show:
25
- breadcrumb_list: "E-Mails"
27
+ breadcrumb_list: E-Mails
26
28
  send_form:
27
- send_are_you_sure: "Diese Aktion wird diese E-Mail wirklich versenden. Bist du sicher?"
28
- send_btn: "Senden an"
29
- send_recipient_placeholder: "E-Mails"
29
+ send_are_you_sure: Diese Aktion wird diese E-Mail wirklich versenden. Bist
30
+ du sicher?
31
+ send_btn: Senden an
32
+ send_recipient_placeholder: E-Mails
30
33
  integrations:
31
34
  cms:
32
35
  customize_cms_for_rails_email_preview:
33
- edit_email: "E-Mail bearbeiten"
34
- view_link: "Anzeigen"
36
+ edit_email: E-Mail bearbeiten
37
+ view_link: Anzeigen
38
+ errors:
39
+ site_missing: Bitte erstellen Sie eine CMS-Website für %{locale} zuerst. Bei
40
+ der Verwendung von mehreren Gebietsschemas sollte der Standort gespiegelt
41
+ werden.
@@ -1,34 +1,39 @@
1
+ ---
1
2
  en:
2
3
  rep:
3
4
  base:
4
5
  email:
5
- one: "1 email"
6
+ one: 1 email
6
7
  other: "%{count} emails"
7
8
  mailer:
8
- one: "1 mailer"
9
+ one: 1 mailer
9
10
  other: "%{count} mailers"
10
- in: "in"
11
- loading: "Loading..."
11
+ in: in
12
+ loading: Loading...
12
13
  test_deliver:
13
- no_delivery_method: "Please set 'config.action_mailer.delivery_method' to send emails in '%{environment}' environment"
14
- provide_email: "Send to which address?"
15
- sent_notice: "Sent to %{address} via %{delivery_method}"
14
+ no_delivery_method: Please set 'config.action_mailer.delivery_method' to send
15
+ emails in '%{environment}' environment
16
+ provide_email: Send to which address?
17
+ sent_notice: Sent to %{address} via %{delivery_method}
16
18
  layouts:
17
19
  rails_email_preview:
18
20
  application:
19
- head_title: "Emails - REP"
21
+ head_title: Emails - REP
20
22
  rails_email_preview:
21
23
  emails:
22
24
  index:
23
- list_title: "Application Emails"
25
+ list_title: Application Emails
24
26
  show:
25
- breadcrumb_list: "Emails"
27
+ breadcrumb_list: Emails
26
28
  send_form:
27
- send_are_you_sure: "This will actually send this email. Are you sure?"
28
- send_btn: "Send to"
29
- send_recipient_placeholder: "Email"
29
+ send_are_you_sure: This will actually send this email. Are you sure?
30
+ send_btn: Send to
31
+ send_recipient_placeholder: Email
30
32
  integrations:
31
33
  cms:
34
+ errors:
35
+ site_missing: Please create a CMS site for %{locale} first. When using multiple
36
+ locales the site should be Mirrored.
32
37
  customize_cms_for_rails_email_preview:
33
- edit_email: "Editing email"
34
- view_link: "View"
38
+ edit_email: Editing email
39
+ view_link: View
data/config/routes.rb CHANGED
@@ -2,6 +2,7 @@ RailsEmailPreview::Engine.routes.draw do
2
2
  get '/' => 'emails#index', as: :rep_emails
3
3
 
4
4
  get 'raw/:preview_id' => 'emails#show_body', as: :rep_raw_email
5
+ get 'raw/:preview_id/:filename' => 'emails#show_attachment', as: :rep_raw_email_attachment
5
6
  get ':preview_id' => 'emails#show', as: :rep_email
6
7
  post 'test_deliver/:preview_id' => 'emails#test_deliver', as: :rep_test_deliver
7
8
 
@@ -5,21 +5,26 @@
5
5
  module RailsEmailPreview
6
6
  module Integrations
7
7
  module ComfortableMexicanSofa
8
- # returns CMS identifier for the current email
8
+ # @return [String] CMS identifier for the current email
9
9
  # ModerationMailer#approve -> "moderation_mailer-approve"
10
10
  def cms_email_id
11
11
  mailer = respond_to?(:controller) ? controller : self
12
12
  "#{mailer.class.name.underscore}-#{action_name}"
13
13
  end
14
14
 
15
- # Will return snippet title interpolated with passed variables
16
- # E.g, for snippet with title "Welcome, %{name}!"
17
- # cms_email_subject(name: "Alice") #=> "Welcome, Alice!"
15
+ # @param [Hash] interpolation subject interpolation values
16
+ # @return [String] Snippet title interpolated with passed variables
17
+ #
18
+ # For a snippet with title "Welcome, %{name}!"
19
+ # cms_email_subject(name: "Alice") #=> "Welcome, Alice!"
18
20
  def cms_email_subject(interpolation = {})
19
21
  snippet_id = "email-#{cms_email_id}"
20
- return '(no subject)' unless Cms::Snippet.where(identifier: snippet_id).exists?
22
+ return '(no subject)' unless cms_snippet_class.where(identifier: snippet_id).exists?
21
23
  [I18n.locale, I18n.default_locale].compact.each do |locale|
22
- site = Cms::Site.find_by_locale(locale.to_s)
24
+ site = cms_site_class.find_by_locale(locale.to_s)
25
+ unless site
26
+ raise "rails_email_preview: #{t 'integrations.cms.errors.site_missing', locale: locale}"
27
+ end
23
28
  snippet = site.snippets.find_by_identifier(snippet_id)
24
29
  next unless snippet.try(:content).present?
25
30
 
@@ -41,72 +46,109 @@ module RailsEmailPreview
41
46
  RequestStore.store[:rep_edit_links]
42
47
  end
43
48
 
44
- def cms_snippet_render_method
45
- [
46
- # Newer CMS
47
- :cms_snippet_render,
48
- # Older CMS
49
- :cms_snippet_content
50
- ].detect { |m| respond_to? m }
49
+ def cms_email_edit_link(site, default_site, snippet_id)
50
+ snippet = site.snippets.find_by_identifier(snippet_id) || cms_snippet_class.new(
51
+ label: "#{snippet_id.sub('-', ' / ').humanize}",
52
+ identifier: snippet_id,
53
+ site: site
54
+ )
55
+ p = {site_id: site.id}
56
+ edit_path = if snippet.persisted?
57
+ p[:id] = snippet.id
58
+ if snippet.content.blank? && default_site && (default_snippet = default_site.snippets.find_by_identifier(snippet_id))
59
+ p[:snippet] = {
60
+ content: default_snippet.content
61
+ }
62
+ p[:snippet][:label] = default_snippet.label unless snippet.label.present?
63
+ end
64
+ send :"edit_#{cms_admin_site_snippet_route}_path", p
65
+ else
66
+ p[:snippet] = {
67
+ label: snippet.label,
68
+ identifier: snippet.identifier,
69
+ category_ids: [site.categories.find_by_label('email').try(:id)]
70
+ }
71
+ send :"new_#{cms_admin_site_snippet_route}_path", p
72
+ end
73
+ <<-HTML.strip.html_safe
74
+ <table class='rep-edit-link'><tr><td>
75
+ #{cms_edit_email_snippet_link(edit_path)}
76
+ </td></tr></table>
77
+ HTML
51
78
  end
52
79
 
53
- # Will return snippet content, passing through Kramdown
54
- # Will also render an "✎ Edit text" link if used from
80
+ # @return [String] Snippet content, passed through Kramdown.
81
+ # Also renders an "✎ Edit" link inside the email when called from preview
55
82
  def cms_email_snippet(snippet_id = self.cms_email_id)
56
- snippet_id = "email-#{snippet_id}"
57
- site = Cms::Site.find_by_locale(I18n.locale.to_s)
58
- if Cms::Snippet.where(identifier: snippet_id).exists?
59
- # Fallback default locale: (# prefill)
83
+ snippet_id = "email-#{snippet_id}"
84
+ site = cms_site_class.find_by_locale(I18n.locale.to_s)
85
+ default_site = cms_site_class.find_by_locale(I18n.default_locale.to_s)
86
+
87
+ if cms_snippet_class.where(identifier: snippet_id).exists?
88
+ # Prefill from default locale if no content
60
89
  content = send(cms_snippet_render_method, snippet_id, site)
61
- unless content.present?
62
- default_site = Cms::Site.find_by_locale(I18n.default_locale.to_s)
63
- fallback_content = send(cms_snippet_render_method, snippet_id, default_site).presence
64
- end
65
- result = (content || fallback_content).to_s
90
+ result = (content.presence || send(cms_snippet_render_method, snippet_id, default_site)).to_s
66
91
  else
67
92
  result = ''
68
93
  end
69
94
 
70
- # If rendering in preview from admin, add edit/create lnk
95
+ # If rendering in preview from admin, add edit/create link
71
96
  if cms_email_edit_link?
72
- snippet = site.snippets.find_by_identifier(snippet_id)
73
-
74
- route_name = respond_to?(:new_cms_admin_site_snippet_path) ? :cms_admin_site_snippet : :admin_cms_site_snippet
75
-
76
-
77
- cms_path = if snippet
78
- unless content
79
- fallback_snippet = default_site.snippets.find_by_identifier(snippet_id)
80
- prefill_from_default = {label: fallback_snippet.label, content: fallback_snippet.content}
81
- end
82
- send :"edit_#{route_name}_path", site_id: site.id, id: snippet.id, snippet: prefill_from_default || nil
83
- else
84
- send :"new_#{route_name}_path", site_id: site.id,
85
- snippet: {
86
- label: "#{snippet_id.sub('-', ' / ').humanize}",
87
- identifier: snippet_id,
88
- category_ids: [site.categories.find_by_label('email').try(:id)]
89
- }
90
- end
91
-
92
- result = safe_join ["<table class='rep-edit-link'><tr><td>".html_safe, cms_edit_email_snippet_link(cms_path),
93
- "</td></tr></table>".html_safe, "\n\n", result]
97
+ result = safe_join [cms_email_edit_link(site, default_site, snippet_id), result], "\n\n"
94
98
  end
95
99
  result
96
100
  end
97
101
 
98
102
  def cms_edit_email_snippet_link(path)
99
- link_to(RailsEmailPreview.edit_link_text, path, style: RailsEmailPreview.edit_link_style.html_safe, 'onClick' => '')
103
+ link_to(RailsEmailPreview.edit_link_text, path, style: RailsEmailPreview.edit_link_style.html_safe)
100
104
  end
101
105
 
102
106
  def self.rep_email_params_from_snippet(snippet)
103
107
  id_prefix = 'email-'
104
108
  return unless snippet && snippet.identifier && snippet.identifier.starts_with?(id_prefix)
105
109
  mailer_cl, act = snippet.identifier[id_prefix.length..-1].split('-')
106
- act.sub! /_email\Z/, ''
107
- { preview_id: "#{mailer_cl}_preview-#{act}",
108
- email_locale: snippet.site.locale }
110
+ {preview_id: "#{mailer_cl}_preview-#{act}",
111
+ email_locale: snippet.site.locale}
112
+ end
113
+
114
+ module CmsVersionsCompatibility
115
+ def cms_admin_site_snippet_route
116
+ if respond_to?(:new_comfy_admin_cms_site_snippet_path)
117
+ # cms >= 1.11
118
+ :comfy_admin_cms_site_snippet
119
+ else
120
+ :admin_cms_site_snippet
121
+ end
122
+ end
123
+
124
+ def cms_snippet_class
125
+ if defined?(::Comfy::Cms::Snippet)
126
+ # cms >= 1.12
127
+ ::Comfy::Cms::Snippet
128
+ else
129
+ ::Cms::Snippet
130
+ end
131
+ end
132
+
133
+ def cms_site_class
134
+ if defined?(::Comfy::Cms::Site)
135
+ # cms >= 1.12
136
+ ::Comfy::Cms::Site
137
+ else
138
+ ::Cms::Site
139
+ end
140
+ end
141
+
142
+ def cms_snippet_render_method
143
+ [
144
+ # cms >= 1.11
145
+ :cms_snippet_render,
146
+ :cms_snippet_content
147
+ ].detect { |m| respond_to? m }
148
+ end
109
149
  end
150
+ extend CmsVersionsCompatibility
151
+ include CmsVersionsCompatibility
110
152
  end
111
153
  end
112
154
  end
@@ -1,3 +1,3 @@
1
1
  module RailsEmailPreview
2
- VERSION = '0.2.20'
2
+ VERSION = '0.2.21'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_email_preview
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.20
4
+ version: 0.2.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gleb Mazovetskiy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-17 00:00:00.000000000 Z
11
+ date: 2014-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -86,42 +86,42 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 0.3.7
89
+ version: 0.5.2
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 0.3.7
96
+ version: 0.5.2
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: capybara
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 0.4.0
103
+ version: 2.3.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 0.4.0
110
+ version: 2.3.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rspec
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 2.12.0
117
+ version: 3.0.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 2.12.0
124
+ version: 3.0.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec-rails
127
127
  requirement: !ruby/object:Gem::Requirement