Module: Net::Knocker::Env

Included in:
Net::Knocker, Peer
Defined in:
lib/net/knocker/env.rb

Instance Method Summary collapse

Instance Method Details

#debug(msg) ⇒ Object



56
57
58
59
60
# File 'lib/net/knocker/env.rb', line 56

def debug(msg)
  return unless debugging?

  info(msg, __method__)
end

#debugging?Boolean

Returns:

  • (Boolean)


62
63
64
65
66
67
# File 'lib/net/knocker/env.rb', line 62

def debugging?
  @debugging ||= begin
    env_debug = ENV.fetch('NET_KNOCKER_DEBUG', false).to_s.downcase
    %w[true yes yep 1].include? env_debug
  end
end

#env_secretObject



10
11
12
# File 'lib/net/knocker/env.rb', line 10

def env_secret
  @env_secret ||= ENV.fetch('NET_KNOCKER_SECRET')
end

#error(msg) ⇒ Object



48
49
50
# File 'lib/net/knocker/env.rb', line 48

def error(msg)
  info(msg, __method__)
end

#http_clientObject



14
15
16
17
18
19
20
21
# File 'lib/net/knocker/env.rb', line 14

def http_client
  @http_client ||= Net::HTTP.new(url.host, url.port).tap do |http|
    http.use_ssl = true
    http.cert = ssl_certificate
    http.key = ssl_key
    http.set_debug_output $stderr if ENV.key? 'NET_KNOCKER_DEBUG'
  end
end

#info(msg, method = :info) ⇒ Object



43
44
45
46
# File 'lib/net/knocker/env.rb', line 43

def info(msg, method = :info)
  tags = [Net::Knocker, Process.pid, method.to_s.upcase].join('][')
  log.send(method, "[#{tags}] #{msg}")
end

#logObject



79
80
81
82
83
84
85
86
87
# File 'lib/net/knocker/env.rb', line 79

def log
  @log  ||= if (defined? logger) && (logger.respond_to? :debug)
              logger
            elsif (defined? Rails.logger) && (Rails.logger.respond_to? :debug)
              Rails.logger
            else
              ::Logger.new($stderr)
            end
end

#should_omit?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/net/knocker/env.rb', line 23

def should_omit?
  @should_omit ||= (%w[NET_KNOCKER_URL NET_KNOCKER_SECRET] - ENV.keys).any?
end

#ssl_certificateObject



69
70
71
# File 'lib/net/knocker/env.rb', line 69

def ssl_certificate
  @ssl_certificate ||= OpenSSL::X509::Certificate.new(env_secret)
end

#ssl_keyObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/net/knocker/env.rb', line 27

def ssl_key
  @ssl_key ||= begin
    key_class = case ssl_certificate.signature_algorithm
                when /^ecdsa/
                  OpenSSL::PKey::EC
                when /^rsa/
                  OpenSSL::PKey::RSA
                when /^dsa/
                  OpenSSL::PKey::DSA
                else
                  raise "Unknown key type: #{ssl_certificate.signature_algorithm}"
                end
    key_class.new(env_secret)
  end
end

#urlObject



73
74
75
76
77
# File 'lib/net/knocker/env.rb', line 73

def url
  return if should_omit?

  @url ||= URI.parse(ENV.fetch('NET_KNOCKER_URL'))
end

#var_namesObject



89
90
91
# File 'lib/net/knocker/env.rb', line 89

def var_names
  @var_names ||= %w[NET_KNOCKER_SECRET NET_KNOCKER_URL].freeze
end

#warn(msg) ⇒ Object



52
53
54
# File 'lib/net/knocker/env.rb', line 52

def warn(msg)
  info(msg, __method__)
end