Module: Less::Expander

Defined in:
lib/less/expander.rb

Constant Summary collapse

PREFIXES =
%w(moz o webkit)
EXPANDERS =
{
  /\s*appearance\s*:\s*(.+);/i => '\0' + PREFIXES.map {|p| "-#{p}-appearance: \\1;" }.join,
  /\s*background\-image\s*:\s*gradient\((.+)\)\s*;/ => 'background-image: gradient(\1);' << PREFIXES.map {|p| "background-image: -#{p}-gradient(\\1);" }.join,
  /\s*background\-size\s*:\s*(.+);/i => '\0' + PREFIXES.map {|p| "-#{p}-background-size: \\1;" }.join,
  /\s*border\-image\s*:\s*(.+);/i => '\0' + PREFIXES.map {|p| "-#{p}-border-image: \\1;" }.join,
  /\s*border\-radius\s*:\s*(.+);/i => '\0' + PREFIXES.map {|p| "-#{p}-border-radius: \\1;" }.join,
  /\s*box\-shadow\s*:\s*(.+);/i => '\0' + PREFIXES.map {|p| "-#{p}-box-shadow: \\1;" }.join,
  /\s*box\-sizing\s*:\s*(.+);/i => '\0' + PREFIXES.map {|p| "-#{p}-box-sizing: \\1;" }.join,
  /\s*column\-count\s*:\s*(.+);/i => '\0' + PREFIXES.map {|p| "-#{p}-column-count: \\1;" }.join,
  /\s*column\-gap\s*:\s*(.+);/i => '\0' + PREFIXES.map {|p| "-#{p}-column-gap: \\1;" }.join,
  /\s*column\-rule\s*:\s*(.+);/i => '\0' + PREFIXES.map {|p| "-#{p}-column-rule: \\1;" }.join,
  /\s*column\-width\s*:\s*(.+);/i => '\0' + PREFIXES.map {|p| "-#{p}-column-width: \\1;" }.join,
  /\s*user\-select\s*:\s*(.+);/i => '\0' + PREFIXES.map {|p| "-#{p}-user-select: \\1;" }.join
}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



21
22
23
24
# File 'lib/less/expander.rb', line 21

def self.included(base)
  base.send(:alias_method, :prepare_without_expander, :prepare)
  base.send(:alias_method, :prepare, :prepare_with_expander)
end

Instance Method Details

#prepare_with_expanderObject



26
27
28
29
30
# File 'lib/less/expander.rb', line 26

def prepare_with_expander
  EXPANDERS.each { |reg, replace| @less.gsub!(reg, replace) } unless @expanded
  @expanded = true
  prepare_without_expander
end