sass 3.4.14 → 3.4.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NDA5ZDI0Y2RkM2M2NTNkZjI1YzFiMDhkNGM0MmRiNTA4NDE4NThiMw==
5
- data.tar.gz: !binary |-
6
- MzMxNGY0ZTk1ZDdhYjFmNTYwOGY3MjUyN2I2NjQ5NGIwNGIxZDlhNg==
2
+ SHA1:
3
+ metadata.gz: 00cf7afef986f13c1fccaf0cf889a398d7b86910
4
+ data.tar.gz: 34e170181ba5a960190d6e87f2e6707557383ed9
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YzFkYzMyZDgzM2ZlZjUzOWE4NDZkNTI1ZjI1ZGY2OTNkNjQxMTRmZGNmMWRh
10
- MWEwMzdmY2M1ZmZmYTg3NmY0NDZlYTEzYjgxYTlkZjA4NzkwN2RkNjAxNDFh
11
- Yjk5MGVjMGY5MTIyYjgwYjdkMmI1YTU5MzM0Zjg2ODY5YWY0ZTc=
12
- data.tar.gz: !binary |-
13
- Yzc0NTE0NWMwMjg4MWY5MTkwMjY4ODY0ZTBmOTIzZWJiMDJkNWM5NzJjYWEy
14
- OTBiYzBiYTRlYTFjODdmNThmOTMxMzI0ZmM5ZjYxMDk4NWY5OThkNTJmMGZl
15
- NTcyNjQ1NGJjZGQ4MTQ5NjhmMzc1OGQ1NTIyMTMwZTRlYmJmMmQ=
6
+ metadata.gz: 363cd78182ff5dd174b78914436f98cd7c14bb60418103a0f1a46392aa3ef6daf5cd0c09e9ca43ce3b3762ca90046d3d31ee0246f3beaa52ee35828d4306be27
7
+ data.tar.gz: 231f3556d06f74cd61b355cfb4143549100bb01efd944de3b781e6f256d6feed534582460f9abfcc9ec994cd901bdfcbf110019eb6db33e11b8794483d38bcad
data/README.md CHANGED
@@ -199,7 +199,7 @@ and now occasionally consults on the language issues. Hampton lives in San
199
199
  Francisco, California and works as VP of Technology
