class ActionMailerProvider::Generators::InstallGenerator

Attributes

domain[RW]
email[RW]
password[RW]
provider[RW]

Public Instance Methods

install() click to toggle source
# File lib/generators/action_mailer_provider/install_generator.rb, line 8
def install
  set_defaults
  if yes?('By default, values will be fetched through env variables. Would you like to customize them instead? [yN]')
    override_default(:provider, 'What provider would you like to use?')
    override_default(:domain, 'What\'s your email domain?')
    override_default(:email, 'What\'s the email address to use?')
    override_default(:password, 'Email password')
  end
  template 'initializer.rb.erb', 'config/initializers/action_mailer_provider.rb'
end

Private Instance Methods

override_default(attr, question) click to toggle source
# File lib/generators/action_mailer_provider/install_generator.rb, line 34
def override_default(attr, question)
  new_value = ask("#{question} [#{public_send(attr)}]")
  if new_value.size > 0
    public_send("#{attr}=", quote(new_value))
  end
end
quote(str) click to toggle source
# File lib/generators/action_mailer_provider/install_generator.rb, line 23
def quote(str)
  "'#{str}'"
end
set_defaults() click to toggle source
# File lib/generators/action_mailer_provider/install_generator.rb, line 27
def set_defaults
  @provider = "ENV['EMAIL_PROVIDER']"
  @domain = "ENV['EMAIL_DOMAIN']"
  @email = "ENV['EMAIL_USERNAME']"
  @password = "ENV['EMAIL_PASSWORD']"
end