less 1.2.21 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. data/.gitignore +4 -3
  2. data/.gitmodules +6 -0
  3. data/Gemfile +3 -0
  4. data/README.md +39 -46
  5. data/Rakefile +5 -50
  6. data/bin/lessc +1 -100
  7. data/less.gemspec +21 -125
  8. data/lib/less.rb +11 -30
  9. data/{LICENSE → lib/less/js/LICENSE} +1 -1
  10. data/lib/less/js/Makefile +56 -0
  11. data/lib/less/js/README.md +20 -0
  12. data/lib/less/js/benchmark/benchmark.less +3979 -0
  13. data/lib/less/js/benchmark/less-benchmark.js +49 -0
  14. data/lib/less/js/bin/lessc +105 -0
  15. data/lib/less/js/build/ecma-5.js +120 -0
  16. data/lib/less/js/build/header.js +7 -0
  17. data/lib/less/js/build/require.js +7 -0
  18. data/lib/less/js/dist/less-1.0.44.js +2655 -0
  19. data/lib/less/js/dist/less-1.1.0.js +2695 -0
  20. data/lib/less/js/dist/less-1.1.0.min.js +16 -0
  21. data/lib/less/js/dist/less-1.1.1.js +2710 -0
  22. data/lib/less/js/dist/less-1.1.1.min.js +16 -0
  23. data/lib/less/js/dist/less-1.1.2.js +2712 -0
  24. data/lib/less/js/dist/less-1.1.2.min.js +16 -0
  25. data/lib/less/js/dist/less-1.1.3.js +2721 -0
  26. data/lib/less/js/dist/less-1.1.3.min.js +16 -0
  27. data/lib/less/js/lib/less/browser.js +369 -0
  28. data/lib/less/js/lib/less/functions.js +174 -0
  29. data/lib/less/js/lib/less/index.js +137 -0
  30. data/lib/less/js/lib/less/parser.js +1098 -0
  31. data/lib/less/js/lib/less/tree.js +13 -0
  32. data/lib/less/js/lib/less/tree/alpha.js +17 -0
  33. data/lib/less/js/lib/less/tree/anonymous.js +13 -0
  34. data/lib/less/js/lib/less/tree/call.js +45 -0
  35. data/lib/less/js/lib/less/tree/color.js +98 -0
  36. data/lib/less/js/lib/less/tree/comment.js +14 -0
  37. data/lib/less/js/lib/less/tree/dimension.js +34 -0
  38. data/lib/less/js/lib/less/tree/directive.js +33 -0
  39. data/lib/less/js/lib/less/tree/element.js +32 -0
  40. data/lib/less/js/lib/less/tree/expression.js +23 -0
  41. data/lib/less/js/lib/less/tree/import.js +77 -0
  42. data/lib/less/js/lib/less/tree/javascript.js +51 -0
  43. data/lib/less/js/lib/less/tree/keyword.js +9 -0
  44. data/lib/less/js/lib/less/tree/mixin.js +106 -0
  45. data/lib/less/js/lib/less/tree/operation.js +32 -0
  46. data/lib/less/js/lib/less/tree/quoted.js +29 -0
  47. data/lib/less/js/lib/less/tree/rule.js +38 -0
  48. data/lib/less/js/lib/less/tree/ruleset.js +179 -0
  49. data/lib/less/js/lib/less/tree/selector.js +28 -0
  50. data/lib/less/js/lib/less/tree/url.js +25 -0
  51. data/lib/less/js/lib/less/tree/value.js +24 -0
  52. data/lib/less/js/lib/less/tree/variable.js +24 -0
  53. data/lib/less/js/package.json +13 -0
  54. data/lib/less/js/test/css/colors.css +42 -0
  55. data/lib/less/js/test/css/comments.css +52 -0
  56. data/lib/less/js/test/css/css-3.css +42 -0
  57. data/lib/less/js/test/css/css-escapes.css +20 -0
  58. data/lib/less/js/test/css/css.css +82 -0
  59. data/lib/less/js/test/css/functions.css +30 -0
  60. data/{spec → lib/less/js/test}/css/import.css +4 -2
  61. data/lib/less/js/test/css/javascript.css +22 -0
  62. data/lib/less/js/test/css/lazy-eval.css +3 -0
  63. data/lib/less/js/test/css/media.css +21 -0
  64. data/lib/less/js/test/css/mixins-args.css +61 -0
  65. data/lib/less/js/test/css/mixins-closure.css +9 -0
  66. data/lib/less/js/test/css/mixins-nested.css +14 -0
  67. data/lib/less/js/test/css/mixins-pattern.css +49 -0
  68. data/lib/less/js/test/css/mixins.css +50 -0
  69. data/{spec → lib/less/js/test}/css/operations.css +20 -2
  70. data/{spec → lib/less/js/test}/css/parens.css +0 -0
  71. data/lib/less/js/test/css/rulesets.css +29 -0
  72. data/{spec → lib/less/js/test}/css/scope.css +6 -2
  73. data/lib/less/js/test/css/selectors.css +32 -0
  74. data/lib/less/js/test/css/strings.css +38 -0
  75. data/lib/less/js/test/css/variables.css +24 -0
  76. data/lib/less/js/test/css/whitespace.css +36 -0
  77. data/lib/less/js/test/less-test.js +75 -0
  78. data/{spec → lib/less/js/test}/less/colors.less +13 -2
  79. data/{spec → lib/less/js/test}/less/comments.less +19 -2
  80. data/{spec → lib/less/js/test}/less/css-3.less +4 -1
  81. data/lib/less/js/test/less/css-escapes.less +28 -0
  82. data/{spec → lib/less/js/test}/less/css.less +10 -18
  83. data/lib/less/js/test/less/functions.less +35 -0
  84. data/{spec → lib/less/js/test}/less/import.less +1 -1
  85. data/{spec → lib/less/js/test}/less/import/import-test-a.less +0 -0
  86. data/{spec → lib/less/js/test}/less/import/import-test-b.less +0 -0
  87. data/{spec → lib/less/js/test}/less/import/import-test-c.less +0 -0
  88. data/{spec → lib/less/js/test}/less/import/import-test-d.css +0 -0
  89. data/lib/less/js/test/less/javascript.less +27 -0
  90. data/{spec → lib/less/js/test}/less/lazy-eval.less +0 -0
  91. data/lib/less/js/test/less/media.less +25 -0
  92. data/lib/less/js/test/less/mixins-args.less +118 -0
  93. data/lib/less/js/test/less/mixins-closure.less +26 -0
  94. data/lib/less/js/test/less/mixins-nested.less +22 -0
  95. data/lib/less/js/test/less/mixins-pattern.less +96 -0
  96. data/{spec → lib/less/js/test}/less/mixins.less +8 -4
  97. data/{spec → lib/less/js/test}/less/operations.less +19 -0
  98. data/{spec → lib/less/js/test}/less/parens.less +0 -0
  99. data/{spec → lib/less/js/test}/less/rulesets.less +2 -2
  100. data/{spec → lib/less/js/test}/less/scope.less +1 -1
  101. data/{spec → lib/less/js/test}/less/selectors.less +1 -1
  102. data/lib/less/js/test/less/strings.less +49 -0
  103. data/lib/less/js/test/less/variables.less +50 -0
  104. data/{spec → lib/less/js/test}/less/whitespace.less +3 -0
  105. data/lib/less/loader.rb +67 -0
  106. data/lib/less/parser.rb +46 -0
  107. data/lib/less/version.rb +3 -0
  108. data/spec/less/one/one.less +1 -0
  109. data/spec/less/parser_spec.rb +30 -0
  110. data/spec/less/two/two.less +1 -0
  111. data/spec/spec_helper.rb +2 -7
  112. metadata +156 -106
  113. data/CHANGELOG +0 -62
  114. data/VERSION +0 -1
  115. data/lib/less/command.rb +0 -110
  116. data/lib/less/engine.rb +0 -52
  117. data/lib/less/engine/grammar/common.tt +0 -29
  118. data/lib/less/engine/grammar/entity.tt +0 -144
  119. data/lib/less/engine/grammar/less.tt +0 -341
  120. data/lib/less/engine/nodes.rb +0 -9
  121. data/lib/less/engine/nodes/element.rb +0 -281
  122. data/lib/less/engine/nodes/entity.rb +0 -79
  123. data/lib/less/engine/nodes/function.rb +0 -93
  124. data/lib/less/engine/nodes/literal.rb +0 -171
  125. data/lib/less/engine/nodes/property.rb +0 -232
  126. data/lib/less/engine/nodes/ruleset.rb +0 -12
  127. data/lib/less/engine/nodes/selector.rb +0 -44
  128. data/lib/less/ext.rb +0 -60
  129. data/spec/command_spec.rb +0 -102
  130. data/spec/css/accessors.css +0 -18
  131. data/spec/css/big.css +0 -3768
  132. data/spec/css/colors.css +0 -14
  133. data/spec/css/comments.css +0 -9
  134. data/spec/css/css-3.css +0 -21
  135. data/spec/css/css.css +0 -50
  136. data/spec/css/dash-prefix.css +0 -12
  137. data/spec/css/functions.css +0 -6
  138. data/spec/css/import-with-extra-paths.css +0 -8
  139. data/spec/css/import-with-partial-in-extra-path.css +0 -6
  140. data/spec/css/lazy-eval.css +0 -1
  141. data/spec/css/mixins-args.css +0 -32
  142. data/spec/css/mixins.css +0 -28
  143. data/spec/css/rulesets.css +0 -17
  144. data/spec/css/selectors.css +0 -13
  145. data/spec/css/strings.css +0 -12
  146. data/spec/css/variables.css +0 -8
  147. data/spec/css/whitespace.css +0 -7
  148. data/spec/engine_spec.rb +0 -127
  149. data/spec/less/accessors.less +0 -20
  150. data/spec/less/big.less +0 -1264
  151. data/spec/less/dash-prefix.less +0 -21
  152. data/spec/less/exceptions/mixed-units-error.less +0 -3
  153. data/spec/less/exceptions/name-error-1.0.less +0 -3
  154. data/spec/less/exceptions/syntax-error-1.0.less +0 -3
  155. data/spec/less/extra_import_path/extra.less +0 -1
  156. data/spec/less/extra_import_path/import/import-test-a.css +0 -1
  157. data/spec/less/extra_import_path/import/import-test-a.less +0 -4
  158. data/spec/less/functions.less +0 -6
  159. data/spec/less/hidden.less +0 -25
  160. data/spec/less/import-with-extra-paths.less +0 -4
  161. data/spec/less/literal-css.less +0 -11
  162. data/spec/less/mixins-args.less +0 -59
  163. data/spec/less/strings.less +0 -14
  164. data/spec/less/variables.less +0 -29
  165. data/spec/spec.css +0 -50
