Class: Haml::Exec::Sass
Overview
A class encapsulating executable functionality specific to Sass.
Instance Method Summary collapse
-
#initialize(args) ⇒ Sass
constructor
:nodoc:.
- #process_result ⇒ Object
- #set_opts(opts) ⇒ Object
Methods inherited from Generic
Constructor Details
#initialize(args) ⇒ Sass
:nodoc:
168 169 170 171 172 |
# File 'lib/haml/exec.rb', line 168 def initialize(args) super @name = "Sass" @options[:for_engine][:load_paths] = ['.'] + (ENV['SASSPATH'] || '').split(File::PATH_SEPARATOR) end |
Instance Method Details
#process_result ⇒ Object
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
# File 'lib/haml/exec.rb', line 194 def process_result if @options[:interactive] require 'sass' require 'sass/repl' ::Sass::Repl.run return end super input = @options[:input] output = @options[:output] template = input.read() input.close() if input.is_a? File begin # We don't need to do any special handling of @options[:check_syntax] here, # because the Sass syntax checking happens alongside evaluation # and evaluation doesn't actually evaluate any code anyway. result = ::Sass::Engine.new(template, @options[:for_engine]).render rescue ::Sass::SyntaxError => e raise e if @options[:trace] raise "Syntax error on line #{get_line e}: #{e.}" end output.write(result) output.close() if output.is_a? File end |
#set_opts(opts) ⇒ Object
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/haml/exec.rb', line 174 def set_opts(opts) super opts.on('-t', '--style NAME', 'Output style. Can be nested (default), compact, compressed, or expanded.') do |name| @options[:for_engine][:style] = name.to_sym end opts.on('-l', '--line-comments', 'Line Comments. Emit comments in the generated CSS indicating the corresponding sass line.') do @options[:for_engine][:line_comments] = true end opts.on('-i', '--interactive', 'Run an interactive SassScript shell.') do @options[:interactive] = true end opts.on('-I', '--load-path PATH', 'Add a sass import path.') do |path| @options[:for_engine][:load_paths] << path end end |