Module: Frank

Defined in:
lib/frank.rb,
lib/frank/base.rb,
lib/frank/lorem.rb,
lib/frank/output.rb,
lib/frank/rescue.rb,
lib/frank/template_helpers.rb,
lib/frank/middleware/imager.rb,
lib/frank/middleware/statik.rb,
lib/frank/middleware/refresh.rb

Defined Under Namespace

Modules: Middleware, Render, Rescue, TemplateHelpers Classes: Base, ConfigError, Lorem, Output, TemplateError

Constant Summary collapse

VERSION =
'0.3.2'

Class Method Summary collapse

Class Method Details

.new(&block) ⇒ Object

starts the server



236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
# File 'lib/frank/base.rb', line 236

def self.new(&block)
  base = Base.new(&block) if block_given?
  
  builder = Rack::Builder.new do
    use Frank::Middleware::Statik, :root => base.static_folder
    use Frank::Middleware::Imager
    use Frank::Middleware::Refresh, :watch => [ base.dynamic_folder, base.static_folder, base.layouts_folder ]
    run base
  end

  unless base.environment == :test
    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" +
         " #{base.server['hostname']}:#{base.server['port']} \n\n"
    server = Rack::Handler.get(base.server['handler'])
    
    server.run(builder, :Port => base.server['port'], :Host => base.server['hostname']) do
      trap(:INT) { puts "\n\n-----------------------\n Show's over, fellas.\n\n"; exit }
    end
  end
  
  base
  
  rescue Errno::EADDRINUSE
    puts " Hold on a second... Frank works alone.\n \033[31mSomething's already using port #{base.server['port']}\033[0m\n\n"
end

.stub(project) ⇒ Object

copies over the generic project template



266
267
268
269
270
271
272
273
274
275
276
277
# File 'lib/frank/base.rb', line 266

def self.stub(project)
  puts "\nFrank is...\n - \033[32mCreating\033[0m your project '#{project}'"
  Dir.mkdir project
  
  puts " - \033[32mCopying\033[0m Frank template"
  FileUtils.cp_r( Dir.glob(File.join(LIBDIR, 'template/*')), project )
  
  puts "\n \033[32mCongratulations, '#{project}' is ready to go!\033[0m"
rescue Errno::EEXIST
  puts "\n \033[31muh oh, directory '#{project}' already exists...\033[0m"
  exit
end