Module: Reachable::Under::Helper

Included in:
Reachable::Under
Defined in:
lib/reachable/under/helper.rb

Instance Method Summary collapse

Instance Method Details

#addressObject



25
26
27
28
29
30
31
32
# File 'lib/reachable/under/helper.rb', line 25

def address
  reachable_address do
    address ||= Rails::Server.new.options[:Host] if Helper.via_rails_server?
    address ||= ReverseProxy.instance.binds.first.tcp.host rescue nil if Helper.via_reverse_proxy?
    address ||= URI(Puma.cli_config.options[:binds].select{|l| l =~ /^tcp:/ }.first).host rescue nil if Helper.via_puma?
    address ||= "127.0.0.1"
  end
end

#default_addressObject



18
19
20
# File 'lib/reachable/under/helper.rb', line 18

def default_address
   @default_address ||= UDPSocket.open {|s| s.connect("64.233.187.99", 1); s.addr.last }
end

#portObject



33
34
35
36
37
38
# File 'lib/reachable/under/helper.rb', line 33

def port
  port ||= Rails::Server.new.options[:Port] if Helper.via_rails_server?
  port ||= ReverseProxy.instance.binds.first.tcp.port rescue nil if Helper.via_reverse_proxy?
  port ||= URI(Puma.cli_config.options[:binds].select{|l| l =~ /^tcp:/ }.first).port rescue nil if Helper.via_puma?
  port ||= 3000
end

#reachable_addressObject



21
22
23
24
# File 'lib/reachable/under/helper.rb', line 21

def reachable_address
  return unless block_given?
  yield.sub(/0\.0\.0\.0/,default_address)
end