class Expressr::App
Constants
- DEFAULTS
Attributes
router[R]
server[R]
Public Class Methods
new(server_options={})
click to toggle source
# File lib/expressr/app.rb, line 25 def initialize(server_options={}) @router = Router.new @locals = {} set_default_root @server_options = { app: self }.merge(server_options) @server = Noder::HTTP::Server.new(@server_options) @router.server = @server request_stack = @server.event_stack('request') request_stack.replace(Noder::HTTP::Listeners::Request, callback: Expressr::Listeners::Request) request_stack.replace(Noder::HTTP::Listeners::Response, callback: Expressr::Listeners::Response) end
settings()
click to toggle source
# File lib/expressr/app.rb, line 20 def settings @settings ||= DEFAULTS end
Public Instance Methods
all(path, &block)
click to toggle source
# File lib/expressr/app.rb, line 73 def all(path, &block) @router.add_route(block, path: path) end
close()
click to toggle source
# File lib/expressr/app.rb, line 91 def close @server.close end
disable(name)
click to toggle source
# File lib/expressr/app.rb, line 53 def disable(name) settings[name] = false end
disabled?(name)
click to toggle source
# File lib/expressr/app.rb, line 61 def disabled?(name) settings[name] == false end
enable(name)
click to toggle source
# File lib/expressr/app.rb, line 49 def enable(name) settings[name] = true end
enabled?(name)
click to toggle source
# File lib/expressr/app.rb, line 57 def enabled?(name) settings[name] == true end
engine(value)
click to toggle source
# File lib/expressr/app.rb, line 65 def engine(value) set('view engine', value) end
get(name_or_path, &block)
click to toggle source
# File lib/expressr/app.rb, line 41 def get(name_or_path, &block) if block @router.get(name_or_path, &block) else settings[name_or_path] end end
listen(port=nil, address=nil, &block)
click to toggle source
# File lib/expressr/app.rb, line 85 def listen(port=nil, address=nil, &block) @server_options[:port] = port if port @server_options[:address] = address if address @server.listen(@server_options[:port], @server_options[:address], {}, &block) end
locals()
click to toggle source
# File lib/expressr/app.rb, line 77 def locals settings['locals'] end
param(name, &block)
click to toggle source
# File lib/expressr/app.rb, line 69 def param(name, &block) @router.add_route(block, param: name) end
render(view, options={}, &block)
click to toggle source
# File lib/expressr/app.rb, line 81 def render(view, options={}, &block) raise NotImplementedError end
set(name, value)
click to toggle source
# File lib/expressr/app.rb, line 37 def set(name, value) settings[name] = value end
settings()
click to toggle source
# File lib/expressr/app.rb, line 95 def settings self.class.settings end
Private Instance Methods
set_default_root()
click to toggle source
# File lib/expressr/app.rb, line 101 def set_default_root return if get('root') caller_path = caller[1].split(':')[0] caller_directory = File.dirname(caller_path) set('root', Pathname.new(caller_directory)) end