compass 1.0.0.alpha.15 → 1.0.0.alpha.16

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.
Files changed (28) hide show
  1. data/RELEASE_VERSION +1 -1
  2. data/VERSION +1 -1
  3. data/lib/compass/commands/update_project.rb +5 -0
  4. data/lib/compass/compiler.rb +50 -11
  5. data/lib/compass/configuration/serialization.rb +4 -0
  6. data/lib/compass/sass_extensions/functions/sprites.rb +31 -29
  7. data/lib/compass/sass_extensions/sprites/image.rb +4 -3
  8. data/lib/compass/sass_extensions/sprites/image_methods.rb +2 -2
  9. data/lib/compass/sass_extensions/sprites/sprite_map.rb +6 -5
  10. data/lib/compass/stats.rb +1 -1
  11. data/lib/compass/watcher/compiler.rb +3 -2
  12. data/lib/compass/watcher/project_watcher.rb +4 -4
  13. data/test/fixtures/stylesheets/compass/config.rb +1 -0
  14. data/test/fixtures/stylesheets/compass/css/lists.css +4 -4
  15. data/test/fixtures/stylesheets/compass/css/vertical_rhythm.css +0 -169
  16. data/test/fixtures/stylesheets/compass/css/vertical_rhythm_with_ems.css +51 -0
  17. data/test/fixtures/stylesheets/compass/css/vertical_rhythm_with_px.css +50 -0
  18. data/test/fixtures/stylesheets/compass/css/vertical_rhythm_with_rems.css +65 -0
  19. data/test/fixtures/stylesheets/compass/sass/vertical_rhythm.scss +0 -157
  20. data/test/fixtures/stylesheets/compass/sass/vertical_rhythm_with_ems.scss +52 -0
  21. data/test/fixtures/stylesheets/compass/sass/vertical_rhythm_with_px.scss +50 -0
  22. data/test/fixtures/stylesheets/compass/sass/vertical_rhythm_with_rems.scss +50 -0
  23. data/test/fixtures/stylesheets/envtest/tmp/env.css +2 -2
  24. data/test/helpers/command_line.rb +1 -1
  25. data/test/units/configuration_test.rb +6 -0
  26. data/test/units/sass_extensions_test.rb +9 -3
  27. data/test/units/sass_extenstions/gradients_test.rb +8 -11
  28. metadata +41 -13
@@ -1 +1 @@
1
- 1.0.0.alpha.15
1
+ 1.0.0.alpha.16
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0.alpha.14
1
+ 1.0.0.alpha.15
@@ -14,6 +14,10 @@ module Compass
14
14
  Options:
15
15
  }.split("\n").map{|l| l.gsub(/^ */,'')}.join("\n")
16
16
 
17
+ opts.on("--[no-]sourcemap", "Generate a sourcemap during compilation.") do |sm|
18
+ self.options[:sourcemap] = sm
19
+ end
20
+
17
21
  opts.on("--time", "Display compilation times.") do
18
22
  self.options[:time] = true
19
23
  end
@@ -64,6 +68,7 @@ module Compass
64
68
  compiler_opts.merge!(options)
65
69
  compiler_opts[:sass_files] = explicit_sass_files
66
70
  compiler_opts[:cache_location] = determine_cache_location
71
+ compiler_opts[:sourcemap] = Compass.configuration.sourcemap if compiler_opts[:sourcemap].nil?
67
72
  if options.include?(:debug_info) && options[:debug_info]
68
73
  compiler_opts[:sass][:debug_info] = options.delete(:debug_info)
69
74
  end
@@ -1,3 +1,5 @@
1
+ require 'pathname'
2
+
1
3
  module Compass
2
4
  class Compiler
3
5
 
@@ -55,10 +57,18 @@ module Compass
55
57
  @css_files ||= sass_files.map{|sass_file| corresponding_css_file(sass_file)}
56
58
  end
57
59
 
60
+ def sourcemap_files
61
+ @sourcemap_files ||= sass_files.map{|sass_file| corresponding_sourcemap_file(sass_file)}
62
+ end
63
+
58
64
  def corresponding_css_file(sass_file)
59
65
  "#{to}/#{stylesheet_name(sass_file)}.css"
60
66
  end
61
67
 
68
+ def corresponding_sourcemap_file(sass_file)
69
+ "#{to}/#{stylesheet_name(sass_file)}.map"
70
+ end
71
+
62
72
  def target_directories
