mirror of
https://github.com/Ekokumppanit/ystavakylaecard.git
synced 2026-02-22 17:50:13 +00:00
Sparks: Assets, 1.5.1
http://getsparks.org/packages/assets/versions/HEAD/show Creates our minified and combined .js and .css files
This commit is contained in:
126
sparks/assets/1.5.1/libraries/coffeescript/yy/Obj.php
Executable file
126
sparks/assets/1.5.1/libraries/coffeescript/yy/Obj.php
Executable file
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
|
||||
namespace CoffeeScript;
|
||||
|
||||
class yy_Obj extends yy_Base
|
||||
{
|
||||
public $children = array('properties');
|
||||
|
||||
function constructor($props, $generated = FALSE)
|
||||
{
|
||||
$this->generated = $generated;
|
||||
|
||||
$this->properties = $props ? $props : array();
|
||||
$this->objects = $this->properties;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
function assigns($name)
|
||||
{
|
||||
foreach ($this->properties as $prop)
|
||||
{
|
||||
if ($prop->assigns($name))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
function compile_node($options)
|
||||
{
|
||||
$props = $this->properties;
|
||||
$prop_names = array();
|
||||
|
||||
foreach ($this->properties as $prop)
|
||||
{
|
||||
if ($prop->is_complex())
|
||||
{
|
||||
$prop = isset($prop->variable) ? $prop->variable : NULL;
|
||||
}
|
||||
|
||||
if ($prop)
|
||||
{
|
||||
$prop_name = $prop->unwrap_all();
|
||||
$prop_name = isset($prop_name->value) ? $prop_name->value.'' : NULL;
|
||||
|
||||
if (in_array($prop_name, $prop_names))
|
||||
{
|
||||
throw new SyntaxError('multiple object literal properties named "'.$prop_name.'"');
|
||||
}
|
||||
|
||||
$prop_names[] = $prop_name;
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! count($props))
|
||||
{
|
||||
return ($this->front ? '({})' : '{}');
|
||||
}
|
||||
|
||||
if ($this->generated)
|
||||
{
|
||||
foreach ($props as $node)
|
||||
{
|
||||
if ($node instanceof yy_Value)
|
||||
{
|
||||
throw new Error('cannot have an implicit value in an implicit object');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$idt = $options['indent'] .= TAB;
|
||||
$last_non_com = $this->last_non_comment($this->properties);
|
||||
|
||||
foreach ($props as $i => $prop)
|
||||
{
|
||||
if ($i === count($props) - 1)
|
||||
{
|
||||
$join = '';
|
||||
}
|
||||
else if ($prop === $last_non_com || $prop instanceof yy_Comment)
|
||||
{
|
||||
$join = "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$join = ",\n";
|
||||
}
|
||||
|
||||
$indent = $prop instanceof yy_Comment ? '' : $idt;
|
||||
|
||||
if ($prop instanceof yy_Value && (isset($prop->this) && $prop->this))
|
||||
{
|
||||
$prop = yy('Assign', $prop->properties[0]->name, $prop, 'object');
|
||||
}
|
||||
|
||||
if ( ! ($prop instanceof yy_Comment))
|
||||
{
|
||||
if ( ! ($prop instanceof yy_Assign))
|
||||
{
|
||||
$prop = yy('Assign', $prop, $prop, 'object');
|
||||
}
|
||||
|
||||
if (isset($prop->variable->base))
|
||||
{
|
||||
$prop->variable->base->as_key = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$prop->variable->as_key = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
$props[$i] = $indent.$prop->compile($options, LEVEL_TOP).$join;
|
||||
}
|
||||
|
||||
$props = implode('', $props);
|
||||
$obj = '{'.($props ? "\n{$props}\n{$this->tab}" : '').'}';
|
||||
|
||||
return ($this->front ? "({$obj})" : $obj);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user