modify wrong changelog date
[platform/framework/web/web-ui-fw.git] / build-tools / lib / less / tree / directive.js
1 (function (tree) {
2
3 tree.Directive = function (name, value) {
4     this.name = name;
5
6     if (Array.isArray(value)) {
7         this.ruleset = new(tree.Ruleset)([], value);
8         this.ruleset.allowImports = true;
9     } else {
10         this.value = value;
11     }
12 };
13 tree.Directive.prototype = {
14     toCSS: function (ctx, env) {
15         if (this.ruleset) {
16             this.ruleset.root = true;
17             return this.name + (env.compress ? '{' : ' {\n  ') +
18                    this.ruleset.toCSS(ctx, env).trim().replace(/\n/g, '\n  ') +
19                                (env.compress ? '}': '\n}\n');
20         } else {
21             return this.name + ' ' + this.value.toCSS() + ';\n';
22         }
23     },
24     eval: function (env) {
25         var evaldDirective = this;
26         if (this.ruleset) {
27             env.frames.unshift(this);
28             evaldDirective = new(tree.Directive)(this.name);
29             evaldDirective.ruleset = this.ruleset.eval(env);
30             env.frames.shift();
31         }
32         return evaldDirective;
33     },
34     variable: function (name) { return tree.Ruleset.prototype.variable.call(this.ruleset, name) },
35     find: function () { return tree.Ruleset.prototype.find.apply(this.ruleset, arguments) },
36     rulesets: function () { return tree.Ruleset.prototype.rulesets.apply(this.ruleset) }
37 };
38
39 })(require('../tree'));