actionmailer 3.2.22.5 → 4.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@ require 'abstract_controller/collector'
2
2
  require 'active_support/core_ext/hash/reverse_merge'
3
3
  require 'active_support/core_ext/array/extract_options'
4
4
 
5
- module ActionMailer #:nodoc:
5
+ module ActionMailer
6
6
  class Collector
7
7
  include AbstractController::Collector
8
8
  attr_reader :responses
@@ -15,13 +15,13 @@ module ActionMailer #:nodoc:
15
15
 
16
16
  def any(*args, &block)
17
17
  options = args.extract_options!
18
- raise "You have to supply at least one format" if args.empty?
18
+ raise ArgumentError, "You have to supply at least one format" if args.empty?
19
19
  args.each { |type| send(type, options.dup, &block) }
20
20
  end
21
21
  alias :all :any
22
22
 
23
- def custom(mime, options={})
24
- options.reverse_merge!(:content_type => mime.to_s)
23
+ def custom(mime, options = {})
24
+ options.reverse_merge!(content_type: mime.to_s)
25
25
  @context.formats = [mime.to_sym]
26
26
  options[:body] = block_given? ? yield : @default_render.call
27
27
  @responses << options
@@ -1,8 +1,8 @@
1
1
  require 'tmpdir'
2
2
 
3
3
  module ActionMailer
4
- # This module handles everything related to mail delivery, from registering new
5
- # delivery methods to configuring the mail object to be sent.
4
+ # This module handles everything related to mail delivery, from registering
5
+ # new delivery methods to configuring the mail object to be sent.
6
6
  module DeliveryMethods
7
7
  extend ActiveSupport::Concern
8
8
 
@@ -20,44 +20,41 @@ module ActionMailer
20
20
  self.delivery_method = :smtp
21
21
 
22
22
  add_delivery_method :smtp, Mail::SMTP,
23
- :address => "localhost",
24
- :port => 25,
25
- :domain => 'localhost.localdomain',
26
- :user_name => nil,
27
- :password => nil,
28
- :authentication => nil,
29
- :enable_starttls_auto => true
23
+ address: "localhost",
24
+ port: 25,
25
+ domain: 'localhost.localdomain',
26
+ user_name: nil,
27
+ password: nil,
28
+ authentication: nil,
29
+ enable_starttls_auto: true
30
30
 
31
31
  add_delivery_method :file, Mail::FileDelivery,
32
- :location => defined?(Rails.root) ? "#{Rails.root}/tmp/mails" : "#{Dir.tmpdir}/mails"
32
+ location: defined?(Rails.root) ? "#{Rails.root}/tmp/mails" : "#{Dir.tmpdir}/mails"
33
33
 
34
34
  add_delivery_method :sendmail, Mail::Sendmail,
35
- :location => '/usr/sbin/sendmail',
36
- :arguments => '-i -t'
35
+ location: '/usr/sbin/sendmail',
36
+ arguments: '-i -t'
37
37
 
38
38
  add_delivery_method :test, Mail::TestMailer
39
39
  end
40
40
 
41
41
  module ClassMethods
42
42
  # Provides a list of emails that have been delivered by Mail::TestMailer
43
- delegate :deliveries, :deliveries=, :to => Mail::TestMailer
43
+ delegate :deliveries, :deliveries=, to: Mail::TestMailer
44
44
 
45
- # Adds a new delivery method through the given class using the given symbol
46
- # as alias and the default options supplied:
47
- #
48
- # Example:
45
+ # Adds a new delivery method through the given class using the given
46
+ # symbol as alias and the default options supplied.
49
47
  #
50
48
  # add_delivery_method :sendmail, Mail::Sendmail,
51
- # :location => '/usr/sbin/sendmail',
52
- # :arguments => '-i -t'
53
- #
49
+ # location: '/usr/sbin/sendmail',
50
+ # arguments: '-i -t'
54
51
  def add_delivery_method(symbol, klass, default_options={})
55
52
  class_attribute(:"#{symbol}_settings") unless respond_to?(:"#{symbol}_settings")
56
53
  send(:"#{symbol}_settings=", default_options)
57
54
  self.delivery_methods = delivery_methods.merge(symbol.to_sym => klass).freeze
