Module: Frank

Defined in:
lib/frank/base.rb,
lib/frank/output.rb,
lib/frank/rescue.rb,
lib/frank/template_helpers.rb

Defined Under Namespace

Modules: Render, Rescue, TemplateHelpers Classes: Base, Output

Class Method Summary collapse

Class Method Details

.new(&block) ⇒ Object



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/frank/base.rb', line 162

def self.new(&block)
  base = Base.new(&block) if block_given?
  server_settings = base.instance_variable_get(:@server)
  
  builder = Rack::Builder.new do
    use Rack::Statik, :root => base.instance_variable_get(:@static_folder)
    run base
  end
  
  m = "got it under control \n got your back \n holdin' it down
       takin' care of business \n workin' some magic".split("\n").sort_by{rand}.first.strip
  puts "\n-----------------------\n" +
       " Frank's #{ m }...\n" +
       " #{server_settings['hostname']}:#{server_settings['port']} \n\n"
  
  server = Rack::Handler.get(server_settings['handler'])
  server.run(builder, :Port => server_settings['port'], :Host => server_settings['hostname']) do
    trap(:INT) { puts "\n\n-----------------------\n Show's over, fellas.\n\n"; exit }
  end
  
  base
end