Sha256: 0adafc3f60b6d134755e75679896395583ddeaef719aa3ae9ce70b86316c26ad

Contents?: true

Size: 728 Bytes

Versions: 3

Compression:

Stored size: 728 Bytes

Contents

require 'rack'
require 'listen'

module Flutterby
  class Server
    def initialize(root)
      @root = root
    end

    def run!
      # Set up listener
      listener = Listen.to(@root.fs_path) do |modified, added, removed|
        # puts "modified absolute path: #{modified}"
        # puts "added absolute path: #{added}"
        # puts "removed absolute path: #{removed}"

        puts "Change detected, reloading everything!"
        @root.reload!
      end

      # Set up server
      server = Rack::Handler::WEBrick

      # Make sure we handle interrupts correctly
      trap('INT') do
        listener.stop
        server.shutdown
      end

      # Go!
      listener.start
      server.run @root
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
flutterby-0.0.4 lib/flutterby/server.rb
flutterby-0.0.3 lib/flutterby/server.rb
flutterby-0.0.2 lib/flutterby/server.rb