58
55
  end
59
56
 
60
- def wrap_delivery_behavior(mail, method=nil) #:nodoc:
57
+ def wrap_delivery_behavior(mail, method=nil, options=nil) # :nodoc:
61
58
  method ||= self.delivery_method
62
59
  mail.delivery_handler = self
63
60
 
@@ -65,8 +62,8 @@ module ActionMailer
65
62
  when NilClass
66
63
  raise "Delivery method cannot be nil"
67
64
  when Symbol
68
- if klass = delivery_methods[method.to_sym]
69
- mail.delivery_method(klass, send(:"#{method}_settings"))
65
+ if klass = delivery_methods[method]
66
+ mail.delivery_method(klass,(send(:"#{method}_settings") || {}).merge!(options || {}))
70
67
  else
71
68
  raise "Invalid delivery method #{method.inspect}"
72
69
  end
@@ -79,7 +76,7 @@ module ActionMailer
79
76
  end
80
77
  end
81
78
 
82
- def wrap_delivery_behavior!(*args) #:nodoc:
79
+ def wrap_delivery_behavior!(*args) # :nodoc:
83
80
  self.class.wrap_delivery_behavior(message, *args)
84
81
  end
85
82
  end
@@ -1,15 +1,15 @@
1
- require 'active_support/core_ext/array/wrap'
2
-
3
1
  module ActionMailer
4
2
  class LogSubscriber < ActiveSupport::LogSubscriber
5
3
  def deliver(event)
6
- recipients = Array.wrap(event.payload[:to]).join(', ')
7
- info("\nSent mail to #{recipients} (#{format_duration(event.duration)})")
4
+ return unless logger.info?
5
+ recipients = Array(event.payload[:to]).join(', ')
6
+ info("\nSent mail to #{recipients} (#{event.duration.round(1)}ms)")
8
7
  debug(event.payload[:mail])
9
8
  end
10
9
 
11
10
  def receive(event)
12
- info("\nReceived mail (#{format_duration(event.duration)})")
11
+ return unless logger.info?
12
+ info("\nReceived mail (#{event.duration.round(1)}ms)")
13
13
  debug(event.payload[:mail])
14
14
  end
15
15
 
@@ -1,11 +1,11 @@
1
1
  module ActionMailer
2
2
  module MailHelper
3
- # Uses Text::Format to take the text and format it, indented two spaces for
4
- # each line, and wrapped at 72 columns.
3
+ # Take the text and format it, indented two spaces for each line, and
4
+ # wrapped at 72 columns.
5
5
  def block_format(text)
6
- formatted = text.split(/\n\r\n/).collect { |paragraph|
6
+ formatted = text.split(/\n\r?\n/).collect { |paragraph|
7
7
  format_paragraph(paragraph)
8
- }.join("\n")
8
+ }.join("\n\n")
9
9
 
10
10
  # Make list points stand on their own line
11
11
  formatted.gsub!(/[ ]*([*]+) ([^*]*)/) { |s| " #{$1} #{$2.strip}\n" }
@@ -31,9 +31,7 @@ module ActionMailer
31
31
 
32
32
  # Returns +text+ wrapped at +len+ columns and indented +indent+ spaces.
33
33
  #
34
- # === Examples
35
- #
36
- # my_text = "Here is a sample text with more than 40 characters"
34
+ # my_text = 'Here is a sample text with more than 40 characters'
37
35
  #
38
36
  # format_paragraph(my_text, 25, 4)
39
37
  # # => " Here is a sample text with\n more than 40 characters"
@@ -41,7 +39,7 @@ module ActionMailer
41
39
  sentences = [[]]
42
40
 
43
41
  text.split.each do |word|
44
- if (sentences.last + [word]).join(' ').length > len
42
+ if sentences.first.present? && (sentences.last + [word]).join(' ').length > len
45
43
  sentences << [word]
46
44
  else
47
45
  sentences.last << word
@@ -3,8 +3,9 @@ require "rails"
3
3
  require "abstract_controller/railties/routes_helpers"
4
4
 
5
5
  module ActionMailer
6
- class Railtie < Rails::Railtie
6
+ class Railtie < Rails::Railtie # :nodoc:
7
7
  config.action_mailer = ActiveSupport::OrderedOptions.new
