alpha-one
Version:
ideas about recurring tasks in Web- and Backend-Application building
77 lines (62 loc) • 3.13 kB
text/coffeescript
teacup = require 'teacup'
#===========================================================================================================
# TEACUP NAMESPACE ACQUISITION
#-----------------------------------------------------------------------------------------------------------
for name_ of teacup
eval "#{name_.toUpperCase()} = teacup[ #{rpr name_} ]"
#-----------------------------------------------------------------------------------------------------------
templates = {}
app_key = 'alpha-one'
#-----------------------------------------------------------------------------------------------------------
get_options = ( request ) ->
return request[ app_key ] ? {}
#-----------------------------------------------------------------------------------------------------------
templates.layout = ( request, content ) ->
O = get_options request
page_style = O[ 'page-style' ] ? 'plain'
title = O[ 'title' ] ? 'welcome'
#.........................................................................................................
return RENDER =>
DOCTYPE 5
HTML =>
#.....................................................................................................
HEAD =>
META charset: 'utf-8'
TITLE title
#.....................................................................................................
BODY ".#{page_style}", => RAW content
#-----------------------------------------------------------------------------------------------------------
templates.alternative_layout = ( request, content ) ->
O = get_options request
page_style = O[ 'page-style' ] ? 'plain'
title = O[ 'title' ] ? 'welcome'
#.........................................................................................................
return RENDER =>
DOCTYPE 5
HTML =>
#.....................................................................................................
HEAD =>
META charset: 'utf-8'
TITLE title
#.....................................................................................................
# makes the layout more 'realistic' ... :-(
BODY ".#{page_style}",
DIV '.foo-wrapper', =>
DIV '.bar-wrapper', =>
DIV '.baz-wrapper', =>
RAW content
#-----------------------------------------------------------------------------------------------------------
templates.helo = ( request ) ->
O = get_options request
layout = O[ 'layout' ] ? @layout.bind @
debug O
#.........................................................................................................
return layout request, RENDER =>
DIV '#greeting', 'helo from teacup'
#-----------------------------------------------------------------------------------------------------------
request = {}
request[ app_key ] =
'title': 'welcome to alpha-one'
'page-style': 'laid-back'
# 'layout': templates.alternative_layout.bind templates
info templates.helo request