public static function __callStatic($tagName, $values=array()) { if(isset($values[0]) && is_array($values[0])) { //D::log($values[0], '0 values'); $attributes = ' ' . join(' ', f_keyMap( function($v, $k) { if(!empty($v)) { return $k . '="' . join(', ', (array)$v) . '"'; } }, $values[0] )); $childern = f_rest($values); } else { $attributes = ''; $childern =& $values; } if(empty($childern) && $tagName != 'script') { return '<' . $tagName . $attributes . '/>'; } else { return '<' . $tagName . $attributes . '>' . join((array)$childern) . '</' . $tagName . '>'; } }
function f_keyMap($transformer, $in, $keys=null) { if(!empty($in)) { if(!isset($keys)) { $keys = array_keys($in); } return f_construct( $transformer( f_first($in), f_first($keys) ), f_keyMap( $transformer, f_rest($in), f_rest($keys) ) ); } else { return array(); } }
function _buildSet($values, $separator='=') { return join( ', ', f_keyMap( function($v, $k) use ($separator) { return Query::escape($k) . ' ' . $separator . Query::nullEscape($v); }, $values ) ); }
static function buildHeaders($headers) { return join( "\n", f_keyMap( function($v, $k) { return $k . ': ' . $v; }, $headers ) ); }