Class: Middleman::PreviewServer::ServerInformation
- Inherits:
- 
      Object
      
        - Object
- Middleman::PreviewServer::ServerInformation
 
- Defined in:
- lib/middleman-core/preview_server/server_information.rb
Overview
This class holds all information which the preview server needs to setup a listener
- server name
- bind address
- port
Furthermore it probes for a free tcp port, if the default one 4567 is not available.
Instance Attribute Summary collapse
- 
  
    
      #https  ⇒ Object 
    
    
  
  
  
  
    
    
      writeonly
    
  
  
  
  
  
  
    Sets the attribute https. 
Instance Method Summary collapse
- 
  
    
      #bind_address  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    The bind address of server. 
- 
  
    
      #handler  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Make information of internal server class avaible to make debugging easier. 
- 
  
    
      #https?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    Is https enabled?. 
- 
  
    
      #information  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    The information. 
- 
  
    
      #initialize(opts = {})  ⇒ ServerInformation 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of ServerInformation. 
- 
  
    
      #listeners  ⇒ Array 
    
    
  
  
  
  
  
  
  
  
  
    A list of listeners. 
- 
  
    
      #port  ⇒ Integer 
    
    
  
  
  
  
  
  
  
  
  
    The port on which the server should listen. 
- 
  
    
      #reason  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    The reason why the information is NOT valid. 
- 
  
    
      #server_name  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    The server name. 
- 
  
    
      #site_addresses  ⇒ Array 
    
    
  
  
  
  
  
  
  
  
  
    A list of site addresses. 
- 
  
    
      #use(config)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Use a middleman configuration to get information. 
- 
  
    
      #valid?  ⇒ TrueClass, FalseClass 
    
    
  
  
  
  
  
  
  
  
  
    Is the server information valid?. 
Constructor Details
#initialize(opts = {}) ⇒ ServerInformation
Returns a new instance of ServerInformation.
| 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | # File 'lib/middleman-core/preview_server/server_information.rb', line 25 def initialize(opts={}) @resolver = opts.fetch(:resolver, DnsResolver.new) @validator = opts.fetch(:validator, ServerInformationValidator.new) @network_interface_inventory = opts.fetch(:network_interface_inventory, NetworkInterfaceInventory.new) @tcp_port_prober = opts.fetch(:tcp_port_prober, TcpPortProber.new) @informations = [] @informations << AllInterfaces @informations << AllIpv4Interfaces @informations << AllIpv6Interfaces @informations << ServerNameIsIpInformation @informations << ServerNameInformation @informations << BindAddressInformation @informations << BindAddressAndServerNameInformation @informations << DefaultInformation end | 
Instance Attribute Details
#https=(value) ⇒ Object (writeonly)
Sets the attribute https
| 23 24 25 | # File 'lib/middleman-core/preview_server/server_information.rb', line 23 def https=(value) @https = value end | 
Instance Method Details
#bind_address ⇒ String
The bind address of server
| 118 119 120 | # File 'lib/middleman-core/preview_server/server_information.rb', line 118 def bind_address information.bind_address end | 
#handler ⇒ String
Make information of internal server class avaible to make debugging easier. This can be used to log the class which was used to determine the preview server settings
| 83 84 85 | # File 'lib/middleman-core/preview_server/server_information.rb', line 83 def handler information.class.to_s end | 
#https? ⇒ Boolean
Is https enabled?
| 148 149 150 | # File 'lib/middleman-core/preview_server/server_information.rb', line 148 def https? @https == true end | 
#information ⇒ Object
The information
Is cached
| 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # File 'lib/middleman-core/preview_server/server_information.rb', line 45 def information return @information if @information # The `DefaultInformation`-class always returns `true`, so there's # always a klass available and find will never return nil listener_klass = informations.find { |l| l.matches? bind_address: @bind_address, server_name: @server_name } @information = listener_klass.new(bind_address: @bind_address, server_name: @server_name) @information.show_me_network_interfaces(network_interface_inventory) @information.resolve_me(resolver) @information.port = tcp_port_prober.port(@port) @information.validate_me(validator) @information end | 
#listeners ⇒ Array
A list of listeners
| 143 144 145 | # File 'lib/middleman-core/preview_server/server_information.rb', line 143 def listeners information.listeners end | 
#port ⇒ Integer
The port on which the server should listen
| 126 127 128 | # File 'lib/middleman-core/preview_server/server_information.rb', line 126 def port information.port end | 
#reason ⇒ String
The reason why the information is NOT valid
| 102 103 104 | # File 'lib/middleman-core/preview_server/server_information.rb', line 102 def reason information.reason end | 
#server_name ⇒ String
The server name
| 110 111 112 | # File 'lib/middleman-core/preview_server/server_information.rb', line 110 def server_name information.server_name end | 
#site_addresses ⇒ Array
A list of site addresses
| 135 136 137 | # File 'lib/middleman-core/preview_server/server_information.rb', line 135 def site_addresses information.site_addresses end | 
#use(config) ⇒ Object
Use a middleman configuration to get information
| 65 66 67 68 69 70 71 72 73 74 75 | # File 'lib/middleman-core/preview_server/server_information.rb', line 65 def use(config) @bind_address = config[:bind_address] @port = config[:port] @server_name = config[:server_name] @https = config[:https] config[:bind_address] = bind_address config[:port] = port config[:server_name] = server_name config[:https] = https? end | 
#valid? ⇒ TrueClass, FalseClass
Is the server information valid?
This is used to output a helpful error message, which can be stored in
#reason.
| 94 95 96 | # File 'lib/middleman-core/preview_server/server_information.rb', line 94 def valid? information.valid? end |