Module: SimpleEmailPreview
- Defined in:
- lib/simple_email_preview.rb,
lib/simple_email_preview/engine.rb,
lib/simple_email_preview/version.rb,
lib/simple_email_preview/view_hooks.rb,
app/models/simple_email_preview/preview.rb,
lib/simple_email_preview/delivery_handler.rb,
lib/generators/simple_email_preview/install_generator.rb,
app/controllers/simple_email_preview/emails_controller.rb,
app/presenters/simple_email_preview/preview_list_presenter.rb,
app/controllers/simple_email_preview/application_controller.rb,
lib/generators/simple_email_preview/update_previews_generator.rb
Defined Under Namespace
Modules: EmailsHelper, Generators, MainAppRouteDelegator
Classes: ApplicationController, DeliveryHandler, EmailsController, Engine, Preview, PreviewListPresenter, ViewHooks
Constant Summary
collapse
- VERSION =
'1.0.0'.freeze
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
47
48
49
|
# File 'lib/simple_email_preview.rb', line 47
def view_hooks
@view_hooks
end
|
Class Method Details
.before_render(&block) ⇒ Object
73
74
75
76
|
# File 'lib/simple_email_preview.rb', line 73
def before_render(&block)
inline_main_app_routes!
((@hooks ||= {})[:before_render] ||= []) << block
end
|
.find_preview_classes(dir) ⇒ Object
54
55
56
57
|
# File 'lib/simple_email_preview.rb', line 54
def find_preview_classes(dir)
return [] unless File.directory?(dir)
Dir.chdir(dir) { Dir['**/*_preview.rb'].map { |p| p.sub(/\.rb$/, '').camelize } }
end
|
.inline_main_app_routes! ⇒ Object
78
79
80
81
82
83
|
# File 'lib/simple_email_preview.rb', line 78
def inline_main_app_routes!
unless ::SimpleEmailPreview::EmailsController.instance_variable_get(:@inlined_routes)
::SimpleEmailPreview::EmailsController.helper ::SimpleEmailPreview::MainAppRouteDelegator
::SimpleEmailPreview::EmailsController.instance_variable_set(:@inlined_routes, true)
end
end
|
.layout=(layout) ⇒ Object
59
60
61
62
63
64
65
|
# File 'lib/simple_email_preview.rb', line 59
def layout=(layout)
[::SimpleEmailPreview::ApplicationController, ::SimpleEmailPreview::EmailsController].each { |ctrl| ctrl.layout layout }
if layout && layout !~ %r{^simple_email_preview/}
inline_main_app_routes!
end
end
|
.preview_classes=(classes) ⇒ Object
49
50
51
52
|
# File 'lib/simple_email_preview.rb', line 49
def preview_classes=(classes)
@preview_classes = classes
SimpleEmailPreview::Preview.load_all(classes)
end
|
.run_before_render(mail, preview) ⇒ Object
67
68
69
70
71
|
# File 'lib/simple_email_preview.rb', line 67
def run_before_render(mail, preview)
(defined?(@hooks) && @hooks[:before_render] || []).each do |block|
block.call(mail, preview)
end
end
|
.setup {|_self| ... } ⇒ Object
85
86
87
|
# File 'lib/simple_email_preview.rb', line 85
def setup
yield self
end
|