sass 3.2.0.alpha.6 → 3.2.0.alpha.7

Sign up to get free protection for your applications and to get access to all the features.
data/REVISION CHANGED
@@ -1 +1 @@
1
- a684cbdb776a334fecc3011207985a81606c7ea5
1
+ 743da172ee789518d2e99eecb0fdf7f12fea1ee3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.2.0.alpha.6
1
+ 3.2.0.alpha.7
@@ -1299,6 +1299,49 @@ module Sass::Script
1299
1299
  declare :append, [:list, :val]
1300
1300
  declare :append, [:list, :val, :separator]
1301
1301
 
1302
+ # Combines several lists into a single comma separated list
1303
+ # space separated lists.
1304
+ #
1305
+ # The length of the resulting list is the length of the
1306
+ # shortest list.
1307
+ #
1308
+ # @example
1309
+ # zip(1px 1px 3px, solid dashed solid, red green blue)
1310
+ # => 1px solid red, 1px dashed green, 3px solid blue
1311
+ def zip(*lists)
1312
+ length = nil
1313
+ values = []
1314
+ lists.each do |list|
1315
+ assert_type list, :List
1316
+ values << list.value.dup
1317
+ length = length.nil? ? list.value.length : [length, list.value.length].min
1318
+ end
1319
+ values.each do |value|
1320
+ value.slice!(length)
1321
+ end
1322
+ new_list_value = values.first.zip(*values[1..-1])
1323
+ List.new(new_list_value.map{|list| List.new(list, :space)}, :comma)
1324
+ end
1325
+ declare :zip, [], :var_args => true
1326
+
1327
+
1328
+ # Returns the position of the given value within the given
1329
+ # list. If not found, returns false.
1330
+ #
1331
+ # @example
1332
+ # index(1px solid red, solid) => 2
1333
+ # index(1px solid red, dashed) => false
1334
+ def index(list, value)
1335
+ assert_type list, :List
1336
+ index = list.value.index {|e| e.eq(value).to_bool }
1337
+ if index
1338
+ Number.new(index + 1)
1339
+ else
1340
+ Bool.new(false)
1341
+ end
1342
+ end
1343
+ declare :index, [:list, :value]
1344
+
1302
1345
  # Returns one of two values based on the truth value of the first argument.
1303
1346
  #
1304
1347
  # @example
@@ -965,6 +965,19 @@ MSG
965
965
  assert_error_message("Separator name must be space, comma, or auto for `append'", "append(1, 2, baboon)")
966
966
  end
967
967
 
968
+ def test_zip
969
+ assert_equal("1 3 5, 2 4 6", evaluate("zip(1 2, 3 4, 5 6)"))
970
+ assert_equal("1 4 7, 2 5 8", evaluate("zip(1 2 3, 4 5 6, 7 8)"))
971
+ end
972
+
973
+ def test_index
974
+ assert_equal("1", evaluate("index(1px solid blue, 1px)"))
975
+ assert_equal("2", evaluate("index(1px solid blue, solid)"))
976
+ assert_equal("3", evaluate("index(1px solid blue, #00f)"))
977
+ assert_equal("false", evaluate("index(1px solid blue, 1em)"))
978
+ assert_equal("false", evaluate("index(1px solid blue, notfound)"))
979
+ end
980
+
968
981
  def test_if
969
982
  assert_equal("1px", evaluate("if(true, 1px, 2px)"))
970
983
  assert_equal("2px", evaluate("if(false, 1px, 2px)"))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sass
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0.alpha.6
4
+ version: 3.2.0.alpha.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Weizenbaum
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-05-26 00:00:00 -04:00
14
+ date: 2011-05-31 00:00:00 -04:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency