cloudhead-less 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.1
1
+ 1.1.2
data/bin/lessc CHANGED
@@ -34,10 +34,10 @@ opts = OptionParser.new do |o|
34
34
 
35
35
  # Growl
36
36
  o.on("-g", "--growl", "growl notifications") do
37
- if Less::GROWL && Growl.installed?
37
+ if Less::GROWL && (Growl.installed? rescue false)
38
38
  options[:growl] = true
39
39
  elsif Less::GROWL
40
- abort "Growl wasn't found on your system."
40
+ abort "Growl or 'growlnotify' wasn't found on your system."
41
41
  else
42
42
  abort "Growl gem not found, please install with: " +
43
43
  "`sudo gem install visionmedia-growl -s http://gems.github.com`"
data/less.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{less}
5
- s.version = "1.1.1"
5
+ s.version = "1.1.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["cloudhead"]
9
- s.date = %q{2009-07-24}
9
+ s.date = %q{2009-07-27}
10
10
  s.default_executable = %q{lessc}
11
11
  s.description = %q{LESS is leaner CSS}
12
12
  s.email = %q{self@cloudhead.net}
@@ -104,7 +104,6 @@ grammar Less
104
104
  def build env
105
105
  env << (name.text_value =~ /^@/ ?
106
106
  Node::Variable : Node::Property).new(name.text_value, expressions.build(env), env)
107
-
108
107
  end
109
108
  # Empty rule
110
109
  } / ws ident s ':' s ';' ws
@@ -123,12 +122,13 @@ grammar Less
123
122
  #
124
123
  # An operation or compound value
125
124
  #
125
+ # TODO: we can refactor this, by separating entities from operators
126
126
  rule expression
127
- s '(' s expressions s ')' s {
127
+ s '(' s expressions s ')' {
128
128
  def build env
129
129
  Node::Expression.new(['('] + expressions.build(env).flatten + [')'])
130
130
  end
131
- } / entity tail:(operator entity)* ws {
131
+ } / s entity tail:(operator entity)* ws {
132
132
  def build env
133
133
  exp = all.map do |e|
134
134
  e.method(:build).arity.zero??
@@ -140,7 +140,7 @@ grammar Less
140
140
  def all
141
141
  [entity] + tail.elements.map {|i| [i.operator, i.entity] }.flatten.compact
142
142
  end
143
- }
143
+ } / operator
144
144
  end
145
145
 
146
146
  #
@@ -234,11 +234,11 @@ grammar Less
234
234
 
235
235
  rule operator
236
236
  S [-+*/] S {
237
- def build
237
+ def build env
238
238
  Node::Operator.new(text_value.strip)
239
239
  end
240
240
  } / [-+*/] {
241
- def build
241
+ def build env
242
242
  Node::Operator.new(text_value)
243
243
  end
244
244
  }
@@ -373,11 +373,7 @@ grammar Less
373
373
  end
374
374
 
375
375
  rule argument
