sass 3.3.0.alpha.9 → 3.3.0.alpha.11

Sign up to get free protection for your applications and to get access to all the features.
data/REVISION CHANGED
@@ -1 +1 @@
1
- 86b12c98ecd0fa693a80ffb679dbb14fdfe30ce3
1
+ eb90864aa1f2b1c2e54e110670417e4de34b2dca
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.3.0.alpha.9
1
+ 3.3.0.alpha.11
@@ -1 +1 @@
1
- 03 November 2012 01:08:14 GMT
1
+ 09 November 2012 22:20:10 GMT
@@ -407,6 +407,13 @@ MSG
407
407
  ::Sass::Plugin.on_creating_directory {|dirname| puts_action :directory, :green, dirname}
408
408
  ::Sass::Plugin.on_deleting_css {|filename| puts_action :delete, :yellow, filename}
409
409
  ::Sass::Plugin.on_compilation_error do |error, _, _|
410
+ if error.is_a?(SystemCallError) && !@options[:stop_on_error]
411
+ had_error = true
412
+ puts_action :error, :red, error.message
413
+ STDOUT.flush
414
+ next
415
+ end
416
+
410
417
  raise error unless error.is_a?(::Sass::SyntaxError) && !@options[:stop_on_error]
411
418
  had_error = true
412
419
  puts_action :error, :red, "#{error.sass_filename} (Line #{error.sass_line}: #{error.message})"
@@ -183,6 +183,7 @@ module Sass::Plugin
183
183
  # The first string in each pair is the location of the Sass/SCSS file,
184
184
  # the second is the location of the CSS file that it should be compiled to.
185
185
  def update_stylesheets(individual_files = [])
186
+ individual_files = individual_files.dup
186
187
  Sass::Plugin.checked_for_updates = true
187
188
  staleness_checker = StalenessChecker.new(engine_options)
188
189
 
@@ -109,7 +109,12 @@ module Sass
109
109
  # If this is a legitimate Ruby-raised argument error, re-raise it.
110
110
  # Otherwise, it's an error in the user's stylesheet, so wrap it.
111
111
  if e.message =~ /^wrong number of arguments \(\d+ for \d+\)/ &&
