Module: Hoe::Email

Defined in:
lib/hoe/email.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#email_toObject (readonly)

Returns the value of attribute email_to.



13
14
15
# File 'lib/hoe/email.rb', line 13

def email_to
  @email_to
end

Instance Method Details

#define_email_tasksObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/hoe/email.rb', line 21

def define_email_tasks
  require 'net/smtp'
  begin
    require 'smtp_tls'
  rescue LoadError
  end

  # attach to announcements
  task :announce => :send_email

  desc "Send an announcement email."
  task :send_email do
    warn "sending email"
    message = generate_email :full

    with_config do |conf, _|
      host = conf["email"]["host"]
      port = conf["email"]["port"]
      user = conf["email"]["user"]
      pass = conf["email"]["pass"]
      auth = conf["email"]["auth"]
      tls  = conf["email"]["tls"]

      port = Socket.getservbyname port unless Integer === port

      tls = port != 25 if tls.nil?

      start_args = [Socket.gethostname, user, pass, auth].compact

      raise 'gem install smtp_tls' if tls and
        not Net::SMTP.method_defined? :starttls

      smtp = Net::SMTP.new(host, port)
      smtp.set_debug_output $stderr if $DEBUG
      smtp.enable_starttls if tls
      smtp.start(*start_args) do |server|
        server.send_message message, Array(email).first, *email_to
      end
    end
    warn "...done"
  end
end

#initialize_emailObject



15
16
17
18
19
# File 'lib/hoe/email.rb', line 15

def initialize_email
  with_config do |config, _|
    @email_to = config["email"]["to"] rescue nil
  end
end