Class: FoxPage::Server
- Inherits:
-
Object
- Object
- FoxPage::Server
- Defined in:
- lib/fox_page/server.rb
Instance Method Summary collapse
- #handle_modified_app(_modified, _added, _removed) ⇒ Object
-
#initialize(app) ⇒ Server
constructor
A new instance of Server.
- #reload_code ⇒ Object
- #start ⇒ Object
Constructor Details
#initialize(app) ⇒ Server
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/fox_page/server.rb', line 8 def initialize(app) @app = app @listener = Listen.to(app.root.join("app"), app.root.join("data"), app.root.join("public"), &method(:handle_modified_app)) @server = WEBrick::HTTPServer.new( BindAddress: ENV.fetch("APP_BIND", "127.0.0.1"), Port: ENV.fetch("APP_PORT", 3000).to_i, DocumentRoot: app.root.join(OUTPUT_DIRECTORY) ) end |
Instance Method Details
#handle_modified_app(_modified, _added, _removed) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/fox_page/server.rb', line 34 def handle_modified_app(_modified, _added, _removed) reload_code @app.build rescue Exception => e # rubocop:disable Lint/RescueException # need to rescue Exception as syntax errors may cause the builds to break puts "!!! An error occurred while building the app" puts e. end |
#reload_code ⇒ Object
43 44 45 46 |
# File 'lib/fox_page/server.rb', line 43 def reload_code @app.code_loader.reload @app.reload_routes! end |
#start ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/fox_page/server.rb', line 21 def start puts "==> Starting up development server at " \ "http://#{@server.config[:BindAddress]}:#{@server.config[:Port]}" trap "INT" do @server.shutdown end @app.build @listener.start @server.start end |