376
- color {
377
- def build
378
- Node::Color.new text_value
379
- end
380
- } / number unit {
376
+ color / number unit {
381
377
  def build
382
378
  Node::Number.new number.text_value, unit.text_value
383
379
  end
@@ -393,6 +389,9 @@ grammar Less
393
389
  def build
394
390
  Node::String.new text_value
395
391
  end
392
+ } / function / keyword other:(S keyword)* {
393
+ def build
394
+ end
396
395
  }
397
396
  end
398
397
 
@@ -1056,7 +1056,6 @@ module Less
1056
1056
  def build env
1057
1057
  env << (name.text_value =~ /^@/ ?
1058
1058
  Node::Variable : Node::Property).new(name.text_value, expressions.build(env), env)
1059
-
1060
1059
  end
1061
1060
  # Empty rule
1062
1061
  end
@@ -1314,9 +1313,6 @@ module Less
1314
1313
  elements[4]
1315
1314
  end
1316
1315
 
1317
- def s
1318
- elements[6]
1319
- end
1320
1316
  end
1321
1317
 
1322
1318
  module Expression1
@@ -1336,17 +1332,21 @@ module Less
1336
1332
  end
1337
1333
 
1338
1334
  module Expression3
1339
- def entity
1335
+ def s
1340
1336
  elements[0]
1341
1337
  end
1342
1338
 
1343
- def tail
1339
+ def entity
1344
1340
  elements[1]
1345
1341
  end
1346
1342
 
1347
- def ws
1343
+ def tail
1348
1344
  elements[2]
1349
1345
  end
1346
+
1347
+ def ws
1348
+ elements[3]
1349
+ end
1350
1350
  end
1351
1351
 
1352
1352
  module Expression4
@@ -1402,10 +1402,6 @@ module Less
1402
1402
  r7 = nil
1403
1403
  end
1404
1404
  s1 << r7
1405
- if r7
1406
- r8 = _nt_s
1407
- s1 << r8
1408
- end
1409
1405
  end
1410
1406
  end
1411
1407
  end
@@ -1422,52 +1418,61 @@ module Less
1422
1418
  if r1
1423
1419
  r0 = r1
1424
1420
  else
1425
- i9, s9 = index, []
1426
- r10 = _nt_entity
1427
- s9 << r10
1428
- if r10
1429
- s11, i11 = [], index
1430
- loop do
1431
- i12, s12 = index, []
1432
- r13 = _nt_operator
1433
- s12 << r13
1434
- if r13
1435
- r14 = _nt_entity
1436
- s12 << r14
1437
- end
1438
- if s12.last
1439
- r12 = instantiate_node(SyntaxNode,input, i12...index, s12)
1440
- r12.extend(Expression2)
1441
- else
1442
- @index = i12
1443
- r12 = nil
1421
+ i8, s8 = index, []
1422
+ r9 = _nt_s
1423
+ s8 << r9
1424
+ if r9
1425
+ r10 = _nt_entity
1426
+ s8 << r10
1427
+ if r10
1428
+ s11, i11 = [], index
1429
+ loop do
1430
+ i12, s12 = index, []
1431
+ r13 = _nt_operator
1432
+ s12 << r13
1433
+ if r13
1434
+ r14 = _nt_entity
1435
+ s12 << r14
1436
+ end
1437
+ if s12.last
1438
+ r12 = instantiate_node(SyntaxNode,input, i12...index, s12)
1439
+ r12.extend(Expression2)
1440
+ else
1441
+ @index = i12
1442
+ r12 = nil
1443
+ end
1444
+ if r12
1445
+ s11 << r12
1446
+ else
1447
+ break
1448
+ end
1444
1449
  end
1445
- if r12
1446
- s11 << r12
1447
- else
1448
- break
1450
+ r11 = instantiate_node(SyntaxNode,input, i11...index, s11)
1451
+ s8 << r11
1452
+ if r11
1453
+ r15 = _nt_ws
1454
+ s8 << r15
1449
1455
  end
1450
1456
  end
1451
- r11 = instantiate_node(SyntaxNode,input, i11...index, s11)
1452
- s9 << r11
1453
- if r11
1454
- r15 = _nt_ws
1455
- s9 << r15
1456
- end
1457
1457
  end
1458
- if s9.last
1459
- r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
1460
- r9.extend(Expression3)
1461
- r9.extend(Expression4)
1458
+ if s8.last
1459
+ r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
1460
+ r8.extend(Expression3)
1461
+ r8.extend(Expression4)
1462
1462
  else
1463
- @index = i9
1464
- r9 = nil
1463
+ @index = i8
1464
+ r8 = nil
1465
1465
  end
1466
- if r9
1467
- r0 = r9
1466
+ if r8
1467
+ r0 = r8
1468
1468
  else
1469
- @index = i0
1470
- r0 = nil
1469
+ r16 = _nt_operator
1470
+ if r16
1471
+ r0 = r16
1472
+ else
1473
+ @index = i0
1474
+ r0 = nil
1475
+ end
1471
1476
  end
1472
1477
  end
1473
1478
 
@@ -2630,13 +2635,13 @@ module Less
2630
2635
  end
2631
2636
 
2632
2637
  module Operator1
2633
- def build
2638
+ def build env
2634
2639
  Node::Operator.new(text_value.strip)
2635
2640
  end
2636
2641
  end
2637
2642
 
2638
2643
  module Operator2
2639
- def build
2644
+ def build env
2640
2645
  Node::Operator.new(text_value)
2641
2646
  end
2642
2647
  end
@@ -3947,12 +3952,6 @@ module Less
3947
3952
  end
3948
3953
 
3949
3954
  module Argument0
3950
- def build
3951
- Node::Color.new text_value
3952
- end
3953
- end
3954
-
3955
- module Argument1
3956
3955
  def number
3957
3956
  elements[0]
3958
3957
  end
@@ -3962,36 +3961,61 @@ module Less
3962
3961
  end
3963
3962
  end
3964
3963
 
3965
- module Argument2
3964
+ module Argument1
3966
3965
  def build
3967
3966
  Node::Number.new number.text_value, unit.text_value
3968
3967
  end
3969
3968
  end
3970
3969
 
3971
- module Argument3
3970
+ module Argument2
3972
3971
  def build
3973
3972
  Node::String.new text_value
3974
3973
  end
3975
3974
  end
3976
3975
 
3977
- module Argument4
3976
+ module Argument3
3978
3977
  def dimension
3979
3978
  elements[2]
3980
3979
  end
3981
3980
  end
3982
3981
 
3983
- module Argument5
3982
+ module Argument4
3984
3983
  def build
3985
3984
  Node::Anonymous.new text_value
3986
3985
  end
3987
3986
  end
3988
3987
 
3989
- module Argument6
3988
+ module Argument5
3990
3989
  def build
3991
3990
  Node::String.new text_value
3992
3991
  end
3993
3992
  end
3994
3993
 
3994
+ module Argument6
3995
+ def S
3996
+ elements[0]
3997
+ end
3998
+
3999
+ def keyword
4000
+ elements[1]
4001
+ end
4002
+ end
4003
+
4004
+ module Argument7
4005
+ def keyword
4006
+ elements[0]
4007
+ end
4008
+
4009
+ def other
4010
+ elements[1]
4011
+ end
4012
+ end
4013
+
4014
+ module Argument8
4015
+ def build
4016
+ end
4017
+ end
4018
+
3995
4019
  def _nt_argument
3996
4020
  start_index = index
3997
4021
  if node_cache[:argument].has_key?(index)
@@ -4002,7 +4026,6 @@ module Less
4002
4026
 
4003
4027
  i0 = index
4004
4028
  r1 = _nt_color
4005
- r1.extend(Argument0)
4006
4029
  if r1
4007
4030
  r0 = r1
4008
4031
  else
@@ -4015,8 +4038,8 @@ module Less
4015
4038
  end
4016
4039
  if s2.last
4017
4040
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
4041
+ r2.extend(Argument0)
4018
4042
  r2.extend(Argument1)
4019
- r2.extend(Argument2)
4020
4043
  else
4021
4044
  @index = i2
4022
4045
  r2 = nil
@@ -4025,7 +4048,7 @@ module Less
4025
4048
  r0 = r2
4026
4049
  else
4027
4050
  r5 = _nt_string
4028
- r5.extend(Argument3)
4051
+ r5.extend(Argument2)
4029
4052
  if r5
4030
4053
  r0 = r5
4031
4054
  else
@@ -4067,8 +4090,8 @@ module Less
4067
4090
  end
4068
4091
  if s6.last
4069
4092
  r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
4093
+ r6.extend(Argument3)
4070
4094
  r6.extend(Argument4)
4071
- r6.extend(Argument5)
4072
4095
  else
4073
4096
  @index = i6
4074
4097
  r6 = nil
@@ -4095,13 +4118,59 @@ module Less
4095
4118
  r11 = nil
4096
4119
  else
4097
4120
  r11 = instantiate_node(SyntaxNode,input, i11...index, s11)
4098
- r11.extend(Argument6)
4121
+ r11.extend(Argument5)
4099
4122
  end
4100
4123
  if r11
4101
4124
  r0 = r11
4102
4125
  else
4103
- @index = i0
4104
- r0 = nil
4126
+ r13 = _nt_function
4127
+ if r13
4128
+ r0 = r13
4129
+ else
4130
+ i14, s14 = index, []
4131
+ r15 = _nt_keyword
4132
+ s14 << r15
4133
+ if r15
4134
+ s16, i16 = [], index
4135
+ loop do
4136
+ i17, s17 = index, []
4137
+ r18 = _nt_S
4138
+ s17 << r18
4139
+ if r18
4140
+ r19 = _nt_keyword
4141
+ s17 << r19
4142
+ end
4143
+ if s17.last
4144
+ r17 = instantiate_node(SyntaxNode,input, i17...index, s17)
4145
+ r17.extend(Argument6)
4146
+ else
4147
+ @index = i17
4148
+ r17 = nil
4149
+ end
4150
+ if r17
4151
+ s16 << r17
4152
+ else
4153
+ break
4154
+ end
4155
+ end
4156
+ r16 = instantiate_node(SyntaxNode,input, i16...index, s16)
4157
+ s14 << r16
4158
+ end
4159
+ if s14.last
4160
+ r14 = instantiate_node(SyntaxNode,input, i14...index, s14)
4161
+ r14.extend(Argument7)
4162
+ r14.extend(Argument8)
4163
+ else
4164
+ @index = i14
4165
+ r14 = nil
4166
+ end
4167
+ if r14
4168
+ r0 = r14
4169
+ else
4170
+ @index = i0
4171
+ r0 = nil
4172
+ end
4173
+ end
4105
4174
  end
4106
4175
  end
4107
4176
  end
data/spec/css/parens.css CHANGED
@@ -4,4 +4,13 @@
4
4
  width: 36;
5
5
  padding: 2px 36px;
6
6
  }