8
+ config.eager_load_namespaces << ActionMailer
8
9
 
9
10
  initializer "action_mailer.logger" do
10
11
  ActiveSupport.on_load(:action_mailer) { self.logger ||= Rails.logger }
@@ -19,7 +20,6 @@ module ActionMailer
19
20
  options.stylesheets_dir ||= paths["public/stylesheets"].first
20
21
 
21
22
  # make sure readers methods get compiled
22
- options.asset_path ||= app.config.asset_path
23
23
  options.asset_host ||= app.config.asset_host
24
24
  options.relative_url_root ||= app.config.relative_url_root
25
25
 
@@ -1,4 +1,4 @@
1
- require 'active_support/core_ext/class/attribute'
1
+ require 'active_support/test_case'
2
2
 
3
3
  module ActionMailer
4
4
  class NonInferrableMailerError < ::StandardError
@@ -13,6 +13,7 @@ module ActionMailer
13
13
  module Behavior
14
14
  extend ActiveSupport::Concern
15
15
 
16
+ include ActiveSupport::Testing::ConstantLookup
16
17
  include TestHelper
17
18
 
18
19
  included do
@@ -42,9 +43,11 @@ module ActionMailer
42
43
  end
43
44
 
44
45
  def determine_default_mailer(name)
45
- name.sub(/Test$/, '').constantize
46
- rescue NameError
47
- raise NonInferrableMailerError.new(name)
46
+ mailer = determine_constant_from_test_name(name) do |constant|
47
+ Class === constant && constant < ActionMailer::Base
48
+ end
49
+ raise NonInferrableMailerError.new(name) if mailer.nil?
50
+ mailer
48
51
  end
49
52
  end
50
53
 
@@ -1,27 +1,26 @@
1
1
  module ActionMailer
2
2
  module TestHelper
3
- extend ActiveSupport::Concern
4
-
5
3
  # Asserts that the number of emails sent matches the given number.
6
4
  #
7
5
  # def test_emails
8
6
  # assert_emails 0
9
- # ContactMailer.deliver_contact
7
+ # ContactMailer.welcome.deliver
10
8
  # assert_emails 1
11
- # ContactMailer.deliver_contact
9
+ # ContactMailer.welcome.deliver
12
10
  # assert_emails 2
13
11
  # end
14
12
  #
15
- # If a block is passed, that block should cause the specified number of emails to be sent.
13
+ # If a block is passed, that block should cause the specified number of
14
+ # emails to be sent.
16
15
  #
17
16
  # def test_emails_again
18
17
  # assert_emails 1 do
19
- # ContactMailer.deliver_contact
18
+ # ContactMailer.welcome.deliver
20
19
  # end
21
20
  #
22
21
  # assert_emails 2 do
23
- # ContactMailer.deliver_contact
24
- # ContactMailer.deliver_contact
22
+ # ContactMailer.welcome.deliver
23
+ # ContactMailer.welcome.deliver
25
24
  # end
26
25
  # end
27
26
  def assert_emails(number)
@@ -39,7 +38,7 @@ module ActionMailer
39
38
  #
40
39
  # def test_emails
41
40
  # assert_no_emails
42
- # ContactMailer.deliver_contact
41
+ # ContactMailer.welcome.deliver
43
42
  # assert_emails 1
44
43
  # end
45
44
  #
@@ -1,9 +1,9 @@
1
1
  module ActionMailer
2
2
  module VERSION #:nodoc:
3
- MAJOR = 3
4
- MINOR = 2
5
- TINY = 22
6
- PRE = "5"
3
+ MAJOR = 4
4
+ MINOR = 0
5
+ TINY = 0
6
+ PRE = "beta1"
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
9
9
  end
@@ -1,6 +1,6 @@
1
1
  Description:
2
2
  ============
3
- Stubs out a new mailer and its views. Pass the mailer name, either
3
+ Stubs out a new mailer and its views. Passes the mailer name, either
4
4
  CamelCased or under_scored, and an optional list of emails as arguments.
5
5
 
6
6
  This generates a mailer class in app/mailers and invokes your template
@@ -10,9 +10,8 @@ Example:
10
10
  ========
