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
diff options
context:
space:
mode:
Diffstat (limited to 'tasks/converter/less_conversion.rb')
-rw-r--r--tasks/converter/less_conversion.rb36
1 files changed, 34 insertions, 2 deletions
diff --git a/tasks/converter/less_conversion.rb b/tasks/converter/less_conversion.rb
index 61e2146b..f28f4ee7 100644
--- a/tasks/converter/less_conversion.rb
+++ b/tasks/converter/less_conversion.rb
@@ -184,9 +184,41 @@ class Converter
end
def replace_division(less)
- re = /(?<!\w)\(\s*([^(]+?)\s+\/\s+([^)]+?)\s*\)/
+ re = %r{
+ (?<expression>
+ (?<callee>[[:alpha:]\.]+)?
+ \(
+ (?:
+ (?>
+ (?<dividend>
+ [^()/]+
+ |
+ \([^/]+\)
+ )
+ \s+
+ /
+ \s+
+ (?<divisor>
+ [^()/]+
+ |
+ \([^/]+\)
+ )
+ )
+ |
+ \g<expression>
+ )
+ \)
+ )
+ }x
return less if less !~ re
- "@use \"sass:math\";\n" + less.gsub(re, 'math.div(\1, \2)')
+ "@use \"sass:math\";\n" + less.gsub(re) do
+ named_captures = $~.named_captures
+ callee = named_captures['callee']
+ dividend = named_captures['dividend']
+ divisor = named_captures['divisor']
+ expression = "math.div(#{dividend}, #{divisor})"
+ callee.nil? ? expression : "#{callee}(#{expression})"
+ end
end
def sass_fn_exists(fn)