Class: Freedom::Application

Inherits:
BaseApplication show all
Defined in:
lib/freedom/core/application.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseApplication

#call, #delete, #get, #head, #link, #options, #patch, #post, #put, #routes, #unlink

Constructor Details

#initialize(options = {}) ⇒ Application

Returns a new instance of Application.



114
115
116
117
118
119
# File 'lib/freedom/core/application.rb', line 114

def initialize(options = {})
  super()
  @options = options.clone
  @middlewares = default_middlewares
  @rack_server = nil
end

Class Method Details

.start(options = {}) ⇒ Object



110
111
112
# File 'lib/freedom/core/application.rb', line 110

def self.start(options = {})
  self.new(options).start
end

Instance Method Details

#add_middleware(middleware_class, *middleware_args) ⇒ Object



141
142
143
# File 'lib/freedom/core/application.rb', line 141

def add_middleware(middleware_class, *middleware_args)
  @middlewares << [middleware_class, *middleware_args]
end

#buildObject



125
126
127
128
129
130
131
132
133
134
# File 'lib/freedom/core/application.rb', line 125

def build
  builder = Rack::Builder.new(self)
  @middlewares.each do |middleware_array|
    builder.use(*middleware_array)
  end
  rack_options = @options
  rack_options[:app] = builder.to_app
  rack_options[:Port] = 5700 unless rack_options[:Port]
  @rack_server = Rack::Server.new(rack_options)
end

#built?Boolean

Returns:

  • (Boolean)


121
122
123
# File 'lib/freedom/core/application.rb', line 121

def built?
  !!@rack_server
end

#startObject



136
137
138
139
# File 'lib/freedom/core/application.rb', line 136

def start
  build unless built?
  @rack_server.start
end