Sha256: a9c5a7a2f354e5e9bd75222c40bb79df28bced76251773cbb10842262eebd3b8

Contents?: true

Size: 975 Bytes

Versions: 1

Compression:

Stored size: 975 Bytes

Contents

module Soaring
  class Runner
    def initialize(options)
      @options = options
    end

    def run
      if @options[:autorestart]
        run_repeatedly
      else
        run_once
      end
    end

    private

    def run_repeatedly
      while true do
        $stderr.puts "starting rackup repeatedly with parameters #{compile_rackup_parameters}" if @options[:verbose]
        response, exit_status = Executor::execute("cd #{@options[:project_root]}; bundle exec rackup #{compile_rackup_parameters}")
        sleep(0.5)
      end
    end

    def run_once
      $stderr.puts "starting rackup once with parameters #{compile_rackup_parameters}" if @options[:verbose]
      exec("cd #{@options[:project_root]}; bundle exec rackup #{compile_rackup_parameters}")
    end

    def compile_rackup_parameters
      bind_address = '0.0.0.0'
      rackup_parameters = "-E #{@options[:environment]} ./config.ru -p #{@options[:port]} --host #{bind_address}"
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
soaring-0.1.13 lib/soaring/runner.rb