63
73
  css_files.map{|css_file| File.dirname(css_file)}.uniq.sort.sort_by{|d| d.length }
64
74
  end
@@ -86,10 +96,18 @@ module Compass
86
96
  nil
87
97
  end
88
98
 
99
+ def reset!
100
+ reset_staleness_checker!
101
+ @sass_files = nil
102
+ @css_files = nil
103
+ @sourcemap_files = nil
104
+ end
105
+
89
106
  def clean!
90
107
  remove options[:cache_location]
91
- css_files.each do |css_file|
108
+ css_files.zip(sourcemap_files).each do |css_file, sourcemap_file|
92
109
  remove css_file
110
+ remove sourcemap_file
93
111
  end
94
112
  end
95
113
 
@@ -106,9 +124,9 @@ module Compass
106
124
 
107
125
  # Compile each sass file.
108
126
  result = timed do
109
- sass_files.zip(css_files).each do |sass_filename, css_filename|
127
+ sass_files.zip(css_files, sourcemap_files).each do |sass_filename, css_filename, sourcemap_filename|
110
128
  begin
111
- compile_if_required sass_filename, css_filename
129
+ compile_if_required sass_filename, css_filename, sourcemap_filename
112
130
  rescue Sass::SyntaxError => e
113
131
  failure_count += 1
114
132
  handle_exception(sass_filename, css_filename, e)
@@ -121,11 +139,12 @@ module Compass
121
139
  return failure_count
122
140
  end
123
141
 
124
- def compile_if_required(sass_filename, css_filename)
125
- if should_compile?(sass_filename, css_filename)
126
- compile sass_filename, css_filename
142
+ def compile_if_required(sass_filename, css_filename, sourcemap_filename = nil)
143
+ if should_compile?(sass_filename, css_filename, sourcemap_filename)
144
+ compile sass_filename, css_filename, sourcemap_filename
127
145
  else
128
146
  logger.record :unchanged, basename(sass_filename) unless options[:quiet]
147
+ remove(sourcemap_filename) if sourcemap_filename && !options[:sourcemap]
129
148
  end
130
149
  end
131
150
 
@@ -141,20 +160,40 @@ module Compass
141
160
  end
142
161
 
143
162
  # Compile one Sass file
144
- def compile(sass_filename, css_filename)
163
+ def compile(sass_filename, css_filename, sourcemap_filename = nil)
145
164
  start_time = end_time = nil
146
- css_content = logger.red do
165
+ css_content, sourcemap = logger.red do
147
166
  timed do
148
- engine(sass_filename, css_filename).render
167
+ engine = engine(sass_filename, css_filename)
168
+ if sourcemap_filename && options[:sourcemap]
169
+ engine.render_with_sourcemap(relative_path(css_filename, sourcemap_filename))
170
+ else
171
+ [engine.render, nil]
172
+ end
149
173
  end
150
174
  end
151
175
  duration = options[:time] ? "(#{(css_content.__duration * 1000).round / 1000.0}s)" : ""
152
176
  write_file(css_filename, css_content, options.merge(:force => true, :extra => duration), sass_options[:unix_newlines])
177
+ if sourcemap
178
+ sourcemap_content = sourcemap.to_json(:css_path => css_filename,
179
+ :sourcemap_path => sourcemap_filename)
180
+ write_file(sourcemap_filename, sourcemap_content, options.merge(:force => true), sass_options[:unix_newlines])
181
+ elsif File.exist?(sourcemap_filename)
182
+ remove sourcemap_filename
183
+ end
153
184
  Compass.configuration.run_stylesheet_saved(css_filename)
154
185
  end
155
186
 
156
- def should_compile?(sass_filename, css_filename)
157
- options[:force] || needs_update?(css_filename, sass_filename)
187
+ def relative_path(from_path, to_path)
188
+ Pathname.new(to_path).relative_path_from(Pathname.new(from_path).dirname).to_s
189
+ end
190
+
191
+ def should_compile?(sass_filename, css_filename, sourcemap_filename = nil)
192
+ return true if css_filename && !File.exist?(css_filename)
193
+ return true if sourcemap_filename && options[:sourcemap] && !File.exist?(sourcemap_filename)
194
+ options[:force] ||
195
+ needs_update?(css_filename, sass_filename) ||
196
+ (options[:sourcemap] && needs_update?(sourcemap_filename, sass_filename))
158
197
  end