112
- e.backtrace[0] !~ /:in `(block in )?#{ruby_name}'$/
112
+ e.backtrace[0] !~ /:in `(block in )?#{ruby_name}'$/ &&
113
+ # JRuby (as of 1.6.7.2) doesn't put the actual method for
114
+ # which the argument error was thrown in the backtrace, so
115
+ # we detect whether our send threw an argument error.
116
+ (RUBY_PLATFORM !~ /java/ || e.backtrace[0] !~ /:in `send'$/ ||
117
+ e.backtrace[1] !~ /:in `_perform'$/)
113
118
  raise e
114
119
  end
115
120
  raise Sass::SyntaxError.new("#{e.message} for `#{name}'")
@@ -23,7 +23,8 @@ class Sass::Tree::Visitors::CheckNesting < Sass::Tree::Visitors::Base
23
23
  SCRIPT_NODES = [Sass::Tree::ImportNode] + CONTROL_NODES
24
24
  def visit_children(parent)
25
25
  old_parent = @parent
26
- @parent = parent unless is_any_of?(parent, SCRIPT_NODES)
26
+ @parent = parent unless is_any_of?(parent, SCRIPT_NODES) ||
27
+ (parent.bubbles? && !old_parent.is_a?(Sass::Tree::RootNode))
27
28
  @parents.push parent
28
29
  super
29
30
  ensure
@@ -333,9 +333,7 @@ class Sass::Tree::Visitors::Perform < Sass::Tree::Visitors::Base
333
333
  res = node.expr.perform(@environment)
334
334
  res = res.value if res.is_a?(Sass::Script::String)
335
335
  msg = "WARNING: #{res}\n "
336
- msg << stack_trace.join("\n ")
337
- # JRuby doesn't automatically add a newline for #warn
338
- msg << (RUBY_PLATFORM =~ /java/ ? "\n\n" : "\n")
336
+ msg << stack_trace.join("\n ") << "\n"
339
337
  Sass::Util.sass_warn msg
340
338
  []
341
339
  ensure
@@ -298,7 +298,9 @@ module Sass
298
298
  # @param entry [String] An entry in the `#caller` list, or a similarly formatted string
299
299
  # @return [[String, Fixnum, (String, nil)]] An array containing the filename, line, and method name of the caller.
300
300
  # The method name may be nil
301
- def caller_info(entry = caller[1])
301
+ def caller_info(entry = nil)
302
+ # JRuby evaluates `caller` incorrectly when it's in an actual default argument.
303
+ entry ||= caller[1]
302
304
  info = entry.scan(/^(.*?):(-?.*?)(?::.*`(.+)')?$/).first
303
305
  info[1] = info[1].to_i
304
306
  # This is added by Rubinius to designate a block, but we don't care about it.
@@ -237,11 +237,6 @@ WARNING
237
237
  assert_callback :updating_stylesheets, []
238
238
  end
239
239
 
240
- def test_updating_stylesheets_callback_with_individual_files
241
- files = [[template_loc("basic"), tempfile_loc("basic")]]
242
- assert_callback(:updating_stylesheets, files) {Sass::Util.silence_sass_warnings{Sass::Plugin.update_stylesheets(files)}}
243
- end
244
-
245
240
  def test_updating_stylesheets_callback_with_never_update
246
241
  Sass::Plugin.options[:never_update] = true
247
242
  assert_no_callback :updating_stylesheets
@@ -489,6 +489,10 @@ SASS
489
489
  end
490
490
 
491
491
  def test_deep_argument_error_not_unwrapped
492
+ # JRuby (as of 1.6.7.2) offers no way of distinguishing between
493
+ # argument errors caused by programming errors in a function and
494
+ # argument errors explicitly thrown within that function.
495
+ return if RUBY_PLATFORM =~ /java/
492
496
  assert_raise_message(ArgumentError, 'wrong number of arguments (0 for 1)') {resolve("arg-error()")}
493
497
  end
494
498
 
@@ -1977,4 +1977,24 @@ SCSS
1977
1977
  SCSS
1978
1978
  Sass::SCSS::Parser.new(template, "test.scss").parse
1979
1979
  end
1980
+
1981
+ def test_extend_in_media_in_rule
1982
+ assert_equal(<<CSS, render(<<SCSS))
1983
+ @media screen {
1984
+ .foo {
1985
+ a: b; } }
1986
+ CSS
1987
+ .foo {
1988
+ @media screen {
1989
+ @extend %bar;
1990
+ }
1991
+ }
1992
+
1993
+ @media screen {
1994
+ %bar {
1995
+ a: b;
1996
+ }
1997
+ }
1998
+ SCSS
1999
+ end
1980
2000
  end
@@ -243,6 +243,10 @@ class UtilTest < Test::Unit::TestCase
243
243
  test[['foo ', 1, "\n bar\n", [2, 3, 4], "\n baz"]]
244
244
  end
245
245
 
246
+ def nested_caller_info_fn
247
+ caller_info
248
+ end
249
+
246
250
  def test_caller_info
247
251
  assert_equal(["/tmp/foo.rb", 12, "fizzle"], caller_info("/tmp/foo.rb:12: in `fizzle'"))
248
252
  assert_equal(["/tmp/foo.rb", 12, nil], caller_info("/tmp/foo.rb:12"))
@@ -250,6 +254,14 @@ class UtilTest < Test::Unit::TestCase
250
254
  assert_equal(["", 12, "boop"], caller_info(":12: in `boop'"))
251
255
  assert_equal(["/tmp/foo.rb", -12, "fizzle"], caller_info("/tmp/foo.rb:-12: in `fizzle'"))
252
256
  assert_equal(["/tmp/foo.rb", 12, "fizzle"], caller_info("/tmp/foo.rb:12: in `fizzle {}'"))
257
+
258
+ info = nested_caller_info_fn
259
+ assert_equal(__FILE__, info[0])
260
+ assert_equal("test_caller_info", info[2])
261
+
262
+ info = proc {nested_caller_info_fn}.call
263
+ assert_equal(__FILE__, info[0])
264
+ assert_equal("test_caller_info", info[2])
253
265
  end
254
266
 
255
267
  def test_version_gt
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sass
3
3
  version: !ruby/object:Gem::Version
4
- hash: 592302879
4
+ hash: 592302875
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 3
8
8
  - 3
9
9
  - 0
10
10
  - alpha
11
- - 9
12
- version: 3.3.0.alpha.9
11
+ - 11
12
+ version: 3.3.0.alpha.11
13
13
  platform: ruby
14
14
  authors:
15
15
  - Nathan Weizenbaum
@@ -19,7 +19,7 @@ autorequire:
19
19
  bindir: bin
20
20
  cert_chain: []
21
21
 
22
- date: 2012-11-02 00:00:00 -04:00
22
+ date: 2012-11-09 00:00:00 -05:00
23
23
  default_executable:
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency