Class: Middleman::PreviewServer::AllInterfaces

Inherits:
BasicInformation show all
Defined in:
middleman-core/lib/middleman-core/preview_server/information.rb

Overview

This one is used if no bind address and no server name is given

Direct Known Subclasses

AllIpv4Interfaces, AllIpv6Interfaces

Instance Attribute Summary

Attributes inherited from BasicInformation

#bind_address, #listeners, #port, #reason, #server_name, #site_addresses, #valid

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BasicInformation

#local_network_interfaces, #show_me_network_interfaces, #valid?, #validate_me

Constructor Details

#initialize(*args) ⇒ AllInterfaces

Returns a new instance of AllInterfaces.


98
99
100
101
102
# File 'middleman-core/lib/middleman-core/preview_server/information.rb', line 98

def initialize(*args)
  super

  after_init
end

Class Method Details

.matches?(options_hash = ::Middleman::EMPTY_HASH) ⇒ Boolean

Returns:

  • (Boolean)

104
105
106
# File 'middleman-core/lib/middleman-core/preview_server/information.rb', line 104

def self.matches?(options_hash = ::Middleman::EMPTY_HASH)
  options_hash[:bind_address].blank? && options_hash[:server_name].blank?
end

Instance Method Details

#resolve_me(resolver) ⇒ Object

Resolve ips


109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'middleman-core/lib/middleman-core/preview_server/information.rb', line 109

def resolve_me(resolver)
  hostname          = ServerHostname.new(Socket.gethostname)
  hostname_ips      = resolver.ips_for(hostname)
  network_interface = ServerIpAddress.new(Array(local_network_interfaces).first)
  resolved_name     = ServerHostname.new(resolver.names_for(network_interface).first)

  if includes_array? local_network_interfaces, hostname_ips
    @server_name = hostname
    @site_addresses << hostname

    network_interface = ServerIpAddress.new((local_network_interfaces & hostname_ips).first)
  elsif /mswin|mingw|cygwin/.match?(RbConfig::CONFIG['host_os'])
    @server_name = hostname
    @site_addresses << hostname
  elsif !resolved_name.blank?
    @server_name = resolved_name
    @site_addresses << resolved_name
  else
    @server_name = network_interface
  end

  @site_addresses << network_interface

  self
end