sass 3.2.12 → 3.2.13

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.
@@ -1,3 +1,3 @@
1
1
  Contributions are welcomed. Please see the following sites for guidelines:
2
2
 
3
- http://sass-lang.com/development.html#contributing
3
+ http://sass-lang.com/community#Contribute
data/README.md CHANGED
@@ -57,7 +57,7 @@ Then any Sass files in `public/stylesheets/sass`
57
57
  will be compiled into CSS files in `public/stylesheets` on every request.
58
58
 
59
59
  To use Sass programmatically,
60
- check out the [YARD documentation](http://sass-lang.com/docs/yardoc/).
60
+ check out the [YARD documentation](http://sass-lang.com/documentation/file.SASS_REFERENCE.html#using_sass).
61
61
 
62
62
  ## Formatting
63
63
 
@@ -71,10 +71,10 @@ and get small stylesheets up and running quickly,
71
71
  particularly with the help of
72
72
  [the Compass style library](http://compass-style.org).
73
73
 
74
- [vars]: http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#variables_
75
- [nested]: http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#nested_rules_
76
- [mixins]: http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#mixins
77
- [imports]: http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#import
74
+ [vars]: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#variables_
75
+ [nested]: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#nested_rules
76
+ [mixins]: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#mixins
77
+ [imports]: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#import
78
78
 
79
79
  Sass has two syntaxes.
80
80
  The one presented here, known as "SCSS" (for "Sassy CSS"),
@@ -83,7 +83,7 @@ The other (older) syntax, known as the indented syntax or just "Sass",
83
83
  is whitespace-sensitive and indentation-based.
84
84
  For more information, see the [reference documentation][syntax].
85
85
 
86
- [syntax]: http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#syntax
86
+ [syntax]: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#syntax
87
87
 
88
88
  To run the following examples and see the CSS they produce,
89
89
  put them in a file called `test.scss` and run `sass test.scss`.
@@ -152,7 +152,7 @@ You can even give them arguments.
152
152
  }
153
153
 
154
154
  A comprehensive list of features is available
155
- in the [Sass reference](http://beta.sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html).
155
+ in the [Sass reference](http://sass-lang.com/documentation/file.SASS_REFERENCE.html).
156
156
 
157
157
  ## Executables
158
158
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.2.12
1
+ 3.2.13
@@ -1 +1 @@
1
- 05 October 2013 01:29:11 UTC
1
+ 20 December 2013 04:00:49 UTC
data/bin/sass CHANGED
@@ -2,7 +2,11 @@
2
2
  # The command line Sass parser.
3
3
 
4
4
  THIS_FILE = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__
5
- require File.dirname(THIS_FILE) + '/../lib/sass'
5
+ begin
6
+ require File.dirname(THIS_FILE) + '/../lib/sass'
7
+ rescue LoadError
8
+ require 'sass'
9
+ end
6
10
  require 'sass/exec'
7
11
 
8
12
  opts = Sass::Exec::Sass.new(ARGV)
@@ -1,7 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  THIS_FILE = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__
4
- require File.dirname(THIS_FILE) + '/../lib/sass'
4
+ begin
5
+ require File.dirname(THIS_FILE) + '/../lib/sass'
6
+ rescue LoadError
7
+ require 'sass'
8
+ end
5
9
  require 'sass/exec'
6
10
 
7
11
  opts = Sass::Exec::SassConvert.new(ARGV)
data/bin/scss CHANGED
@@ -2,7 +2,11 @@
2
2
  # The command line Sass parser.
3
3
 
4
4
  THIS_FILE = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__
5
- require File.dirname(THIS_FILE) + '/../lib/sass'
5
+ begin
6
+ require File.dirname(THIS_FILE) + '/../lib/sass'
7
+ rescue LoadError
8
+ require 'sass'
9
+ end
6
10
  require 'sass/exec'
7
11
 
8
12
  opts = Sass::Exec::Scss.new(ARGV)
@@ -293,7 +293,7 @@ module Sass
293
293
  def bubble_subject(root)
294
294
  root.children.each do |child|
295
295
  bubble_subject(child) if child.is_a?(Tree::RuleNode) || child.is_a?(Tree::DirectiveNode)
296
- next unless child.is_a?(Tree::RuleNode)
296
+ next unless child.is_a?(Tree::RuleNode) && !child.children.empty?
297
297
  next unless child.children.all? do |c|
298
298
  next unless c.is_a?(Tree::RuleNode)
299
299
  first_simple_sel(c).is_a?(Sass::Selector::Parent) && first_sseq(c).subject?
@@ -119,7 +119,7 @@ module Sass
119
119
  dir = dir.gsub(File::ALT_SEPARATOR, File::SEPARATOR) unless File::ALT_SEPARATOR.nil?
120
120
 
121
121
  found = possible_files(remove_root(name)).map do |f, s|
122
- path = (dir == "." || Pathname.new(f).absolute?) ? f : "#{dir}/#{f}"
122
+ path = (dir == "." || Pathname.new(f).absolute?) ? f : "#{escape_glob_characters(dir)}/#{f}"
123
123
  Dir[path].map do |full_path|
124
124
  full_path.gsub!(REDUNDANT_DIRECTORY, File::SEPARATOR)
125
125
  [full_path, s]
@@ -123,7 +123,8 @@ module Sass
123
123
  end
124
124
  end
125
125
 
126
- if defined?(ActionController)
126
+ # On Rails 3+ the rails plugin is loaded at the right time in railtie.rb
127
+ if defined?(ActionController) && !Sass::Util.ap_geq_3?
127
128
  require 'sass/plugin/rails'
128
129
  elsif defined?(Merb::Plugins)
129
130
  require 'sass/plugin/merb'
@@ -5,5 +5,6 @@ if defined?(ActiveSupport) && Sass::Util.has?(:public_method, ActiveSupport, :on
5
5
  ActiveSupport.on_load(:before_configuration) do
6
6
  require 'sass'
7
7
  require 'sass/plugin'
8
+ require 'sass/plugin/rails'
8
9
  end
9
10
  end
@@ -100,16 +100,17 @@ module Sass
100
100
  splat = @splat.perform(environment) if @splat
101
101
  if fn = environment.function(@name)
102
102
  keywords = Sass::Util.map_hash(@keywords) {|k, v| [k, v.perform(environment)]}
103
- return perform_sass_fn(fn, args, keywords, splat)
103
+ return without_original(perform_sass_fn(fn, args, keywords, splat))
104
104
  end
105
105
 
106
106
  ruby_name = @name.tr('-', '_')
107
107
  args = construct_ruby_args(ruby_name, args, splat, environment)
108
108
 
109
109
  unless Functions.callable?(ruby_name)
110
- opts(to_literal(args))
110
+ without_original(opts(to_literal(args)))
111
111
  else
112
- opts(Functions::EvaluationContext.new(environment.options).send(ruby_name, *args))
112
+ without_original(opts(Functions::EvaluationContext.new(environment.options).
113
+ send(ruby_name, *args)))
113
114
  end
114
115
  rescue ArgumentError => e
115
116
  message = e.message
@@ -170,6 +171,13 @@ module Sass
170
171
 
171
172
  private
172
173
 
174
+ def without_original(value)
175
+ return value unless value.is_a?(Number)
176
+ value = value.dup
177
+ value.original = nil
178
+ return value
179
+ end
180
+
173
181
  def construct_ruby_args(name, args, splat, environment)
174
182
  args += splat.to_a if splat
175
183
 
@@ -324,6 +324,7 @@ module Sass
324
324
  return unless (str = tok(STRING)) || (uri = tok?(/url\(/i))
325
325
  if uri
326
326
  str = sass_script(:parse_string)
327
+ ss
327
328
  media = media_query_list
328
329
  ss
329
330
  return node(Tree::CssImportNode.new(str, media.to_a))
@@ -265,6 +265,25 @@ CSS
265
265
 
266
266
  # Regressions
267
267
 
268
+ def test_empty_rule
269
+ assert_equal(<<SASS, css2sass(<<CSS))
270
+ a
271
+ SASS
272
+ a {}
273
+ CSS
274
+ end
275
+
276
+ def test_empty_rule_with_selector_combinator
277
+ assert_equal(<<SASS, css2sass(<<CSS))
278
+ a
279
+ color: red
280
+ > b
281
+ SASS
282
+ a {color: red}
283
+ a > b {}
284
+ CSS
285
+ end
286
+
268
287
  def test_nesting_within_media
269
288
  assert_equal(<<SASS, css2sass(<<CSS))
270
289
  @media all
@@ -510,6 +510,30 @@ SASS
510
510
 
511
511
  # Regression Tests
512
512
 
513
+ def test_user_defined_function_forces_division
514
+ assert_equal(<<CSS, render(<<SASS))
515
+ a {
516
+ b: 10px; }
517
+ CSS
518
+ @function foo()
519
+ @return 20px
520
+
521
+ a
522
+ b: (foo() / 2)
523
+ SASS
524
+
525
+ assert_equal(<<CSS, render(<<SASS))
526
+ a {
527
+ b: 10px; }
528
+ CSS
529
+ @function foo()
530
+ @return 20px
531
+
532
+ a
533
+ b: foo() / 2
534
+ SASS
535
+ end
536
+
513
537
  def test_funcall_has_higher_precedence_than_color_name
514
538
  assert_equal "teal(12)", resolve("teal(12)")
515
539
  assert_equal "tealbang(12)", resolve("tealbang(12)")
@@ -505,13 +505,20 @@ SCSS
505
505
  assert_parses '@import url(foo.css);'
506
506
  end
507
507
 
508
- def test_import_directive_with_media
508
+ def test_string_import_directive_with_media
509
509
  assert_parses '@import "foo.css" screen;'
510
510
  assert_parses '@import "foo.css" screen, print;'
511
511
  assert_parses '@import "foo.css" screen, print and (foo: 0);'
512
512
  assert_parses '@import "foo.css" screen, only print, screen and (foo: 0);'
513
513
  end
514
514
 
515
+ def test_url_import_directive_with_media
516
+ assert_parses '@import url("foo.css") screen;'
517
+ assert_parses '@import url("foo.css") screen, print;'
518
+ assert_parses '@import url("foo.css") screen, print and (foo: 0);'
519
+ assert_parses '@import url("foo.css") screen, only print, screen and (foo: 0);'
520
+ end
521
+
515
522
  def test_page_directive
516
523
  assert_parses <<SCSS
517
524
  @page {
@@ -270,6 +270,20 @@ SCSS
270
270
  assert_equal "@import url(foo.css);\n", render('@import url(foo.css);')
271
271
  end
272
272
 
273
+ def test_css_string_import_directive_with_media
274
+ assert_parses '@import "foo.css" screen;'
275
+ assert_parses '@import "foo.css" screen, print;'
276
+ assert_parses '@import "foo.css" screen, print and (foo: 0);'
277
+ assert_parses '@import "foo.css" screen, only print, screen and (foo: 0);'
278
+ end
279
+
280
+ def test_css_url_import_directive_with_media
281
+ assert_parses '@import url("foo.css") screen;'
282
+ assert_parses '@import url("foo.css") screen, print;'
283
+ assert_parses '@import url("foo.css") screen, print and (foo: 0);'
284
+ assert_parses '@import url("foo.css") screen, only print, screen and (foo: 0);'
285
+ end
286
+
273
287
  def test_media_import
274
288
  assert_equal("@import \"./fonts.sass\" all;\n", render("@import \"./fonts.sass\" all;"))
275
289
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sass
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.12
4
+ version: 3.2.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-10-05 00:00:00.000000000 Z
14
+ date: 2013-12-20 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: yard