Class: Sass::CSS
- Inherits:
-
Object
- Object
- Sass::CSS
- Defined in:
- lib/sass/css.rb
Overview
This class converts CSS documents into Sass or SCSS templates. It works by parsing the CSS document into a Tree structure, and then applying various transformations to the structure to produce more concise and idiomatic Sass/SCSS.
Example usage:
Sass::CSS.new("p { color: blue }").render(:sass) #=> "p\n color: blue"
Sass::CSS.new("p { color: blue }").render(:scss) #=> "p {\n color: blue; }"
Instance Method Summary collapse
-
#initialize(template, options = {}) ⇒ CSS
constructor
A new instance of CSS.
-
#render(fmt = :sass) ⇒ String
Converts the CSS template into Sass or SCSS code.
-
#source_encoding ⇒ Encoding?
Returns the original encoding of the document.
Constructor Details
#initialize(template, options = {}) ⇒ CSS
Returns a new instance of CSS.
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/sass/css.rb', line 29
def initialize(template, options = {})
if template.is_a? IO
template = template.read
end
@options = options.merge(:_convert => true)
# Backwards compatibility
@options[:old] = true if @options[:alternate] == false
@template = template
@checked_encoding = false
end
|
Instance Method Details
#render(fmt = :sass) ⇒ String
Converts the CSS template into Sass or SCSS code.
46 47 48 49 50 51 52 |
# File 'lib/sass/css.rb', line 46
def render(fmt = :sass)
check_encoding!
build_tree.send("to_#{fmt}", @options).strip + "\n"
rescue Sass::SyntaxError => err
err.modify_backtrace(:filename => @options[:filename] || '(css)')
raise err
end
|
#source_encoding ⇒ Encoding?
Returns the original encoding of the document.
60 61 62 63 |
# File 'lib/sass/css.rb', line 60
def source_encoding
check_encoding!
@original_encoding
end
|