159
198
 
160
199
  # A sass engine for compiling a single file.
@@ -43,6 +43,10 @@ module Compass
43
43
  (required_libraries || []).each do |lib|
44
44
  contents << %Q{require '#{lib}'\n}
45
45
  end
46
+ unless (required_libraries || []).include?("compass/import-once/activate") ||
47
+ (required_libraries || []).include?("compass/import-once")
48
+ contents << "require 'compass/import-once/activate'\n"
49
+ end
46
50
  (loaded_frameworks || []).each do |lib|
47
51
  contents << %Q{load '#{lib}'\n}
48
52
  end
@@ -1,10 +1,13 @@
1
1
  module Compass::SassExtensions::Functions::Sprites
2
2
 
3
3
  extend Compass::SassExtensions::Functions::SassDeclarationHelper
4
+ extend Sass::Script::Value::Helpers
5
+ include Sass::Script::Value::Helpers
4
6
 
5
- ZERO = Sass::Script::Number::new(0)
6
- BOOL_FALSE = Sass::Script::Bool::new(false)
7
+ ZERO = number(0)
8
+ BOOL_FALSE = bool(false)
7
9
  VALID_SELECTORS = %w(hover active target focus)
10
+
8
11
  # Provides a consistent interface for getting a variable in ruby
9
12
  # from a keyword argument hash that accounts for underscores/dash equivalence
10
13
  # and allows the caller to pass a symbol instead of a string.
@@ -19,7 +22,7 @@ module Compass::SassExtensions::Functions::Sprites
19
22
  verify_map(map, 'sprite-width')
20
23
  file = get_sprite_file(map, sprite)
21
24
  width, _ = image_dimensions(file)
22
- Sass::Script::Number.new(width, ["px"])
25
+ number(width, "px")
23
26
  end
24
27
  declare :sprite_width, [:map]
25
28
  declare :sprite_width, [:map, :sprite]
@@ -29,7 +32,7 @@ module Compass::SassExtensions::Functions::Sprites
29
32
  verify_map(map, 'sprite-height')
30
33
  file = get_sprite_file(map, sprite)
31
34
  _, height = image_dimensions(file)
32
- Sass::Script::Number.new(height, ["px"])
35
+ number(height, "px")
33
36
  end
34
37
  declare :sprite_height, [:map]
35
38
  declare :sprite_height, [:map, :sprite]
@@ -37,14 +40,14 @@ module Compass::SassExtensions::Functions::Sprites
37
40
  # Returns a list of all sprite names
38
41
  def sprite_names(map)
39
42
  verify_map(map, 'sprite-names')
40
- Sass::Script::List.new(map.sprite_names.map { |f| Sass::Script::String.new(f) }, ' ')
43
+ list(map.sprite_names.map { |f| identifier(f) }, :comma)
41
44
  end
42
45
  declare :sprite_names, [:map]
43
46
 
44
47
  # Returns the system path of the sprite file
45
48
  def sprite_path(map)
46
49
  verify_map(map, 'sprite-path')
47
- Sass::Script::String.new(map.filename)
50
+ identifier(map.filename)
48
51
  end
49
52
  declare :sprite_path, [:map]
50
53
 
@@ -96,7 +99,7 @@ module Compass::SassExtensions::Functions::Sprites
96
99
  verify_sprite(sprite)
97
100
  url = sprite_url(map)
98
101
  position = sprite_position(map, sprite, offset_x, offset_y, use_percentages)
99
- Sass::Script::List.new([url] + position.value, :space)
102
+ list([url] + position.value, :space)
100
103
  end
101
104
  declare :sprite, [:map, :sprite]
102
105
  declare :sprite, [:map, :sprite, :offset_x]
@@ -107,7 +110,7 @@ module Compass::SassExtensions::Functions::Sprites
107
110
  # The name is derived from the folder than contains the sprites.
108
111
  def sprite_map_name(map)
109
112
  verify_map(map, "sprite-map-name")
110
- Sass::Script::String.new(map.name)
113
+ identifier(map.name)
111
114
  end
112
115
  declare :sprite_name, [:sprite]
113
116
 
@@ -117,7 +120,7 @@ module Compass::SassExtensions::Functions::Sprites
117
120
  verify_map(map, "sprite")