@@ -1,21 +0,0 @@
1
- @global_color: #010101;
2
- @red_color: red;
3
- @green_color: green;
4
-
5
- .gradient (@local_color: #030303) {
6
- background-image: -moz-linear-gradient(top, bottom, from(@local_color), to(@global_color));
7
- background-image: -webkit-gradient(linear, left top, left bottom, from(@local_color), to(@global_color));
8
- }
9
-
10
- .test1 {
11
- .gradient;
12
- }
13
-
14
- .test2 {
15
- .gradient(#020202);
16
- }
17
-
18
- .test3 {
19
- background-image: -moz-linear-gradient(top, bottom, from(@red_color), to(@green_color));
20
- background-image: -webkit-gradient(linear, left top, left bottom, from(@red_color), to(@green_color));
21
- }
@@ -1,3 +0,0 @@
1
- #mixed-units-error {
2
- color: 1px + #fff;
3
- }
@@ -1,3 +0,0 @@
1
- #name-error {
2
- color: @var;
3
- }
@@ -1,3 +0,0 @@
1
- #syntax-error {
2
- color: blue;;
3
- }
@@ -1 +0,0 @@
1
- body { font-size: 0.75em; }
@@ -1 +0,0 @@
1
- .mixin { font-size: 0.75em; }
@@ -1,4 +0,0 @@
1
- @a: 20%;
2
- .mixin {
3
- font-size: 0.75em;
4
- }
@@ -1,6 +0,0 @@
1
- #functions {
2
- color: color("evil red"); // #999999
3
- width: increment(15);
4
- height: undefined("self");
5
- border-width: add(2, 3);
6
- }
@@ -1,25 +0,0 @@
1
- .hidden {
2
- color: transparent;
3
- .inside {
4
- width: 0%;
5
- }
6
- };
7
-
8
- .fully-hidden {
9
- color: none;
10
- };
11
-
12
- .visible {
13
- width: 100%;
14
- .hidden {
15
- color: black;
16
- };
17
- }
18
-
19
- .mix {
20
- .hidden;
21
- }
22
-
23
- .mix2 {
24
- .visible;
25
- }
@@ -1,4 +0,0 @@
1
- @import url("import/import-test-b.less");
2
- @import url("extra.less");
3
-
4
- h2 { font-size: 2em; }
@@ -1,11 +0,0 @@
1
- % {
2
- @var: 2px;
3
- #literal {
4
- width: 2px * 2;
5
- }
6
- @media {
7
- #nested {
8
- color: red;
9
- }
10
- }
11
- }
@@ -1,59 +0,0 @@
1
- .mixin (@a: 1px, @b: 50%) {
2
- width: @a * 5;
3
- height: @b - 1%;
4
- }
5
-
6
- .mixiny
7
- (@a: 0, @b: 0) {
8
- margin: @a;
9
- padding: @b;
10
- }
11
-
12
- .hidden() {
13
- color: transparent;
14
- }
15
-
16
- .two-args {
17
- color: blue;
18
- .mixin(2px, 100%);
19
- }
20
-
21
- .one-arg {
22
- .mixin(3px);
23
- }
24
-
25
- .no-parens {
26
- .mixin;
27
- }
28
-
29
- .no-args {
30
- .mixin();
31
- }
32
-
33
- .var-args {
34
- @var: 9;
35
- .mixin(@var, @var * 2);
36
- }
37
-
38
- .multi-mix {
39
- .mixin(2px, 30%);
40
- .mixiny(4, 5);
41
- }
42
-
43
- .maxa(@arg1: 10, @arg2: #f00) {
44
- padding: @arg1 * 2px;
45
- color: @arg2;
46
- }
47
-
48
- body {
49
- .maxa(15);
50
- }
51
-
52
- @glob: 5;
53
- .global-mixin(@a:2) {
54
- width: @glob + @a;
55
- }
56
-
57
- .scope-mix {
58
- .global-mixin(3);
59
- }
@@ -1,14 +0,0 @@
1
- #strings {
2
- background-image: url("http://son-of-a-banana.com");
3
- quotes: "~" "~";
4
- content: "#*%:&^,)!.(~*})";
5
- empty: "";
6
- }
7
- #comments {
8
- content: "/* hello */ // not-so-secret";
9
- }
10
- #single-quote {
11
- quotes: "'" "'";
12
- content: '""#!&""';
13
- empty: '';
14
- }
@@ -1,29 +0,0 @@
1
- @a: 2;
2
- @x: @a * @a;
3
- @y: @x + 1;
4
- @z: @x * 2 + @y;
5
-
6
- .variables {
7
- width: @z + 1cm; // 14cm
8
- }
9
-
10
- @b: @a * 10;
11
- @c: #888;
12
-
13
- @fonts: "Trebuchet MS", Verdana, sans-serif;
14
- @f: @fonts;
15
-
16
- @quotes: "~" "~";
17
- @q: @quotes;
18
-
19
- .variables {
20
- height: @b + @x + 0px; // 24px
21
- color: @c;
22
- font-family: @f;
23
- quotes: @q;
24
- }
25
-
26
- .alpha {
27
- @o: 95;
28
- filter: alpha(opacity=@o);
29
- }
data/spec/spec.css DELETED
@@ -1,50 +0,0 @@
1
- div { color: black; }
2
- div { width: 99%; }
3
- * { min-width: 45em; }
4
- h1 { color: none; }
5
- h2 > a > p { color: none; }
6
- h3 { color: none; }
7
- div.class { color: blue; }
8
- div#id { color: green; }
9
- .class#id { color: purple; }
10
- .one.two.three { color: grey; }
11
- @media print { font-size: 3em; }
12
- @media screen { font-size: 10px; }
13
- @font-face {
14
- font-family: 'Garamond Pro';
15
- src: url("/fonts/garamond-pro.ttf");
16
- }
17
- a:hover { color: #999999; }
18
- a:link { color: #999999; }
19
- p { text-transform: none; }
20
- p:first-child { text-transform: none; }
21
- q:lang(no) { quotes: none; }
22
- p + h1 { font-size: 2.2em; }
23
- input[type="text"] { font-weight: normal; }
24
- h2[title] { font-size: 100%; }
25
- [disabled] { color: transparent; }
26
- #shorthands {
27
- border: 1px solid #000000;
28
- font: 12px/16px Arial;
29
- margin: 1px 0;
30
- padding: 0 auto;
31
- background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px;
32
- }
33
- #more-shorthands {
34
- margin: 0;
35
- padding: 1px 0 2px 0;
36
- font: normal small/20px 'Trebuchet MS', Verdana, sans-serif;
37
- }
38
- .misc {
39
- -moz-border-radius: 2px;
40
- display: -moz-inline-stack;
41
- width: 0.1em;
42
- background-color: #009998;
43
- background-image: url(images/image.jpg);
44
- background: -webkit-gradient(linear, left top, left bottom, from(red), to(blue));
45
- }
46
- #important {
47
- color: red !important;
48
- width: 100% !important;
49
- height: 20px ! important;
50
- }