200
200
  at [Moovweb](http://www.moovweb.com/).
201
201
 
202
- [Natalie Weizenbaum](http://nex-3.com) is the primary developer and architect of
202
+ [Natalie Weizenbaum](https://twitter.com/nex3) is the primary developer and architect of
203
203
  Sass. Her hard work has kept the project alive by endlessly answering forum
204
204
  posts, fixing bugs, refactoring, finding speed improvements, writing
205
205
  documentation, implementing new features, and getting Hampton coffee (a fitting
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.4.14
1
+ 3.4.15
@@ -1 +1 @@
1
- 23 May 2015 02:17:06 UTC
1
+ 23 June 2015 00:43:28 UTC
@@ -192,6 +192,16 @@ module Sass
192
192
  options[:filesystem_importer].new(p.to_s)
193
193
  end
194
194
 
195
+ # Remove any deprecated importers if the location is imported explicitly
196
+ options[:load_paths].reject! do |importer|
197
+ importer.is_a?(Sass::Importers::DeprecatedPath) &&
198
+ options[:load_paths].find do |other_importer|
199
+ other_importer.is_a?(Sass::Importers::Filesystem) &&
200
+ other_importer != importer &&
201
+ other_importer.root == importer.root
202
+ end
203
+ end
204
+
195
205
  # Backwards compatibility
196
206
  options[:property_syntax] ||= options[:attribute_syntax]
197
207
  case options[:property_syntax]
@@ -174,6 +174,9 @@ MESSAGE
174
174
  'Read input from standard input instead of an input file.',
175
175
  'This is the default if no input file is specified.') do
176
176
  @options[:input] = $stdin
177
+
178
+ # See issue 1745
179
+ (@options[:for_engine][:load_paths] ||= []) << ::Sass::Importers::DeprecatedPath.new(".")
177
180
  end
178
181
 
179
182
  encoding_option(opts)
@@ -20,3 +20,4 @@ end
20
20
 
21
21
  require 'sass/importers/base'
22
22
  require 'sass/importers/filesystem'
23
+ require 'sass/importers/deprecated_path'
@@ -0,0 +1,51 @@
1
+ module Sass
2
+ module Importers
3
+ # This importer emits a deprecation warning the first time it is used to
4
+ # import a file. It is used to deprecate the current working
5
+ # directory from the list of automatic sass load paths.
6
+ class DeprecatedPath < Filesystem
7
+ # @param root [String] The absolute, expanded path to the folder that is deprecated.
8
+ def initialize(root)
9
+ @specified_root = root
10
+ @warning_given = false
11
+ super
12
+ end
13
+
14
+ # @see Sass::Importers::Base#find
15
+ def find(*args)
16
+ found = super
17
+ if found && !@warning_given
18
+ @warning_given = true
19
+ Sass::Util.sass_warn deprecation_warning
20
+ end
21
+ found
22
+ end
23
+
24
+ # @see Base#directories_to_watch
25
+ def directories_to_watch
26
+ # The current working directory was not watched in Sass 3.2,
27
+ # so we continue not to watch it while it's deprecated.
28
+ []
29
+ end
30
+
31
+ # @see Sass::Importers::Base#to_s
32
+ def to_s
33
+ "#{@root} (DEPRECATED)"
34
+ end
35
+
36
+ protected
37
+
38
+ # @return [String] The deprecation warning that will be printed the first
39
+ # time an import occurs.
40
+ def deprecation_warning
41
+ path = @specified_root == "." ? "the current working directory" : @specified_root
42
+ <<WARNING
43
+ DEPRECATION WARNING: Importing from #{path} will not be
44
+ automatic in future versions of Sass. To avoid future errors, you can add it
45
+ to your environment explicitly by setting `SASS_PATH=#{@specified_root}`, by using the -I command
46
+ line option, or by changing your Sass configuration options.
47
+ WARNING
48
+ end
49
+ end
50
+ end
51
+ end
@@ -162,6 +162,9 @@ module Sass::Script
162
162
  #
163
163
  # ## List Functions {#list-functions}
164
164
  #
165
+ # Lists in Sass are immutable; all list functions return a new list rather
166
+ # than updating the existing list in-place.
167
+ #
165
168
  # All list functions work for maps as well, treating them as lists of pairs.
166
169
  #
167
170
  # \{#length length($list)}
@@ -190,6 +193,9 @@ module Sass::Script
190
193
  #
191
194
  # ## Map Functions {#map-functions}
192
195
  #
196
+ # Maps in Sass are immutable; all map functions return a new map rather than
197
+ # updating the existing map in-place.
198
+ #
193
199
  # \{#map_get map-get($map, $key)}
194
200
  # : Returns the value in a map associated with a given key.
195
201
  #
@@ -1057,7 +1063,7 @@ module Sass::Script
1057
1063
  # @raise [ArgumentError] if `$color` isn't a color
1058
1064
  def ie_hex_str(color)
1059
1065
  assert_type color, :Color, :color
1060
- alpha = (color.alpha * 255).round.to_s(16).rjust(2, '0')
1066
+ alpha = Sass::Util.round(color.alpha * 255).to_s(16).rjust(2, '0')
1061
1067
  identifier("##{alpha}#{color.send(:hex_str)[1..-1]}".upcase)
1062
1068
  end
1063
1069
  declare :ie_hex_str, [:color]
@@ -1716,7 +1722,7 @@ MESSAGE
1716
1722
  # @return [Sass::Script::Value::Number]
1717
1723
  # @raise [ArgumentError] if `$number` isn't a number
1718
1724
  def round(number)
1719
- numeric_transformation(number) {|n| n.round}
1725
+ numeric_transformation(number) {|n| Sass::Util.round(n)}
1720
1726
  end
1721
1727
  declare :round, [:number]
1722
1728
 
@@ -1879,6 +1885,9 @@ MESSAGE
1879
1885
  # list. If both lists have fewer than two items, spaces are used for the
1880
1886
  # resulting list.
1881
1887
  #
1888
+ # Like all list functions, `join()` returns a new list rather than modifying
1889
+ # its arguments in place.
1890
+ #
1882
1891
  # @example
1883
1892
  # join(10px 20px, 30px 40px) => 10px 20px 30px 40px
1884
1893
  # join((blue, red), (#abc, #def)) => blue, red, #abc, #def
@@ -1912,6 +1921,9 @@ MESSAGE
1912
1921
  # Unless the `$separator` argument is passed, if the list had only one item,
1913
1922
  # the resulting list will be space-separated.
1914
1923
  #
1924
+ # Like all list functions, `append()` returns a new list rather than
1925
+ # modifying its argument in place.
1926
+ #
1915
1927
  # @example
1916
1928
  # append(10px 20px, 30px) => 10px 20px 30px
1917
1929
  # append((blue, red), green) => blue, red, green
@@ -2035,6 +2047,9 @@ MESSAGE
2035
2047
  # same order as in `$map1`. New keys from `$map2` will be placed at the end
2036
2048
  # of the map.
2037
2049
  #
2050
+ # Like all map functions, `map-merge()` returns a new map rather than
2051
+ # modifying its arguments in place.
2052
+ #
2038
2053
  # @example
2039
2054
  # map-merge(("foo": 1), ("bar": 2)) => ("foo": 1, "bar": 2)
2040
2055
  # map-merge(("foo": 1, "bar": 2), ("bar": 3)) => ("foo": 1, "bar": 3)
@@ -2052,6 +2067,9 @@ MESSAGE
2052
2067
 
2053
2068
  # Returns a new map with keys removed.
2054
2069
  #
2070
+ # Like all map functions, `map-merge()` returns a new map rather than
2071
+ # modifying its arguments in place.
2072
+ #
2055
2073
  # @example
2056
2074
  # map-remove(("foo": 1, "bar": 2), "bar") => ("foo": 1)
2057
2075
  # map-remove(("foo": 1, "bar": 2, "baz": 3), "bar", "baz") => ("foo": 1)
@@ -232,7 +232,7 @@ module Sass::Script::Value
232
232
  raise ArgumentError.new("Color.new(array) expects a three- or four-element array")
233
233
  end
234
234
 
235
- red, green, blue = attrs[0...3].map {|c| c.round}
235
+ red, green, blue = attrs[0...3].map {|c| Sass::Util.round(c)}
236
236
  @attrs = {:red => red, :green => green, :blue => blue}
237
237
  @attrs[:alpha] = attrs[3] ? attrs[3].to_f : 1
238
238
  @representation = representation
@@ -258,7 +258,7 @@ module Sass::Script::Value
258
258
 
259
259
  [:red, :green, :blue].each do |k|
260
260
  next if @attrs[k].nil?
261
- @attrs[k] = Sass::Util.restrict(@attrs[k].round, 0..255)
261
+ @attrs[k] = Sass::Util.restrict(Sass::Util.round(@attrs[k]), 0..255)
262
262
  end
263
263
 
264
264
  [:saturation, :lightness].each do |k|
@@ -607,7 +607,7 @@ module Sass::Script::Value
607
607
 
608
608
  result = []
609
609
  (0...3).each do |i|
610
- res = rgb[i].send(operation, other_num ? other.value : other.rgb[i])
610
+ res = rgb[i].to_f.send(operation, other_num ? other.value : other.rgb[i])
611
611
  result[i] = [[res, 255].min, 0].max
612
612
  end
613
613
 
@@ -632,7 +632,7 @@ module Sass::Script::Value
632
632
  hue_to_rgb(m1, m2, h + 1.0 / 3),
633
633
  hue_to_rgb(m1, m2, h),
634
634
  hue_to_rgb(m1, m2, h - 1.0 / 3)
635
- ].map {|c| (c * 0xff).round}
635
+ ].map {|c| Sass::Util.round(c * 0xff)}
636
636
  end
637
637
 
638
638
  def hue_to_rgb(m1, m2, h)
@@ -10,7 +10,7 @@ module Sass
10
10
  # @return [Fixnum]
11
11
  def line=(line)
12
12
  members.each {|m| m.line = line if m.is_a?(SimpleSequence)}
13
- line
13
+ @line = line
14
14
  end
15
15
 
16
16
  # Sets the name of the file in which this selector was declared,
@@ -138,6 +138,17 @@ module Sass
138
138
  [[value, range.first].max, range.last].min
139
139
  end
140
140
 
141
+ # Like [Fixnum.round], but leaves rooms for slight floating-point
142
+ # differences.
143
+ #
144
+ # @param value [Numeric]
145
+ # @return [Numeric]
146
+ def round(value)
147
+ # If the number is within epsilon of X.5, round up.
148
+ return value.ceil if (value % 1) - 0.5 > -0.00001
149
+ value.round
150
+ end
151
+
141
152
  # Concatenates all strings that are adjacent in an array,
142
153
  # while leaving other elements as they are.
143
154
  #
@@ -7,7 +7,7 @@
7
7
 
8
8
  #times { num-num: 7; num-col: #7496b8; col-num: #092345; col-col: #243648; }
9
9
 
10
- #div { num-num: 3.33333; num-num2: 3.33333; col-num: #092345; col-col: #0b0d0f; comp: 1px; }
10
+ #div { num-num: 3.33333; num-num2: 3.33333; col-num: #092345; col-col: #0b0e10; comp: 1px; }
11
11
 
12
12
  #mod { num-num: 2; col-col: #0f0e05; col-num: #020001; }
13
13
 
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.4.14
4
+ version: 3.4.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Natalie Weizenbaum
@@ -10,54 +10,55 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-05-23 00:00:00.000000000 Z
13
+ date: 2015-06-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: yard
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ! '>='
19
+ - - ">="
20
20
  - !ruby/object:Gem::Version
21
21
  version: 0.5.3
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ! '>='
26
+ - - ">="
27
27
  - !ruby/object:Gem::Version
28
28
  version: 0.5.3
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: maruku
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ! '>='
33
+ - - ">="
34
34
  - !ruby/object:Gem::Version
35
35
  version: 0.5.9
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ! '>='
40
+ - - ">="
41
41
  - !ruby/object:Gem::Version
42
42
  version: 0.5.9
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: minitest
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ! '>='
47
+ - - ">="
48
48
  - !ruby/object:Gem::Version
49
49
  version: '5'
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - ! '>='
54
+ - - ">="
55
55
  - !ruby/object:Gem::Version
56
56
  version: '5'
57
- description: ! " Sass makes CSS fun again. Sass is an extension of CSS3, adding\n
58
- \ nested rules, variables, mixins, selector inheritance, and more.\n It's
59
- translated to well-formatted, standard CSS using the\n command line tool or
60
- a web-framework plugin.\n"
57
+ description: |2
58
+ Sass makes CSS fun again. Sass is an extension of CSS3, adding
59
+ nested rules, variables, mixins, selector inheritance, and more.
60
+ It's translated to well-formatted, standard CSS using the
61
+ command line tool or a web-framework plugin.
61
62
  email: sass-lang@googlegroups.com
62
63
  executables:
63
64
  - sass
@@ -66,7 +67,7 @@ executables:
66
67
  extensions: []
67
68
  extra_rdoc_files: []
68
69
  files:
69
- - .yardopts
70
+ - ".yardopts"
70
71
  - CONTRIBUTING.md
71
72
  - MIT-LICENSE
72
73
  - README.md
@@ -99,6 +100,7 @@ files:
99
100
  - lib/sass/features.rb
100
101
  - lib/sass/importers.rb
101
102
  - lib/sass/importers/base.rb
103
+ - lib/sass/importers/deprecated_path.rb
102
104
  - lib/sass/importers/filesystem.rb
103
105
  - lib/sass/logger.rb
104
106
  - lib/sass/logger/base.rb
@@ -380,17 +382,17 @@ require_paths:
380
382
  - lib
381
383
  required_ruby_version: !ruby/object:Gem::Requirement
382
384
  requirements:
383
- - - ! '>='
385
+ - - ">="
384
386
  - !ruby/object:Gem::Version
385
387
  version: 1.8.7
386
388
  required_rubygems_version: !ruby/object:Gem::Requirement
387
389
  requirements:
388
- - - ! '>='
390
+ - - ">="
389
391
  - !ruby/object:Gem::Version
390
392
  version: '0'
391
393
  requirements: []
392
394
  rubyforge_project: sass
393
- rubygems_version: 2.4.3
395
+ rubygems_version: 2.4.5
394
396
  signing_key:
395
397
  specification_version: 4
396
398
  summary: A powerful but elegant CSS compiler that makes CSS fun again.