118
121
  verify_sprite(sprite)
119
122
  if image = map.image_for(sprite.value)
120
- Sass::Script::String.new(image.file)
123
+ identifier(image.file)
121
124
  else
122
125
  missing_image!(map, sprite)
123
126
  end
@@ -129,9 +132,8 @@ module Compass::SassExtensions::Functions::Sprites
129
132
  sprite = convert_sprite_name(sprite)
130
133
  verify_map map
131
134
  verify_sprite sprite
132
- Sass::Script::Bool.new map.image_for(sprite.value).parent.nil?
135
+ bool(map.image_for(sprite.value).parent.nil?)
133
136
  end
134
-
135
137
  declare :sprite_does_not_have_parent, [:map, :sprite]
136
138
 
137
139
  #return the name of the selector file
@@ -139,7 +141,7 @@ module Compass::SassExtensions::Functions::Sprites
139
141
  sprite = convert_sprite_name(sprite)
140
142
  image = map.image_for(sprite)
141
143
  if map.send(:"has_#{selector.value}?", sprite.value)
142
- return Sass::Script::String.new(image.send(selector.value).name)
144
+ return identifier(image.send(selector.value).name)
143
145
  end
144
146
 
145
147
  raise Sass::SyntaxError, "Sprite: #{sprite.value} does not have a #{selector} state"
@@ -155,7 +157,7 @@ module Compass::SassExtensions::Functions::Sprites
155
157
  unless VALID_SELECTORS.include?(selector.value)
156
158
  raise Sass::SyntaxError, "Invalid Selctor did you mean one of: #{VALID_SELECTORS.join(', ')}"
157
159
  end
158
- Sass::Script::Bool.new map.send(:"has_#{selector.value}?", sprite.value)
160
+ bool map.send(:"has_#{selector.value}?", sprite.value)
159
161
  end
160
162
 
161
163
  declare :sprite_has_selector, [:map, :sprite, :selector]
@@ -166,14 +168,14 @@ module Compass::SassExtensions::Functions::Sprites
166
168
  unless selector.value =~ IDENTIFIER_RX
167
169
  raise Sass::SyntaxError, "#{selector} must be a legal css identifier"
168
170
  end
169
- Sass::Script::Bool.new true
171
+ bool true
170
172
  end
171
173
 
172
174
  # Returns a url to the sprite image.
173
175
  def sprite_url(map)
174
176
  verify_map(map, "sprite-url")
175
177
  map.generate
176
- generated_image_url(Sass::Script::String.new("#{map.path}-s#{map.uniqueness_hash}.png"))
178
+ generated_image_url(identifier("#{map.path}-s#{map.uniqueness_hash}.png"))
177
179
  end
178
180
  declare :sprite_url, [:map]
179
181
 
@@ -211,7 +213,7 @@ module Compass::SassExtensions::Functions::Sprites
211
213
  assert_type offset_y, :Number
212
214
  sprite = convert_sprite_name(sprite)
213
215
  verify_map(map, "sprite-position")
