File: mock_importer.rb

package info (click to toggle)
ruby-sass 3.7.4-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,396 kB
  • sloc: ruby: 32,443; sh: 26; makefile: 25
file content (49 lines) | stat: -rw-r--r-- 910 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
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
38
39
40
41
42
43
44
45
46
47
48
49
class MockImporter < Sass::Importers::Base
  def initialize(name = "mock")
    @name = name
    @imports = Hash.new({})
  end

  def find_relative(uri, base, options)
    nil
  end

  def find(uri, options)
    contents = @imports[uri][:contents]
    return unless contents
    options[:syntax] = @imports[uri][:syntax]
    options[:filename] = uri
    options[:importer] = self
    @imports[uri][:engine] = Sass::Engine.new(contents, options)
  end

  def mtime(uri, options)
    @imports[uri][:mtime]
  end

  def key(uri, options)
    ["mock", uri]
  end

  def to_s
    @name
  end

  # Methods for testing

  def add_import(uri, contents, syntax = :scss, mtime = Time.now - 10)
    @imports[uri] = {
      :contents => contents,
      :mtime => mtime,
      :syntax => syntax
    }
  end

  def touch(uri)
    @imports[uri][:mtime] = Time.now
  end

  def engine(uri)
    @imports[uri][:engine]
  end
end