forked from Compass/compass
/
adapters.rb
64 lines (59 loc) · 2.38 KB
/
adapters.rb
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
module Compass
module Configuration
# The adapters module provides methods that make configuration data from a compass project
# adapt to various consumers of configuration data
module Adapters
def to_compiler_arguments(additional_options = {})
[project_path, sass_path, css_path, to_sass_engine_options.merge(additional_options)]
end
def to_sass_plugin_options
locations = []
locations << [sass_path, css_path] if sass_path && css_path
Compass::Frameworks::ALL.each do |framework|
locations << [framework.stylesheets_directory, File.join(css_path || css_dir || ".", framework.name)]
end
resolve_additional_import_paths.each do |additional_path|
locations << [additional_path, File.join(css_path || css_dir || ".", File.basename(additional_path))]
end
plugin_opts = {:template_location => locations}
plugin_opts[:style] = output_style if output_style
plugin_opts[:line_comments] = line_comments
plugin_opts[:cache] = cache unless cache.nil?
plugin_opts[:cache_location] = cache_path unless cache_path.nil?
plugin_opts.merge!(sass_options || {})
plugin_opts
end
def resolve_additional_import_paths
(additional_import_paths || []).map do |path|
if project_path && !absolute_path?(path)
File.join(project_path, path)
else
path
end
end
end
def absolute_path?(path)
# This is only going to work on unix, gonna need a better implementation.
path.index(File::SEPARATOR) == 0
end
def to_sass_engine_options
engine_opts = {:load_paths => sass_load_paths}
engine_opts[:style] = output_style if output_style
engine_opts[:line_comments] = line_comments
engine_opts[:cache] = cache
engine_opts[:cache_location] = cache_path
engine_opts[:quiet] = disable_warnings if disable_warnings
engine_opts.merge!(sass_options || {})
end
def sass_load_paths
load_paths = []
load_paths << sass_path if sass_path
Compass::Frameworks::ALL.each do |framework|
load_paths << framework.stylesheets_directory if File.exists?(framework.stylesheets_directory)
end
load_paths += resolve_additional_import_paths
load_paths
end
end
end
end