214
- unless sprite.is_a?(Sass::Script::String) || sprite.is_a?(Sass::Script::Number)
216
+ unless sprite.is_a?(Sass::Script::Value::String) || sprite.is_a?(Sass::Script::Value::Number)
215
217
  raise Sass::SyntaxError, %Q(The second argument to sprite-position must be a sprite name. See http://beta.compass-style.org/help/tutorials/spriting/ for more information.)
216
218
  end
217
219
  image = map.image_for(sprite.value)
@@ -221,21 +223,21 @@ module Compass::SassExtensions::Functions::Sprites
221
223
  if use_percentages.value
222
224
  xdivis = map.width - image.width;
223
225
  x = (offset_x.value + image.left.to_f) / (xdivis.nonzero? || 1) * 100
224
- x = Sass::Script::Number.new(x, x == 0 ? [] : ["%"])
226
+ x = x == 0 ? number(x) : number(x, "%")
225
227
  ydivis = map.height - image.height;
226
228
  y = (offset_y.value + image.top.to_f) / (ydivis.nonzero? || 1) * 100
227
- y = Sass::Script::Number.new(y, y == 0 ? [] : ["%"])
229
+ y = y == 0 ? number(y) : number(y, "%")
228
230
  else
229
231
  if offset_x.unit_str == "%"
230
232
  x = offset_x # CE: Shouldn't this be a percentage of the total width?
231
233
  else
232
234
  x = offset_x.value - image.left
233
- x = Sass::Script::Number.new(x, x == 0 ? [] : ["px"])
235
+ x = x == 0 ? number(x) : number(x, "px")
234
236
  end
235
237
  y = offset_y.value - image.top
236
- y = Sass::Script::Number.new(y, y == 0 ? [] : ["px"])
238
+ y = y == 0 ? number(y) : number(y, "px")
237
239
  end
238
- Sass::Script::List.new([x, y],:space)
240
+ list(x, y, :space)
239
241
  end
240
242
  declare :sprite_position, [:map]
241
243
  declare :sprite_position, [:map, :sprite]
@@ -254,25 +256,25 @@ protected
254
256
  end
255
257
 
256
258
  def reversed_color_names
257
- if Sass::Script::Color.const_defined?(:HTML4_COLORS_REVERSE)
258
- Sass::Script::Color::HTML4_COLORS_REVERSE
259
+ if Sass::Script::Value::Color.const_defined?(:HTML4_COLORS_REVERSE)
260
+ Sass::Script::Value::Color::HTML4_COLORS_REVERSE
259
261
  else
260
- Sass::Script::Color::COLOR_NAMES_REVERSE
262
+ Sass::Script::Value::Color::COLOR_NAMES_REVERSE
261
263
  end
262
264
  end
263
265
 
264
266
  def convert_sprite_name(sprite)
265
267
  case sprite
266
- when Sass::Script::Color
268
+ when Sass::Script::Value::Color
267
269
  rgb = if reversed_color_names.keys.first.size == 3
268
270
  sprite.rgb
269
271
  else
270
272
  # Sass 3.3 includes the alpha channel
271
273
  sprite.rgba
272
274
  end
273
- Sass::Script::String.new(reversed_color_names[rgb])
274
- when Sass::Script::Bool
275
- Sass::Script::String.new(sprite.to_s)
275
+ identifier(reversed_color_names[rgb])
276
+ when Sass::Script::Value::Bool
277
+ identifier(sprite.to_s)
276
278
  else
277
279
  sprite
278
280
  end
@@ -285,7 +287,7 @@ protected
285
287
  end
286
288
 
287
289
  def verify_sprite(sprite)
288
- unless sprite.is_a?(Sass::Script::String) || sprite.is_a?(Sass::Script::Number)
290
+ unless sprite.is_a?(Sass::Script::Value::String) || sprite.is_a?(Sass::Script::Value::Number)
289
291
  raise Sass::SyntaxError, %Q(The second argument to sprite() must be a sprite name. See http://beta.compass-style.org/help/tutorials/spriting/ for more information.)
290
292
  end
291
293
  end
@@ -2,6 +2,7 @@ module Compass
2
2
  module SassExtensions
3
3
  module Sprites
4
4
  class Image
5
+ include Sass::Script::Value::Helpers
5
6
  ACTIVE = %r{[_-]active$}
6
7
  TARGET = %r{[_-]target$}
7
8
  HOVER = %r{[_-]hover$}
@@ -58,7 +59,7 @@ module Compass
58
59
  # Value of <tt> $#{name}-repeat </tt> or <tt> $repeat </tt>
59
60
  def repeat
60
61
  @repeat ||= begin
61
- rep = (get_var_file("repeat") || options.get_var("repeat") || Sass::Script::String.new(NO_REPEAT)).value
62
+ rep = (get_var_file("repeat") || options.get_var("repeat") || identifier(NO_REPEAT)).value
62
63
  unless VALID_REPEATS.include? rep
63
64
  raise SpriteException, "Invalid option for repeat \"#{rep}\" - valid options are #{VALID_REPEATS.join(', ')}"
64
65
  end
@@ -81,7 +82,7 @@ module Compass
81
82
 
82
83
  # Value of <tt> $#{name}-position </tt> or <tt> $position </tt> defaults to <tt>0px</tt>
83
84
  def position
84
- @position ||= get_var_file("position") || options.get_var("position") || Sass::Script::Number.new(0, ["px"])
85
+ @position ||= get_var_file("position") || options.get_var("position") || number(0, "px")
85
86
  end
86
87
 
87
88
  # Offset within the sprite
@@ -91,7 +92,7 @@ module Compass
91
92
 
92
93
  # Spacing between this image and the next
93
94
  def spacing
94
- @spacing ||= (get_var_file("spacing") || options.get_var("spacing") || Sass::Script::Number.new(0, ['px'])).value
95
+ @spacing ||= (get_var_file("spacing") || options.get_var("spacing") || number(0, 'px')).value
95
96
  end
96
97
 
97
98
  # MD5 hash of this file
@@ -4,7 +4,7 @@ module Compass
4
4
  module ImageMethods
5
5
  # Fetches the Sprite::Image object for the supplied name
6
6
  def image_for(name)
7
- if name.is_a?(Sass::Script::String)
7
+ if name.is_a?(Sass::Script::Value::String)
8
8
  name = name.value
9
9
  end
10
10
  name = name.to_s
@@ -49,4 +49,4 @@ module Compass
49
49
  end
50
50
  end
51
51
  end
52
- end
52
+ end
@@ -1,13 +1,14 @@
1
1
  module Compass
2
2
  module SassExtensions
3
3
  module Sprites
4
- class SpriteMap < Sass::Script::Literal
4
+ class SpriteMap < Sass::Script::Value::Base
5
5
  attr_accessor :image_names, :path, :name, :map, :kwargs
6
6
  attr_accessor :images, :width, :height, :engine
7
7
 
8
8
  include SpriteMethods
9
9
  include ImageMethods
10
10
  include LayoutMethods
11
+ include Sass::Script::Value::Helpers
11
12
 
12
13
 
13
14
  # Initialize a new sprite object from a relative file path
@@ -38,9 +39,9 @@ module Compass
38
39
  @path = path
39
40
  @name = name
40
41
  @kwargs = kwargs
41
- @kwargs['cleanup'] ||= Sass::Script::Bool.new(true)
42
- @kwargs['layout'] ||= Sass::Script::String.new('vertical')
43
- @kwargs['sort_by'] ||= Sass::Script::String.new('none')
42
+ @kwargs['cleanup'] ||= bool(true)
43
+ @kwargs['layout'] ||= identifier('vertical')
44
+ @kwargs['sort_by'] ||= identifier('none')
44
45
  @images = nil
45
46
  @width = nil
46
47
  @height = nil
@@ -89,4 +90,4 @@ module Compass
89
90
  end
90
91
  end
91
92
  end
92
- end
93
+ end
@@ -11,7 +11,7 @@ module Compass
11
11
  def visit(node)
12
12
  self.prop_count += 1 if node.is_a?(Sass::Tree::PropNode) && !node.children.any?
13
13
  if node.is_a?(Sass::Tree::RuleNode)
14
- self.rule_count += node.rule.reject{|r| r.is_a?(Sass::Script::Node)}.map{|r| r.split(/,/)}.flatten.compact.size
14
+ self.rule_count += node.rule.reject{|r| r.is_a?(Sass::Script::Tree::Node)}.map{|r| r.split(/,/)}.flatten.compact.size
15
15
  end
16
16
  self.mixin_def_count += 1 if node.is_a?(Sass::Tree::MixinDefNode)
17
17
  self.mixin_count += 1 if node.is_a?(Sass::Tree::MixinNode)
@@ -16,7 +16,7 @@ module Compass
16
16
 
17
17
  def compile
18
18
  @memory_cache.reset! if @memory_cache
19
- compiler.reset_staleness_checker!
19
+ compiler.reset!
20
20
  if file = compiler.out_of_date?
21
21
  begin
22
22
  time = Time.now.strftime("%T")
@@ -34,6 +34,7 @@ module Compass
34
34
  def create_compiler_options(additional_options)
35
35
  compiler_opts = {:sass => Compass.sass_engine_options, :cache_store => @cache_store, :quiet => true, :loud => [:identical, :overwrite, :create]}.merge(additional_options)
36
36
  compiler_opts[:cache_location] ||= determine_cache_location
37
+ compiler_opts[:sourcemap] = Compass.configuration.sourcemap if compiler_opts[:sourcemap].nil?
37
38
  if compiler_opts.include?(:debug_info)
38
39
  compiler_opts[:sass][:debug_info] = compiler_opts.delete(:debug_info)
39
40
  end
@@ -56,4 +57,4 @@ module Compass
56
57
  end
57
58
  end
58
59
  end
59
- end
60
+ end