sass 3.4.11 → 3.4.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +3 -0
- data/VERSION +1 -1
- data/VERSION_DATE +1 -1
- data/lib/sass/script/functions.rb +5 -5
- data/lib/sass/script/lexer.rb +13 -10
- data/test/sass/functions_test.rb +8 -0
- data/test/sass/script_test.rb +7 -0
- metadata +3 -3
- data/CONTRIBUTING +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4b73da7dd6f9103e68b1edcb10a59411db18295
|
4
|
+
data.tar.gz: ac1d03b3da377814ef33bc5ef9e8f58f318571f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4da9bdb240ed324d5e7ffd69c3f84d78d811060f19949c4c1d534bf71fbce21b87b96e976f80c6f21fe5636d31e2472f9132fc12b9cb82370bd251e1c3f3e8ec
|
7
|
+
data.tar.gz: 6adddaf3a218472b3eaf4f8a23c6a909dab474f8265088aedee06cbdc6505d948a50d6f29aca9464f9d6786c7f6db3f6f89eaa435a329cddf1bec407a516027f
|
data/CONTRIBUTING.md
ADDED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.4.
|
1
|
+
3.4.12
|
data/VERSION_DATE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
14 February 2015 01:18:18 UTC
|
@@ -1471,10 +1471,10 @@ MESSAGE
|
|
1471
1471
|
assert_type insert, :String, :insert
|
1472
1472
|
assert_integer index, :index
|
1473
1473
|
assert_unit index, nil, :index
|
1474
|
-
insertion_point = if index.
|
1475
|
-
[index.
|
1474
|
+
insertion_point = if index.to_i > 0
|
1475
|
+
[index.to_i - 1, original.value.size].min
|
1476
1476
|
else
|
1477
|
-
[index.
|
1477
|
+
[index.to_i, -original.value.size - 1].max
|
1478
1478
|
end
|
1479
1479
|
result = original.value.dup.insert(insertion_point, insert.value)
|
1480
1480
|
Sass::Script::Value::String.new(result, original.type)
|
@@ -2325,10 +2325,10 @@ MESSAGE
|
|
2325
2325
|
generator = Sass::Script::Functions.random_number_generator
|
2326
2326
|
if limit
|
2327
2327
|
assert_integer limit, "limit"
|
2328
|
-
if limit.
|
2328
|
+
if limit.to_i < 1
|
2329
2329
|
raise ArgumentError.new("$limit #{limit} must be greater than or equal to 1")
|
2330
2330
|
end
|
2331
|
-
number(1 + generator.rand(limit.
|
2331
|
+
number(1 + generator.rand(limit.to_i))
|
2332
2332
|
else
|
2333
2333
|
number(generator.rand)
|
2334
2334
|
end
|
data/lib/sass/script/lexer.rb
CHANGED
@@ -198,7 +198,8 @@ module Sass
|
|
198
198
|
|
199
199
|
# @return [Boolean] Whether or not there's more source text to lex.
|
200
200
|
def done?
|
201
|
-
|
201
|
+
return if @next_tok
|
202
|
+
whitespace unless after_interpolation? && !@interpolation_stack.empty?
|
202
203
|
@scanner.eos? && @tok.nil?
|
203
204
|
end
|
204
205
|
|
@@ -235,6 +236,11 @@ module Sass
|
|
235
236
|
private
|
236
237
|
|
237
238
|
def read_token
|
239
|
+
if (tok = @next_tok)
|
240
|
+
@next_tok = nil
|
241
|
+
return tok
|
242
|
+
end
|
243
|
+
|
238
244
|
return if done?
|
239
245
|
start_pos = source_position
|
240
246
|
value = token
|
@@ -293,9 +299,9 @@ MESSAGE
|
|
293
299
|
end
|
294
300
|
|
295
301
|
if @scanner[2] == '#{' # '
|
296
|
-
@scanner.pos -= 2 # Don't actually consume the #{
|
297
|
-
@offset -= 2
|
298
302
|
@interpolation_stack << [:string, re]
|
303
|
+
start_pos = Sass::Source::Position.new(@line, @offset - 2)
|
304
|
+
@next_tok = Token.new(:string_interpolation, range(start_pos), @scanner.pos - 2)
|
299
305
|
end
|
300
306
|
str =
|
301
307
|
if re == :uri
|
@@ -392,9 +398,9 @@ MESSAGE
|
|
392
398
|
else
|
393
399
|
raise "[BUG] Unreachable" unless @scanner[1] == '#{' # '
|
394
400
|
str.slice!(-2..-1)
|
395
|
-
@scanner.pos -= 2 # Don't actually consume the #{
|
396
|
-
@offset -= 2
|
397
401
|
@interpolation_stack << [:special_fun, parens]
|
402
|
+
start_pos = Sass::Source::Position.new(@line, @offset - 2)
|
403
|
+
@next_tok = Token.new(:string_interpolation, range(start_pos), @scanner.pos - 2)
|
398
404
|
end
|
399
405
|
|
400
406
|
return [:special_fun, Sass::Script::Value::String.new(str)]
|
@@ -419,11 +425,8 @@ MESSAGE
|
|
419
425
|
op = scan(REGULAR_EXPRESSIONS[:op])
|
420
426
|
return unless op
|
421
427
|
name = OPERATORS[op]
|
422
|
-
if name == :begin_interpolation
|
423
|
-
|
424
|
-
else
|
425
|
-
[name]
|
426
|
-
end
|
428
|
+
@interpolation_stack << nil if name == :begin_interpolation
|
429
|
+
[name]
|
427
430
|
end
|
428
431
|
|
429
432
|
def raw(rx)
|
data/test/sass/functions_test.rb
CHANGED
@@ -1664,6 +1664,14 @@ SCSS
|
|
1664
1664
|
assert_error_message("Expected $limit to be an integer but got 1.5 for `random'", "random(1.5)")
|
1665
1665
|
end
|
1666
1666
|
|
1667
|
+
# Regression test for #1638.
|
1668
|
+
def test_random_with_float_integer_limit
|
1669
|
+
result = perform("random(1.0)")
|
1670
|
+
assert_kind_of Sass::Script::Number, result
|
1671
|
+
assert result.value >= 0, "Random number was below 0"
|
1672
|
+
assert result.value <= 1, "Random number was above 1"
|
1673
|
+
end
|
1674
|
+
|
1667
1675
|
# This could *possibly* fail, but exceedingly unlikely
|
1668
1676
|
def test_random_is_semi_unique
|
1669
1677
|
if Sass::Script::Functions.instance_variable_defined?("@random_number_generator")
|
data/test/sass/script_test.rb
CHANGED
@@ -206,6 +206,13 @@ class SassScriptTest < MiniTest::Test
|
|
206
206
|
assert_equal "foo1bar5baz4bang", resolve('\'foo#{1 + "bar#{2 + 3}baz" + 4}bang\'')
|
207
207
|
end
|
208
208
|
|
209
|
+
def test_interpolation_in_interpolation
|
210
|
+
assert_equal 'foo', resolve('#{#{foo}}')
|
211
|
+
assert_equal 'foo', resolve('"#{#{foo}}"')
|
212
|
+
assert_equal 'foo', resolve('#{"#{foo}"}')
|
213
|
+
assert_equal 'foo', resolve('"#{"#{foo}"}"')
|
214
|
+
end
|
215
|
+
|
209
216
|
def test_interpolation_with_newline
|
210
217
|
assert_equal "\nbang", resolve('"#{"\a "}bang"')
|
211
218
|
assert_equal "\n\nbang", resolve('"#{"\a "}\a bang"')
|
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.4.
|
4
|
+
version: 3.4.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Natalie Weizenbaum
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-02-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: yard
|
@@ -68,7 +68,7 @@ extensions: []
|
|
68
68
|
extra_rdoc_files: []
|
69
69
|
files:
|
70
70
|
- .yardopts
|
71
|
-
- CONTRIBUTING
|
71
|
+
- CONTRIBUTING.md
|
72
72
|
- MIT-LICENSE
|
73
73
|
- README.md
|
74
74
|
- REVISION
|
data/CONTRIBUTING
DELETED