Sha256: ad1e3377a08b666af49a1003a0f8b2937f2d68b4b554354d05ae6b5d96a29d89

Contents?: true

Size: 1.61 KB

Versions: 43

Compression:

Stored size: 1.61 KB

Contents

require 'ipaddr'

module Middleman
  class PreviewServer
    # This builds the server urls for the preview server
    class ServerUrl
      private

      attr_reader :hosts, :port, :https, :format_output

      public

      def initialize(opts={})
        @hosts = opts.fetch(:hosts)
        @port  = opts.fetch(:port)
        @https = opts.fetch(:https, false)
        @format_output = opts.fetch(:format_output, true)
      end

      # Return bind addresses
      #
      # @return [Array]
      #   List of bind addresses of format host:port
      def to_bind_addresses
        if format_output
          hosts.map { |l| format('"%s:%s"', l.to_s, port) }
        else
          hosts.map { |l| format('%s:%s', l.to_s, port) }
        end
      end

      # Return server urls
      #
      # @return [Array]
      #   List of urls of format http://host:port
      def to_urls
        if format_output
          hosts.map { |l| format('"%s://%s:%s"', https? ? 'https' : 'http', l.to_browser, port) }
        else
          hosts.map { |l| format('%s://%s:%s', https? ? 'https' : 'http', l.to_browser, port) }
        end
      end

      # Return server config urls
      #
      # @return [Array]
      #   List of urls of format http://host:port/__middleman
      def to_config_urls
        if format_output
          hosts.map { |l| format('"%s://%s:%s/__middleman"', https? ? 'https' : 'http', l.to_browser, port) }
        else
          hosts.map { |l| format('%s://%s:%s/__middleman', https? ? 'https' : 'http', l.to_browser, port) }
        end
      end

      private

      def https?
        https == true
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 3 rubygems

Version Path
middleman-core-4.6.0 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.5.1 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.5.0 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.4.3 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.4.2 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.4.0 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.3.11 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.3.10 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.3.8 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.3.7 lib/middleman-core/preview_server/server_url.rb
files.com-1.0.55 docs/vendor/bundle/ruby/2.5.0/gems/middleman-core-4.3.3/lib/middleman-core/preview_server/server_url.rb
middleman-core-4.3.6 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.3.5 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.3.4 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.3.3 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.3.2 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.3.1 lib/middleman-core/preview_server/server_url.rb
middleman-core-4.3.0 lib/middleman-core/preview_server/server_url.rb
middleman-core-with-external-sources-watch-fix-4.1.10 lib/middleman-core/preview_server/server_url.rb
middleman-core-with-external-sources-watch-fix-4.1.0 lib/middleman-core/preview_server/server_url.rb