Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap-sass.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tasks
diff options
context:
space:
mode:
authorGleb Mazovetskiy <glex.spb@gmail.com>2014-06-17 05:17:29 +0400
committerGleb Mazovetskiy <glex.spb@gmail.com>2014-06-17 05:17:29 +0400
commitf9af31710f660abea648229504daad7ce259ee70 (patch)
treebdfb06b50a30d32b66afac78ed0d1e16589d8021 /tasks
parentdd4957d4ae45ad5615c00bd3764bbda1feaa502f (diff)
assigning a variable in mixin overrides outer scope #636
Diffstat (limited to 'tasks')
-rw-r--r--tasks/converter/less_conversion.rb10
1 files changed, 7 insertions, 3 deletions
diff --git a/tasks/converter/less_conversion.rb b/tasks/converter/less_conversion.rb
index a79be3c3..3a1b9650 100644
--- a/tasks/converter/less_conversion.rb
+++ b/tasks/converter/less_conversion.rb
@@ -167,13 +167,17 @@ class Converter
# convert recursively evaluated selector $list to @for loop
def mixin_all_grid_columns(css, selector: raise('pass class'), from: 1, to: raise('pass to'))
mxn_def = css.each_line.first.strip
+ # inject local variables as default arguments
+ # this is to avoid overwriting outer variables with the same name with Sass <= 3.3
+ # see also: https://github.com/twbs/bootstrap-sass/issues/636
+ locals = <<-SASS.strip
+ $i: #{from}, $list: "#{selector}"
+ SASS
+ mxn_def.sub!(/(\(?)(\)\s*\{)/) { "#{$1}#{', ' if $1.empty?}#{locals}#{$2}" }
step_body = (css =~ /\$list \{\n(.*?)\n[ ]*\}/m) && $1
<<-SASS
// [converter] This is defined recursively in LESS, but Sass supports real loops
#{mxn_def}
- $list: '';
- $i: #{from};
- $list: "#{selector}";
@for $i from (#{from} + 1) through #{to} {
$list: "\#{$list}, #{selector}";
}