lib/beautiful-css/engine.rb in beautiful-css-0.0.8 vs lib/beautiful-css/engine.rb in beautiful-css-0.0.9
- old
+ new
@@ -16,24 +16,30 @@
render
end
def render
return nil if @input.nil?
+ save_imports
rules = build_rules
cleaned = remove_unset rules
groups = build_groups(cleaned)
return format( groups )
end
private
+ def save_imports
+ @imports = @input.scan(/@import[^;]+;/i)
+ end
+
def build_rules
text = scss_to_css @input
+ text = text.gsub(/@import[^;]+;/i, '') #remove imports
text = text.gsub( /[\n\r\t]/m, " " )
text = text.gsub( / +/m, " " )
- text = text.gsub( /\/\*[^*]*\*\//m, " " )
+ text = text.gsub( /\/\*[^*]*\*\//m, " " ) #remove comments
rules = text.split('}')
rules = rules.map{|r| RuleParser.new(r).to_rules }.flatten
end
def remove_unset rules
@@ -57,16 +63,17 @@
end
groups
end
def format groups
- output = ''
+ output = @imports.join('\n') + "\n"
+
groups.keys.sort.each do |key|
output += "\n"
output += groups[key].uniq.join(",\n") + "\n"
output += key + "\n"
end
- output.gsub( /: +/, ':' )
+ output.gsub( /: +/, ':' ).strip
end
end
end