sassc 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 993be013b98cbdeb9f4a4bcb1839cbd5438e0812
4
- data.tar.gz: 5bb1391019da6ae3c231116248d1fdfe8ab06c84
3
+ metadata.gz: c779167157d51896c8f2f389090e3bbdf10ad30d
4
+ data.tar.gz: 744962a099ec22bd66708d7954d3561f422e5a9e
5
5
  SHA512:
6
- metadata.gz: 9c516bab484b989c7c560ed4463ade3f4064ed3206a3eb58d43ae062a81778543b243c9f4531eb676b995fcd5062bf7d8ea44c9296afd2c6221040fbcf584cc7
7
- data.tar.gz: 81a118cc6d8d05814a6a740666e1b3c968cb1ee654d9132655cf0a6a866a9626ef9f70b979afe461ef1144d687b5a556b55b83c1eb805a684423115b9bd61800
6
+ metadata.gz: 0c122bd12dc2c6ffa15b85d9ed1b0045a1419d7fbd2ad67220e3d332dea6b3fdfe725dd9d143f6680068ee033c41c066f70a30893483c7e757595d79ae9be2f9
7
+ data.tar.gz: 6a0be2aeab3aa77e953861f328a9e09cffefefc8ef0521ca24e01e3d2e5493c9eca37d6b57c410764a9bd74c9f4a2e8715f672ddedfc18e557ea2c243552d5f4
@@ -10,15 +10,15 @@ module SassC
10
10
  def render
11
11
  data_context = Native.make_data_context(@template)
12
12
  context = Native.data_context_get_context(data_context)
13
- options = Native.context_get_options(context)
13
+ native_options = Native.context_get_options(context)
14
14
 
15
- Native.option_set_is_indented_syntax_src(options, true) if sass?
16
- Native.option_set_input_path(options, filename) if filename
17
- Native.option_set_include_path(options, load_paths)
15
+ Native.option_set_is_indented_syntax_src(native_options, true) if sass?
16
+ Native.option_set_input_path(native_options, filename) if filename
17
+ Native.option_set_include_path(native_options, load_paths)
18
18
 
19
- importer.setup(options) if importer
19
+ importer.setup(native_options) if importer
20
20
 
21
- status = Script.setup_custom_functions(options, @options) do
21
+ status = Script.setup_custom_functions(native_options, @options) do
22
22
  Native.compile_data_context(data_context)
23
23
  end
24
24
 
@@ -58,7 +58,7 @@ module SassC
58
58
  def importer
59
59
  @importer ||= begin
60
60
  if @options[:importer]
61
- @options[:importer].new
61
+ @options[:importer].new(@options)
62
62
  else
63
63
  nil
64
64
  end
@@ -1,13 +1,15 @@
1
1
  module SassC
2
2
  class Importer
3
- def imports(path)
3
+ attr_reader :options
4
+
5
+ def imports(path, parent_path)
4
6
  # A custom importer must override this method.
5
7
  raise NotImplementedError
6
8
  end
7
9
 
8
10
  def setup(native_options)
9
- @function = FFI::Function.new(:pointer, [:string, :pointer, :pointer]) do |path, prev, cookie|
10
- imports = [*imports(path)]
11
+ @function = FFI::Function.new(:pointer, [:string, :string, :pointer]) do |path, parent_path, cookie|
12
+ imports = [*imports(path, parent_path)]
11
13
  self.class.imports_to_native(imports)
12
14
  end
13
15
 
@@ -15,6 +17,10 @@ module SassC
15
17
  SassC::Native.option_set_importer(native_options, callback)
16
18
  end
17
19
 
20
+ def initialize(options)
21
+ @options = options
22
+ end
23
+
18
24
  def self.empty_imports
19
25
  SassC::Native.make_import_list(0)
20
26
  end
@@ -1,3 +1,3 @@
1
1
  module SassC
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -2,7 +2,7 @@ require_relative "test_helper"
2
2
 
3
3
  class FunctionsTest < SassCTest
4
4
  class CustomImporter < SassC::Importer
5
- def imports(path)
5
+ def imports(path, parent_path)
6
6
  if path =~ /styles/
7
7
  [
8
8
  Import.new("#{path}1.scss", source: "$var1: #000;"),
@@ -15,11 +15,17 @@ class FunctionsTest < SassCTest
15
15
  end
16
16
 
17
17
  class NoFilesImporter < SassC::Importer
18
- def imports(path)
18
+ def imports(path, parent_path)
19
19
  []
20
20
  end
21
21
  end
22
22
 
23
+ class OptionsImporter < SassC::Importer
24
+ def imports(path, parent_path)
25
+ Import.new("name.scss", source: options[:custom_option_source])
26
+ end
27
+ end
28
+
23
29
  def around
24
30
  within_construct do |construct|
25
31
  @construct = construct
@@ -84,4 +90,20 @@ SCSS
84
90
 
85
91
  assert_equal "", engine.render
86
92
  end
93
+
94
+ def test_custom_importer_can_access_sassc_options
95
+ engine = SassC::Engine.new("@import 'fake.scss';", {
96
+ importer: OptionsImporter,
97
+ custom_option_source: ".test { width: 30px; }"
98
+ })
99
+
100
+ assert_equal <<CSS, engine.render
101
+ .test {
102
+ width: 30px; }
103
+ CSS
104
+ end
105
+
106
+ def test_parent_path_is_accessible
107
+ skip "TBD"
108
+ end
87
109
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sassc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Boland
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-08 00:00:00.000000000 Z
11
+ date: 2015-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake