Module: Hoe::Email

Defined in:
lib/hoe/email.rb

Overview

code taken directly from hoe-seattlerb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#email_toObject (readonly)

Returns the value of attribute email_to.



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

def email_to
  @email_to
end

Instance Method Details

#define_email_tasksObject



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
63
64
65
# File 'lib/hoe/email.rb', line 24

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



18
19
20
21
22
# File 'lib/hoe/email.rb', line 18

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