sass 3.2.7 → 3.3.0.rc.1
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.
- data/MIT-LICENSE +2 -2
- data/README.md +14 -2
- data/Rakefile +25 -1
- data/VERSION +1 -1
- data/VERSION_DATE +1 -1
- data/VERSION_NAME +1 -1
- data/lib/sass/cache_stores/base.rb +4 -2
- data/lib/sass/cache_stores/chain.rb +2 -1
- data/lib/sass/cache_stores/filesystem.rb +2 -6
- data/lib/sass/cache_stores/memory.rb +1 -1
- data/lib/sass/cache_stores/null.rb +2 -2
- data/lib/sass/callbacks.rb +1 -0
- data/lib/sass/css.rb +10 -10
- data/lib/sass/engine.rb +403 -150
- data/lib/sass/environment.rb +136 -57
- data/lib/sass/error.rb +7 -7
- data/lib/sass/exec.rb +123 -39
- data/lib/sass/features.rb +41 -0
- data/lib/sass/importers/base.rb +33 -2
- data/lib/sass/importers/deprecated_path.rb +45 -0
- data/lib/sass/importers/filesystem.rb +25 -14
- data/lib/sass/importers.rb +1 -0
- data/lib/sass/logger/base.rb +3 -3
- data/lib/sass/logger/log_level.rb +4 -6
- data/lib/sass/media.rb +19 -19
- data/lib/sass/plugin/compiler.rb +141 -101
- data/lib/sass/plugin/configuration.rb +18 -22
- data/lib/sass/plugin/merb.rb +1 -1
- data/lib/sass/plugin/staleness_checker.rb +24 -8
- data/lib/sass/plugin.rb +4 -2
- data/lib/sass/repl.rb +3 -3
- data/lib/sass/script/css_lexer.rb +9 -4
- data/lib/sass/script/css_parser.rb +6 -2
- data/lib/sass/script/functions.rb +1343 -590
- data/lib/sass/script/lexer.rb +84 -52
- data/lib/sass/script/parser.rb +217 -97
- data/lib/sass/script/tree/funcall.rb +290 -0
- data/lib/sass/script/{interpolation.rb → tree/interpolation.rb} +34 -13
- data/lib/sass/script/tree/list_literal.rb +80 -0
- data/lib/sass/script/tree/literal.rb +47 -0
- data/lib/sass/script/tree/map_literal.rb +64 -0
- data/lib/sass/script/{node.rb → tree/node.rb} +22 -12
- data/lib/sass/script/{operation.rb → tree/operation.rb} +17 -25
- data/lib/sass/script/tree/selector.rb +30 -0
- data/lib/sass/script/{string_interpolation.rb → tree/string_interpolation.rb} +5 -4
- data/lib/sass/script/{unary_operation.rb → tree/unary_operation.rb} +14 -9
- data/lib/sass/script/tree/variable.rb +57 -0
- data/lib/sass/script/tree.rb +16 -0
- data/lib/sass/script/{arg_list.rb → value/arg_list.rb} +4 -24
- data/lib/sass/script/value/base.rb +248 -0
- data/lib/sass/script/value/bool.rb +36 -0
- data/lib/sass/script/{color.rb → value/color.rb} +239 -195
- data/lib/sass/script/value/helpers.rb +155 -0
- data/lib/sass/script/value/list.rb +119 -0
- data/lib/sass/script/value/map.rb +70 -0
- data/lib/sass/script/value/null.rb +45 -0
- data/lib/sass/script/{number.rb → value/number.rb} +91 -65
- data/lib/sass/script/{string.rb → value/string.rb} +9 -11
- data/lib/sass/script/value.rb +11 -0
- data/lib/sass/script.rb +35 -8
- data/lib/sass/scss/css_parser.rb +2 -1
- data/lib/sass/scss/parser.rb +338 -170
- data/lib/sass/scss/rx.rb +5 -6
- data/lib/sass/scss/script_lexer.rb +1 -0
- data/lib/sass/scss/script_parser.rb +1 -0
- data/lib/sass/scss/static_parser.rb +23 -6
- data/lib/sass/selector/abstract_sequence.rb +2 -2
- data/lib/sass/selector/comma_sequence.rb +21 -16
- data/lib/sass/selector/sequence.rb +60 -34
- data/lib/sass/selector/simple.rb +11 -12
- data/lib/sass/selector/simple_sequence.rb +55 -33
- data/lib/sass/selector.rb +52 -48
- data/lib/sass/source/map.rb +211 -0
- data/lib/sass/source/position.rb +39 -0
- data/lib/sass/source/range.rb +41 -0
- data/lib/sass/stack.rb +120 -0
- data/lib/sass/supports.rb +12 -13
- data/lib/sass/tree/at_root_node.rb +82 -0
- data/lib/sass/tree/comment_node.rb +3 -3
- data/lib/sass/tree/css_import_node.rb +11 -11
- data/lib/sass/tree/debug_node.rb +2 -2
- data/lib/sass/tree/directive_node.rb +13 -2
- data/lib/sass/tree/each_node.rb +8 -8
- data/lib/sass/tree/extend_node.rb +13 -6
- data/lib/sass/tree/for_node.rb +4 -4
- data/lib/sass/tree/function_node.rb +5 -4
- data/lib/sass/tree/if_node.rb +1 -1
- data/lib/sass/tree/import_node.rb +4 -5
- data/lib/sass/tree/media_node.rb +4 -14
- data/lib/sass/tree/mixin_def_node.rb +4 -4
- data/lib/sass/tree/mixin_node.rb +21 -8
- data/lib/sass/tree/node.rb +29 -12
- data/lib/sass/tree/prop_node.rb +38 -18
- data/lib/sass/tree/return_node.rb +3 -2
- data/lib/sass/tree/root_node.rb +19 -3
- data/lib/sass/tree/rule_node.rb +25 -17
- data/lib/sass/tree/supports_node.rb +0 -13
- data/lib/sass/tree/trace_node.rb +2 -1
- data/lib/sass/tree/variable_node.rb +9 -3
- data/lib/sass/tree/visitors/base.rb +6 -6
- data/lib/sass/tree/visitors/check_nesting.rb +12 -9
- data/lib/sass/tree/visitors/convert.rb +63 -38
- data/lib/sass/tree/visitors/cssize.rb +63 -23
- data/lib/sass/tree/visitors/deep_copy.rb +6 -5
- data/lib/sass/tree/visitors/extend.rb +7 -7
- data/lib/sass/tree/visitors/perform.rb +256 -151
- data/lib/sass/tree/visitors/set_options.rb +6 -6
- data/lib/sass/tree/visitors/to_css.rb +231 -81
- data/lib/sass/tree/warn_node.rb +2 -2
- data/lib/sass/tree/while_node.rb +2 -2
- data/lib/sass/util/multibyte_string_scanner.rb +2 -0
- data/lib/sass/util/normalized_map.rb +65 -0
- data/lib/sass/util/ordered_hash.rb +188 -0
- data/lib/sass/util/subset_map.rb +3 -2
- data/lib/sass/util/test.rb +9 -0
- data/lib/sass/util.rb +220 -34
- data/lib/sass/version.rb +9 -9
- data/lib/sass.rb +14 -7
- data/test/sass/compiler_test.rb +213 -0
- data/test/sass/conversion_test.rb +235 -9
- data/test/sass/engine_test.rb +230 -60
- data/test/sass/exec_test.rb +86 -0
- data/test/sass/extend_test.rb +215 -147
- data/test/sass/functions_test.rb +584 -99
- data/test/sass/importer_test.rb +165 -17
- data/test/sass/plugin_test.rb +19 -13
- data/test/sass/script_conversion_test.rb +40 -0
- data/test/sass/script_test.rb +231 -21
- data/test/sass/scss/css_test.rb +14 -5
- data/test/sass/scss/scss_test.rb +1266 -66
- data/test/sass/source_map_test.rb +879 -0
- data/test/sass/templates/bork5.sass +3 -0
- data/test/sass/util/normalized_map_test.rb +30 -0
- data/test/sass/util_test.rb +90 -0
- data/test/sass/value_helpers_test.rb +181 -0
- data/test/test_helper.rb +7 -2
- metadata +316 -291
- data/lib/sass/script/bool.rb +0 -18
- data/lib/sass/script/funcall.rb +0 -231
- data/lib/sass/script/list.rb +0 -84
- data/lib/sass/script/literal.rb +0 -239
- data/lib/sass/script/null.rb +0 -34
- data/lib/sass/script/variable.rb +0 -58
- data/test/Gemfile +0 -3
- data/vendor/listen/CHANGELOG.md +0 -221
- data/vendor/listen/CONTRIBUTING.md +0 -38
- data/vendor/listen/Gemfile +0 -30
- data/vendor/listen/Guardfile +0 -8
- data/vendor/listen/LICENSE +0 -20
- data/vendor/listen/README.md +0 -315
- data/vendor/listen/Rakefile +0 -47
- data/vendor/listen/Vagrantfile +0 -96
- data/vendor/listen/lib/listen/adapter.rb +0 -214
- data/vendor/listen/lib/listen/adapters/bsd.rb +0 -112
- data/vendor/listen/lib/listen/adapters/darwin.rb +0 -85
- data/vendor/listen/lib/listen/adapters/linux.rb +0 -113
- data/vendor/listen/lib/listen/adapters/polling.rb +0 -67
- data/vendor/listen/lib/listen/adapters/windows.rb +0 -87
- data/vendor/listen/lib/listen/dependency_manager.rb +0 -126
- data/vendor/listen/lib/listen/directory_record.rb +0 -371
- data/vendor/listen/lib/listen/listener.rb +0 -225
- data/vendor/listen/lib/listen/multi_listener.rb +0 -143
- data/vendor/listen/lib/listen/turnstile.rb +0 -28
- data/vendor/listen/lib/listen/version.rb +0 -3
- data/vendor/listen/lib/listen.rb +0 -40
- data/vendor/listen/listen.gemspec +0 -22
- data/vendor/listen/spec/listen/adapter_spec.rb +0 -183
- data/vendor/listen/spec/listen/adapters/bsd_spec.rb +0 -36
- data/vendor/listen/spec/listen/adapters/darwin_spec.rb +0 -37
- data/vendor/listen/spec/listen/adapters/linux_spec.rb +0 -47
- data/vendor/listen/spec/listen/adapters/polling_spec.rb +0 -68
- data/vendor/listen/spec/listen/adapters/windows_spec.rb +0 -30
- data/vendor/listen/spec/listen/dependency_manager_spec.rb +0 -107
- data/vendor/listen/spec/listen/directory_record_spec.rb +0 -1225
- data/vendor/listen/spec/listen/listener_spec.rb +0 -169
- data/vendor/listen/spec/listen/multi_listener_spec.rb +0 -174
- data/vendor/listen/spec/listen/turnstile_spec.rb +0 -56
- data/vendor/listen/spec/listen_spec.rb +0 -73
- data/vendor/listen/spec/spec_helper.rb +0 -21
- data/vendor/listen/spec/support/adapter_helper.rb +0 -629
- data/vendor/listen/spec/support/directory_record_helper.rb +0 -55
- data/vendor/listen/spec/support/fixtures_helper.rb +0 -29
- data/vendor/listen/spec/support/listeners_helper.rb +0 -156
- data/vendor/listen/spec/support/platform_helper.rb +0 -15
data/MIT-LICENSE
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Copyright (c) 2006-
|
|
1
|
+
Copyright (c) 2006-2013 Hampton Catlin, Nathan Weizenbaum, and Chris Eppstein
|
|
2
2
|
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
4
|
a copy of this software and associated documentation files (the
|
|
@@ -17,4 +17,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
|
17
17
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
18
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
19
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Sass
|
|
1
|
+
# Sass [](http://badge.fury.io/rb/sass)
|
|
2
2
|
|
|
3
3
|
**Sass makes CSS fun again**. Sass is an extension of CSS3,
|
|
4
4
|
adding nested rules, variables, mixins, selector inheritance, and more.
|
|
@@ -56,7 +56,7 @@ to `config.ru`.
|
|
|
56
56
|
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
|
-
To use Sass
|
|
59
|
+
To use Sass programmatically,
|
|
60
60
|
check out the [YARD documentation](http://sass-lang.com/docs/yardoc/).
|
|
61
61
|
|
|
62
62
|
## Formatting
|
|
@@ -171,6 +171,18 @@ When converting from CSS to Sass or SCSS,
|
|
|
171
171
|
nesting is applied where appropriate.
|
|
172
172
|
See `sass-convert --help` for further information and options.
|
|
173
173
|
|
|
174
|
+
### Running locally
|
|
175
|
+
|
|
176
|
+
To run the Sass executables from a source checkout instead of from rubygems:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
$ cd <SASS_CHECKOUT_DIRECTORY>
|
|
180
|
+
$ bundle
|
|
181
|
+
$ bundle exec sass ...
|
|
182
|
+
$ bundle exec scss ...
|
|
183
|
+
$ bundle exec sass-convert ...
|
|
184
|
+
```
|
|
185
|
+
|
|
174
186
|
## Authors
|
|
175
187
|
|
|
176
188
|
Sass was envisioned by [Hampton Catlin](http://www.hamptoncatlin.com)
|
data/Rakefile
CHANGED
|
@@ -19,6 +19,25 @@ Rake::TestTask.new do |t|
|
|
|
19
19
|
t.verbose = true
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
+
# ----- Code Style Enforcement -----
|
|
23
|
+
|
|
24
|
+
if RUBY_VERSION !~ /^(1\.8|2\.1)/ && (ENV.has_key?("RUBOCOP") && ENV["RUBOCOP"] == "true" || !ENV.has_key?("RUBOCOP"))
|
|
25
|
+
require 'rubocop/rake_task'
|
|
26
|
+
Rubocop::RakeTask.new do |t|
|
|
27
|
+
t.patterns = FileList["lib/**/*"]
|
|
28
|
+
end
|
|
29
|
+
else
|
|
30
|
+
task :rubocop do
|
|
31
|
+
puts "Skipping rubocop style check."
|
|
32
|
+
if !ENV.has_key?("RUBOCOP")
|
|
33
|
+
puts "Passing this check is required in order for your patch to be accepted."
|
|
34
|
+
puts "Use ruby 1.9 or greater and then run the style check with: rake rubocop"
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
task :test => :rubocop
|
|
40
|
+
|
|
22
41
|
# ----- Packaging -----
|
|
23
42
|
|
|
24
43
|
# Don't use Rake::GemPackageTast because we want prerequisites to run
|
|
@@ -140,6 +159,11 @@ task :release_edge do
|
|
|
140
159
|
sh %{git reset --hard origin/master}
|
|
141
160
|
sh %{rake package}
|
|
142
161
|
version = get_version
|
|
162
|
+
if version.include?('.rc.')
|
|
163
|
+
puts "#{'=' * 20} Not releasing edge gem for RC version"
|
|
164
|
+
next
|
|
165
|
+
end
|
|
166
|
+
|
|
143
167
|
sh %{rubyforge add_release sass sass "Bleeding Edge (v#{version})" pkg/sass-#{version}.gem}
|
|
144
168
|
sh %{gem push pkg/sass-#{version}.gem}
|
|
145
169
|
end
|
|
@@ -191,7 +215,7 @@ begin
|
|
|
191
215
|
task :undocumented do
|
|
192
216
|
opts = ENV["YARD_OPTS"] || ""
|
|
193
217
|
ENV["YARD_OPTS"] = opts.dup + <<OPTS
|
|
194
|
-
--list --query "
|
|
218
|
+
--list --tag comment --hide-tag comment --query "
|
|
195
219
|
object.docstring.blank? &&
|
|
196
220
|
!(object.type == :method && object.is_alias?)"
|
|
197
221
|
OPTS
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.
|
|
1
|
+
3.3.0.rc.1
|
data/VERSION_DATE
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
12 October 2013 15:48:52 GMT
|
data/VERSION_NAME
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Maptastic Maple
|
|
@@ -27,7 +27,7 @@ module Sass
|
|
|
27
27
|
|
|
28
28
|
# Retrieved cached contents.
|
|
29
29
|
# Must be implemented by all subclasses.
|
|
30
|
-
#
|
|
30
|
+
#
|
|
31
31
|
# Note: if the key exists but the sha or version have changed,
|
|
32
32
|
# then the key may be deleted by the cache store, if it wants to do so.
|
|
33
33
|
#
|
|
@@ -46,11 +46,12 @@ module Sass
|
|
|
46
46
|
#
|
|
47
47
|
# @param key [String] The key to store it under.
|
|
48
48
|
# @param sha [String] The checksum for the contents that are being stored.
|
|
49
|
-
# @param
|
|
49
|
+
# @param root [Object] The root node to cache.
|
|
50
50
|
def store(key, sha, root)
|
|
51
51
|
_store(key, Sass::VERSION, sha, Marshal.dump(root))
|
|
52
52
|
rescue TypeError, LoadError => e
|
|
53
53
|
Sass::Util.sass_warn "Warning. Error encountered while saving cache #{path_to(key)}: #{e}"
|
|
54
|
+
nil
|
|
54
55
|
end
|
|
55
56
|
|
|
56
57
|
# Retrieve a {Sass::Tree::RootNode}.
|
|
@@ -63,6 +64,7 @@ module Sass
|
|
|
63
64
|
Marshal.load(contents) if contents
|
|
64
65
|
rescue EOFError, TypeError, ArgumentError, LoadError => e
|
|
65
66
|
Sass::Util.sass_warn "Warning. Error encountered while reading cache #{path_to(key)}: #{e}"
|
|
67
|
+
nil
|
|
66
68
|
end
|
|
67
69
|
|
|
68
70
|
# Return the key for the sass file.
|
|
@@ -22,7 +22,8 @@ module Sass
|
|
|
22
22
|
# @see Base#retrieve
|
|
23
23
|
def retrieve(key, sha)
|
|
24
24
|
@caches.each_with_index do |c, i|
|
|
25
|
-
|
|
25
|
+
obj = c.retrieve(key, sha)
|
|
26
|
+
next unless obj
|
|
26
27
|
@caches[0...i].each {|prev| prev.store(key, sha, obj)}
|
|
27
28
|
return obj
|
|
28
29
|
end
|
|
@@ -30,19 +30,15 @@ module Sass
|
|
|
30
30
|
|
|
31
31
|
# @see Base#\_store
|
|
32
32
|
def _store(key, version, sha, contents)
|
|
33
|
-
# return unless File.writable?(File.dirname(@cache_location))
|
|
34
|
-
# return if File.exists?(@cache_location) && !File.writable?(@cache_location)
|
|
35
33
|
compiled_filename = path_to(key)
|
|
36
|
-
# return if File.exists?(File.dirname(compiled_filename)) && !File.writable?(File.dirname(compiled_filename))
|
|
37
|
-
# return if File.exists?(compiled_filename) && !File.writable?(compiled_filename)
|
|
38
34
|
FileUtils.mkdir_p(File.dirname(compiled_filename))
|
|
39
|
-
|
|
35
|
+
Sass::Util.atomic_create_and_write_file(compiled_filename) do |f|
|
|
40
36
|
f.puts(version)
|
|
41
37
|
f.puts(sha)
|
|
42
38
|
f.write(contents)
|
|
43
39
|
end
|
|
44
40
|
rescue Errno::EACCES
|
|
45
|
-
#pass
|
|
41
|
+
# pass
|
|
46
42
|
end
|
|
47
43
|
|
|
48
44
|
private
|
data/lib/sass/callbacks.rb
CHANGED
data/lib/sass/css.rb
CHANGED
|
@@ -76,7 +76,7 @@ module Sass
|
|
|
76
76
|
#
|
|
77
77
|
# @return [Tree::Node] The root node of the parsed tree
|
|
78
78
|
def build_tree
|
|
79
|
-
root = Sass::SCSS::CssParser.new(@template, @options[:filename]).parse
|
|
79
|
+
root = Sass::SCSS::CssParser.new(@template, @options[:filename], nil).parse
|
|
80
80
|
parse_selectors root
|
|
81
81
|
expand_commas root
|
|
82
82
|
nest_seqs root
|
|
@@ -96,7 +96,7 @@ module Sass
|
|
|
96
96
|
root.children.each do |child|
|
|
97
97
|
next parse_selectors(child) if child.is_a?(Tree::DirectiveNode)
|
|
98
98
|
next unless child.is_a?(Tree::RuleNode)
|
|
99
|
-
parser = Sass::SCSS::CssParser.new(child.rule.first, child.filename, child.line)
|
|
99
|
+
parser = Sass::SCSS::CssParser.new(child.rule.first, child.filename, nil, child.line)
|
|
100
100
|
child.parsed_rules = parser.parse_selector
|
|
101
101
|
end
|
|
102
102
|
end
|
|
@@ -169,11 +169,11 @@ module Sass
|
|
|
169
169
|
current_rule.parsed_rules = make_seq(first)
|
|
170
170
|
end
|
|
171
171
|
|
|
172
|
-
|
|
172
|
+
if rest.empty?
|
|
173
|
+
current_rule.children += child.children
|
|
174
|
+
else
|
|
173
175
|
child.parsed_rules = make_seq(*rest)
|
|
174
176
|
current_rule << child
|
|
175
|
-
else
|
|
176
|
-
current_rule.children += child.children
|
|
177
177
|
end
|
|
178
178
|
|
|
179
179
|
current_rule
|
|
@@ -220,12 +220,12 @@ module Sass
|
|
|
220
220
|
current_rule.parsed_rules = make_sseq(last_simple_subject, *firsts)
|
|
221
221
|
end
|
|
222
222
|
|
|
223
|
-
|
|
223
|
+
if rest.empty?
|
|
224
|
+
current_rule.children += child.children
|
|
225
|
+
else
|
|
224
226
|
rest.unshift Sass::Selector::Parent.new
|
|
225
227
|
child.parsed_rules = make_sseq(sseq.subject?, *rest)
|
|
226
228
|
current_rule << child
|
|
227
|
-
else
|
|
228
|
-
current_rule.children += child.children
|
|
229
229
|
end
|
|
230
230
|
|
|
231
231
|
current_rule
|
|
@@ -317,7 +317,7 @@ module Sass
|
|
|
317
317
|
# bar, baz
|
|
318
318
|
# color: blue
|
|
319
319
|
#
|
|
320
|
-
# @param
|
|
320
|
+
# @param root [Tree::Node] The parent node
|
|
321
321
|
def fold_commas(root)
|
|
322
322
|
prev_rule = nil
|
|
323
323
|
root.children.map! do |child|
|
|
@@ -326,7 +326,7 @@ module Sass
|
|
|
326
326
|
next child
|
|
327
327
|
end
|
|
328
328
|
|
|
329
|
-
if prev_rule && prev_rule.children == child.children
|
|
329
|
+
if prev_rule && prev_rule.children.map {|c| c.to_sass} == child.children.map {|c| c.to_sass}
|
|
330
330
|
prev_rule.parsed_rules.members << first_seq(child)
|
|
331
331
|
next nil
|
|
332
332
|
end
|