aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #15815 from DNNX/mail-helper-refactoringRafael Mendonça França2014-06-191-2/+2
|\ | | | | Remove unused block parameter from #gsub call in AM::MailHelper#block_format
| * Remove unused block parameter from #gsub call in AM::MailHelper#block_formatViktar Basharymau2014-06-191-2/+2
| |
* | Add `logger.debug?` guard to `ActionMailer::LogSubscriber#process`Viktar Basharymau2014-06-191-0/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *TLDR*: The method is 4 times faster when log level is higher than DEBUG. Also, the other two methods, `#deliver` and `#receive` have similar guard statements, so this commit adds some symmetry to the code. This is probably not the most critical part of ActionMailer in terms of performance, but here are some benchmarks: ``` require 'benchmark/ips' require 'action_mailer' event = ActiveSupport::Notifications::Event.new( 'process.action_mailer', Time.now, Time.now, 'bf4e2b36ce085fd35b24', { mailer: "UserMailer", action: :welcome } ) ActionMailer::Base.logger = ActiveSupport::Logger.new '/dev/null' subscriber = ActionMailer::LogSubscriber.new def subscriber.process_with_guard(event) return unless logger.debug? mailer = event.payload[:mailer] action = event.payload[:action] debug("\n#{mailer}##{action}: processed outbound mail in #{event.duration.round(1)}ms") end Benchmark.ips do |r| ActionMailer::Base.logger.level = ::Logger::Severity::INFO r.report('no guard') { subscriber.process(event) } r.report(' guard') { subscriber.process_with_guard(event) } end __END__ Calculating ------------------------------------- no guard 9640 i/100ms guard 38381 i/100ms ------------------------------------------------- no guard 169166.9 (±10.2%) i/s - 838680 in 5.007262s guard 728184.9 (±9.6%) i/s - 3607814 in 4.999218s ``` When log level is DEBUG, the _guarded_ method is a bit slower. This is a good tradeoff for 4x improvement in production mode. ``` Benchmark.ips do |r| ActionMailer::Base.logger.level = ::Logger::Severity::DEBUG r.report('no guard') { subscriber.process(event) } r.report(' guard') { subscriber.process_with_guard(event) } end __END__ Calculating ------------------------------------- no guard 4970 i/100ms guard 4564 i/100ms ------------------------------------------------- no guard 55617.4 (±3.5%) i/s - 278320 in 5.010523s guard 49452.1 (±5.6%) i/s - 251020 in 5.093358s ```
* allow preview interceptors to be registered through `config.action_mailer`.Yves Senn2014-06-153-1/+9
| | | | | | | | | | | | | | | This was partially broken because `preview_interceptors=` just assigned the raw values, whithout going through `register_preview_interceptor`. Now the Action Mailer railtie takes care of the `preview_interceptors` option. This commit is a partial revert of: Revert "Merge pull request #15739 from y-yagi/correct_doc_for_action_mailer_base" This reverts commit a15704d7f35f17d34d0118546799141d6f853656, reversing changes made to 1bd12a8609d275ad75fcc4b622ca4f5b32dc76be. /cc @kuldeepaggarwal @y-yagi
* [ci skip] correct doc for `register_preview_interceptor`yuuji.yaginuma2014-06-151-1/+1
|
* Merge pull request #15590 from ↵Yves Senn2014-06-121-4/+0
|\ | | | | | | | | | | | | | | | | zuhao/refactor_actionview_register_template_handler Add unregister_template_handler to prevent leaks. Conflicts: actionview/CHANGELOG.md
| * Add unregister_template_handler to prevent leaks.Zuhao Wan2014-06-121-4/+0
| |
* | [ci skip] Improve enable_starttls_auto documentation.Juanito Fatas2014-06-111-2/+2
|/
* Restore I18n.locale to default after test.Zuhao Wan2014-06-071-0/+4
| | | | | | | | | | If i18n_with_controller_test.rb were to run first, the I18n.locale will be changed to :de, and the following tests in base_test.rb will fail: "subject gets default from I18n" “default subject can have interpolations” "translations are scoped properly" "implicit multipart with default locale"
* Restore test deliveries properly in ActionMailer.Zuhao Wan2014-06-071-0/+8
| | | | | | | | | | | `ActionMailer::Base.delivery_method` and `ActionMailer::Base.perform_deliveries` have leaked states. "delivery method can be customized per instance" and "delivery method can be customized in subclasses not changing the parent" in delivery_methods_test.rb will fail if test_helper_test.rb (in which TestHelperMailerTest is inherited from ActionMailer::TestCase) runs before it.
* Relax mail gem constraint from ~> 2.5.4 to ~> 2.5, >= 2.5.4Benjamin Fleischer2014-06-031-1/+1
| | | | | | | | | | | | | | This allows Rails users to install mail 2.6 which relaxes the mime-types dependency, which is a big win for a lot of people. Previously, the mail gem restricted mime-types to ~> 1.16 but now it has expanded to [">= 1.16", "< 3"] And the mime-types maintainer will also be checking that 2.x releases don't break mail. See https://github.com/mikel/mail/pull/713 https://rubygems.org/gems/mail/versions/2.6.0
* Feature requests should be made on the mailing list, not submitted toZachary Scott2014-06-011-1/+5
| | | | the issue tracker. See also #15455 [ci skip]
* Pass through AM documentation re: 02d048d [ci skip]Zachary Scott2014-05-262-5/+7
|
* Use "Action Mailer" as canonical name in documentation [ci skip]Zachary Scott2014-05-261-1/+1
| | | | | See also: https://github.com/rails/rails/commit/3a297f8db75b172882bb3c2f9440d0c7365b8b11#commitcomment-6451708
* Add description of ActionMailer::TestHelper module [ci skip]Zachary Scott2014-05-261-0/+2
|
* Merge pull request #15083 from ↵Yves Senn2014-05-131-11/+14
|\ | | | | | | | | zuhao/refactor_actionmailer_i18n_with_controller_test Use with_translation helper to clean up I18n stored translations.
| * Use with_translation helper to clean up I18n stored translations.Zuhao Wan2014-05-131-11/+14
| |
* | Merge pull request #15082 from zuhao/refactor_actionmailer_delivery_methods_testYves Senn2014-05-131-30/+42
|\ \ | | | | | | Clean up deliveries after each test.
| * | Move state restoration from setup/teardown into affected test cases.Zuhao Wan2014-05-131-30/+42
| |/
* | Merge pull request #15086 from zuhao/refactor_actionmailer_mail_layout_testYves Senn2014-05-131-10/+0
|\ \ | | | | | | Do not clear deliveries in setup.
| * | Remove unnecessary setup and teardown.Zuhao Wan2014-05-131-10/+0
| |/
* / A minor stylistic fix and cleanup of mail deliveries.Zuhao Wan2014-05-131-3/+5
|/
* Fix state leaks in actionmailer/test/base_test.rb.Zuhao Wan2014-05-071-102/+157
|
* [ci skip] Improve formatting and ymlGaurav Sharma2014-04-241-2/+2
|
* Fix MailerPreview broken testsArthur Neves2014-03-151-4/+4
| | | | | | | | | | | `BaseMailerPreview.welcome` is an instance method, so we need to stub the method on a instance level and not on Class. The stub is important to make sure the Message object is the same in the other expectations. This was working randomly because Mocha uses == to compare two objects on the `with()` expectation and even if the Mail::Message objects were not the same object they are equal, but thats not the case in 100% of the runs. So we need to make sure we use `.any_instance` method and have the right message object.
* Make sure we clean preview_interceptorsArthur Neves2014-03-071-0/+1
| | | | We should make sure we clean preview_interceptors after each test so they dont leaky to the next test
* Merge branch 'master' of github.com:rails/docrailsVijay Dev2014-03-072-2/+2
|\ | | | | | | | | Conflicts: guides/source/4_1_release_notes.md
| * :scissors:Zachary Scott2014-02-232-2/+2
| | | | | | | | This commit also addresses rails/docrails#169 and rails/rails#14159
* | Introduce `Rails.gem_version`Prem Sichanugrist2014-03-052-7/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This method return `Gem::Version.new(Rails.version)`, suggesting a more reliable way to perform version comparison. Example: Rails.version #=> "4.1.2" Rails.gem_version #=> #<Gem::Version "4.1.2"> Rails.version > "4.1.10" #=> false Rails.gem_version > Gem::Version.new("4.1.10") #=> true Gem::Requirement.new("~> 4.1.2") =~ Rails.gem_version #=> true This was originally introduced as `.version` by @charliesome in #8501 but got reverted in #10002 since it was not backward compatible. Also, updating template for `rake update_versions`.
* | Point master changelogs to 4-1-stable branchCarlos Antonio da Silva2014-02-251-61/+1
| | | | | | | | Remove 4-1 related entries from master [ci skip]
* | update version to 4.2.0.alphaYves Senn2014-02-231-1/+1
|/
* Fix render plain docs example in AM::BaseGuillermo Iguaran2014-02-181-2/+2
| | | The errors were introduced in e220a34e39
* Update Docs in favor to use render plain instead of text optionrobertomiranda2014-02-181-3/+3
| | | | ref #14062
* Merge branch '4-1-0-beta2'Rafael Mendonça França2014-02-181-1/+1
|\ | | | | | | | | | | Conflicts: actionview/CHANGELOG.md activerecord/CHANGELOG.md
| * Preparing for 4.1.0.beta2 releaseRafael Mendonça França2014-02-181-1/+1
| |
* | Fix typo [ci skip]Rafael Mendonça França2014-02-161-1/+1
| |
* | Merge pull request #13997 from dmitry/test_coverage_improvementRafael Mendonça França2014-02-092-10/+21
|\ \ | | | | | | Test coverage improvement
| * | add actionmailer test coverage for undefined delivery methodDmitry Polushkin2014-02-092-10/+21
| | |
* | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2014-02-091-1/+1
|\ \ \ | |/ / |/| | | | | | | | | | | | | | Conflicts: guides/source/active_record_validations.md guides/source/api_documentation_guidelines.md guides/source/configuring.md
| * | e-mail => email, and subject/verb agreementWaynn Lue2014-01-131-1/+1
| | |
* | | tidy CHANGELOGs [ci skip]Yves Senn2014-01-301-4/+6
| | |
* | | Remove an extra comment [ci skip]Robin Dupret2014-01-261-1/+0
| | |
* | | Support underscored symbols in Action Mailer configAndrew White2014-01-263-5/+37
| | | | | | | | | | | | | | | | | | We allow the use of underscored symbols to represent classes throughout other parts of Rails so it seems incongruous that it's not supported in `register_interceptor` and `register_observer`.
* | | Don't use a class_attribute for ActionMailer::Base.preview_pathAndrew White2014-01-262-7/+3
| | | | | | | | | | | | | | | Since preview_path is read from ActionMailer::Base when previewing, subclasses can’t change it so don’t there's no need for the extra overhead imposed by using it.
* | | Add the ability to intercept emails before previewingAndrew White2014-01-264-5/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To support the ability for tools like CSS style inliners to operate on emails being previewed this commit adds a hook in a similar fashion to the existing delivery interceptor hook, e.g: class CSSInlineStyler def self.previewing_email(message) # inline CSS styles end end ActionMailer::Base.register_preview_interceptor CSSInlineStyler Fixes #13622.
* | | docs should say `email` not `Email`. [ci skip]Yves Senn2014-01-201-1/+1
| | |
* | | removed extra comma [ci skip]Kuldeep Aggarwal2014-01-141-1/+1
| | |
* | | standardize on jruby_skip & rbx_skipGaurish Sharma2014-01-131-0/+9
| | | | | | | | | | | | | | | | | | This Adds helpers(jruby_skip & rbx_skip). In Future, Plan is to use these helpers instead of calls directly to RUBY_ENGINE/RbConfig/JRUBY_VERSION
* | | quick formatting pass through CHANGELOGS. [ci skip].Yves Senn2014-01-061-0/+2
| | |
* | | Add preview_path to autoload_paths in after_initializeAndrew White2014-01-042-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only config.autoload_paths is frozen, so add the preview_path to ActiveSupport::Dependencies.autoload_paths directly in an after_initialize block. Also protect against a blank preview_path being added to autoload_paths which can cause a serious slowdown as Dir[] tries to load all *_preview.rb files under / Fixes #13372