class Middleman::PreviewServer
def initialize_new_app
def initialize_new_app opts = @options.dup ::Middleman::Logger.singleton( opts[:debug] ? 0 : 1, opts[:instrumenting] || false ) app = ::Middleman::Application.new do config[:environment] = opts[:environment].to_sym if opts[:environment] config[:watcher_disable] = opts[:disable_watcher] config[:watcher_force_polling] = opts[:force_polling] config[:watcher_latency] = opts[:latency] config[:port] = opts[:port] if opts[:port] config[:bind_address] = opts[:bind_address] config[:server_name] = opts[:server_name] config[:https] = opts[:https] unless opts[:https].nil? config[:ssl_certificate] = opts[:ssl_certificate] if opts[:ssl_certificate] config[:ssl_private_key] = opts[:ssl_private_key] if opts[:ssl_private_key] ready do match_against = [ %r{^config\.rb$}, %r{^environments/[^\.](.*)\.rb$}, %r{^lib/[^\.](.*)\.rb$}, %r{^#{config[:helpers_dir]}/[^\.](.*)\.rb$} ] # config.rb watcher = files.watch :reload, path: root, only: match_against # Hack around node_modules in root. watcher.listener.ignore(/^node_modules/) # Hack around sass cache in root. watcher.listener.ignore(/^\.sass-cache/) # Hack around bundler cache in root. watcher.listener.ignore(/^vendor\/bundle/) end end # store configured port to make a check later on possible configured_port = app.config[:port] # Use configuration values to set `bind_address` etc. in # `server_information` server_information.use app.config app.logger.warn format('== The Middleman uses a different port "%s" then the configured one "%s" because some other server is listening on that port.', server_information.port, configured_port) unless app.config[:port] == configured_port @environment = app.config[:environment] @ssl_certificate = app.config[:ssl_certificate] @ssl_private_key = app.config[:ssl_private_key] app.files.on_change :reload do $mm_reload = true @webrick.stop end # Add in the meta pages application meta_app = Middleman::MetaPages::Application.new(app) app.map '/__middleman' do run meta_app end app end