Class: SassC::Engine

Inherits:
Object
  • Object
show all
Defined in:
lib/sassc/engine.rb

Defined Under Namespace

Classes: NotRenderedError

Instance Method Summary collapse

Constructor Details

#initialize(template, options = {}) ⇒ Engine

Returns a new instance of Engine.



5
6
7
8
# File 'lib/sassc/engine.rb', line 5

def initialize(template, options = {})
  @template = template
  @options = options
end

Instance Method Details

#dependenciesObject

Raises:



39
40
41
42
# File 'lib/sassc/engine.rb', line 39

def dependencies
  raise NotRenderedError unless @dependencies
  Dependency.from_filenames(@dependencies)
end

#renderObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/sassc/engine.rb', line 10

def render
  data_context = Native.make_data_context(@template)
  context = Native.data_context_get_context(data_context)
  native_options = Native.context_get_options(context)

  Native.option_set_is_indented_syntax_src(native_options, true) if sass?
  Native.option_set_input_path(native_options, filename) if filename
  Native.option_set_include_path(native_options, load_paths)

  importer.setup(native_options) if importer

  status = Script.setup_custom_functions(native_options, @options) do
    Native.compile_data_context(data_context)
  end

  css = Native.context_get_output_string(context)

  if status != 0
    message = SassC::Native.context_get_error_message(context)
    raise SyntaxError.new(message)
  end

  @dependencies = Native.context_get_included_files(context)

  Native.delete_data_context(data_context)

  return css unless quiet?
end