7
- .more-parens { padding: 8 4 4 4px; }
7
+ .more-parens {
8
+ padding: 8 4 4 4px;
9
+ width: 96;
10
+ height: 113;
11
+ margin: 12;
12
+ }
13
+ .nested-parens {
14
+ width: 71;
15
+ height: 6;
16
+ }
@@ -9,7 +9,13 @@
9
9
  .more-parens {
10
10
  @var: (2 * 2);
11
11
  padding: (2 * @var) 4 4 (@var * 1px);
12
- //width: (@var * @var) * 6;
12
+ width: (@var * @var) * 6;
13
+ height: (7 * 7) + (8 * 8);
14
+ margin: 4 * (5 + 5) / 2 - (@var * 2);
13
15
  //margin: (6 * 6)px;
14
- //height: (7 * 7) + (8 * 8);
15
16
  }
17
+
18
+ .nested-parens {
19
+ width: 2 * (4 * (2 + (1 + 6))) - 1;
20
+ height: ((2+3)*(2+3) / (9-4)) + 1;
21
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudhead-less
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - cloudhead
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-24 00:00:00 -07:00
12
+ date: 2009-07-27 00:00:00 -07:00
13
13
  default_executable: lessc
14
14
  dependencies: []
15
15
 
@@ -186,6 +186,7 @@ files:
186
186
  - spec/spec_helper.rb
187
187
  has_rdoc: true
188
188
  homepage: http://www.lesscss.org
189
+ licenses:
189
190
  post_install_message:
190
191
  rdoc_options:
191
192
  - --charset=UTF-8
@@ -206,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
207
  requirements: []
207
208
 
208
209
  rubyforge_project: less
209
- rubygems_version: 1.2.0
210
+ rubygems_version: 1.3.5
210
211
  signing_key:
211
212
  specification_version: 2
212
213
  summary: LESS compiler