Skip to content

Commit abd25d8

Browse files
committed
Enables compass extensions when parsing sass files
I thought the previous implementation was too naive
1 parent c73be37 commit abd25d8

File tree

3 files changed

+34
-2
lines changed

3 files changed

+34
-2
lines changed

Gemfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ source 'https://rubygems.org'
33
# Specify your gem's dependencies in csscss.gemspec
44
gemspec
55

6-
gem "sass" # this is an optional runtime dependency
6+
# optional runtime dependencies
7+
gem "sass"
8+
gem "compass"
79

810
gem "rake", :require => false
911
gem "debugger"

Gemfile.lock

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,20 @@ GEM
99
remote: https://rubygems.org/
1010
specs:
1111
blankslate (2.1.2.4)
12+
chunky_png (1.2.7)
1213
colorize (0.5.8)
1314
columnize (0.3.6)
15+
compass (0.12.2)
16+
chunky_png (~> 1.2)
17+
fssm (>= 0.2.7)
18+
sass (~> 3.1)
1419
debugger (1.5.0)
1520
columnize (>= 0.3.1)
1621
debugger-linecache (~> 1.2.0)
1722
debugger-ruby_core_source (~> 1.2.0)
1823
debugger-linecache (1.2.0)
1924
debugger-ruby_core_source (1.2.0)
25+
fssm (0.2.10)
2026
m (1.3.1)
2127
method_source (>= 0.6.7)
2228
rake (>= 0.9.2.2)
@@ -33,6 +39,7 @@ PLATFORMS
3339
ruby
3440

3541
DEPENDENCIES
42+
compass
3643
csscss!
3744
debugger
3845
m

lib/csscss/cli.rb

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ def initialize(argv)
55
@verbose = false
66
@color = true
77
@minimum = 3
8+
@compass = false
89
end
910

1011
def run
@@ -23,7 +24,18 @@ def execute
2324
exit 1
2425
end
2526

26-
Sass::Engine.for_file(filename, {cache:false}).render
27+
sass_options = {cache:false}
28+
sass_options[:load_paths] = Compass.configuration.sass_load_paths if @compass
29+
begin
30+
Sass::Engine.for_file(filename, sass_options).render
31+
rescue Sass::SyntaxError => e
32+
if e.message =~ /compass/ && !@compass
33+
puts "Enable --compass option to use compass's extensions"
34+
exit 1
35+
else
36+
raise e
37+
end
38+
end
2739
else
2840
open(filename) {|f| f.read }
2941
end
@@ -76,6 +88,17 @@ def parse(argv)
7688
exit
7789
end
7890

91+
opts.on("--[no-]compass", "Enables compass extensions when parsing sass/scss") do |compass|
92+
if @compass = compass
93+
begin
94+
require "compass"
95+
rescue LoadError
96+
puts "Must install compass gem before enabling its extensions"
97+
exit 1
98+
end
99+
end
100+
end
101+
79102
opts.on("-j", "--[no-]json", "Output results in JSON") do |j|
80103
@json = j
81104
end

0 commit comments

Comments
 (0)