11
11
  rails generate mailer Notifications signup forgot_password invoice
12
12
 
13
- creates a Notifications mailer class, views, test, and fixtures:
13
+ creates a Notifications mailer class, views, and test:
14
14
  Mailer: app/mailers/notifications.rb
15
- Views: app/views/notifications/signup.erb [...]
16
- Test: test/functional/notifications_test.rb
17
- Fixtures: test/fixtures/notifications/signup [...]
15
+ Views: app/views/notifications/signup.text.erb [...]
16
+ Test: test/mailers/notifications_test.rb
18
17
 
@@ -3,7 +3,7 @@ module Rails
3
3
  class MailerGenerator < NamedBase
4
4
  source_root File.expand_path("../templates", __FILE__)
5
5
 
6
- argument :actions, :type => :array, :default => [], :banner => "method method"
6
+ argument :actions, type: :array, default: [], banner: "method method"
7
7
  check_class_collision
8
8
 
9
9
  def create_mailer_file
@@ -1,17 +1,17 @@
1
1
  <% module_namespacing do -%>
2
2
  class <%= class_name %> < ActionMailer::Base
3
- default <%= key_value :from, '"from@example.com"' %>
3
+ default from: "from@example.com"
4
4
  <% actions.each do |action| -%>
5
5
 
6
6
  # Subject can be set in your I18n file at config/locales/en.yml
7
7
  # with the following lookup:
8
8
  #
9
- # en.<%= file_path.gsub("/",".") %>.<%= action %>.subject
9
+ # en.<%= file_path.tr("/",".") %>.<%= action %>.subject
10
10
  #
11
11
  def <%= action %>
12
12
  @greeting = "Hi"
13
13
 
14
- mail <%= key_value :to, '"to@example.org"' %>
14
+ mail to: "to@example.org"
15
15
  end
16
16
  <% end -%>
17
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionmailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.22.5
4
+ version: 4.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-14 00:00:00.000000000 Z
11
+ date: 2013-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.22.5
19
+ version: 4.0.0.beta1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.2.22.5
26
+ version: 4.0.0.beta1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mail
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 2.5.4
33
+ version: 2.5.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: 2.5.4
40
+ version: 2.5.3
41
41
  description: Email on Rails. Compose, deliver, receive, and test emails using the
42
42
  familiar controller/view pattern. First-class support for multipart email and attachments.
43
43
  email: david@loudthinking.com
@@ -46,9 +46,8 @@ extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
48
  - CHANGELOG.md
49
- - MIT-LICENSE
50
49
  - README.rdoc
51
- - lib/action_mailer.rb
50
+ - MIT-LICENSE
52
51
  - lib/action_mailer/base.rb
53
52
  - lib/action_mailer/collector.rb
54
53
  - lib/action_mailer/delivery_methods.rb
@@ -58,9 +57,10 @@ files:
58
57
  - lib/action_mailer/test_case.rb
59
58
  - lib/action_mailer/test_helper.rb
60
59
  - lib/action_mailer/version.rb
61
- - lib/rails/generators/mailer/USAGE
60
+ - lib/action_mailer.rb
62
61
  - lib/rails/generators/mailer/mailer_generator.rb
63
62
  - lib/rails/generators/mailer/templates/mailer.rb
63
+ - lib/rails/generators/mailer/USAGE
64
64
  homepage: http://www.rubyonrails.org
65
65
  licenses:
66
66
  - MIT
@@ -71,20 +71,19 @@ require_paths:
71
71
  - lib
72
72
  required_ruby_version: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - '>='
75
75
  - !ruby/object:Gem::Version
76
- version: 1.8.7
76
+ version: 1.9.3
77
77
  required_rubygems_version: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - ">="
79
+ - - '>'
80
80
  - !ruby/object:Gem::Version
81
- version: '0'
81
+ version: 1.3.1
82
82
  requirements:
83
83
  - none
84
84
  rubyforge_project:
85
- rubygems_version: 2.6.6
85
+ rubygems_version: 2.0.0
86
86
  signing_key:
87
87
  specification_version: 4
88
88
  summary: Email composition, delivery, and receiving framework (part of Rails).
89
89
  test_files: []
90
- has_rdoc: