oreorenasass 3.4.4 → 3.4.5
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.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/README.md +50 -70
- data/Rakefile +5 -26
- data/VERSION +1 -1
- data/VERSION_NAME +1 -1
- data/bin/sass +1 -1
- data/bin/scss +1 -1
- data/lib/sass.rb +12 -19
- data/lib/sass/cache_stores/base.rb +2 -2
- data/lib/sass/cache_stores/chain.rb +1 -2
- data/lib/sass/cache_stores/filesystem.rb +5 -1
- data/lib/sass/cache_stores/memory.rb +1 -1
- data/lib/sass/cache_stores/null.rb +2 -2
- data/lib/sass/callbacks.rb +0 -1
- data/lib/sass/css.rb +13 -11
- data/lib/sass/engine.rb +173 -424
- data/lib/sass/environment.rb +58 -148
- data/lib/sass/error.rb +14 -11
- data/lib/sass/exec.rb +703 -5
- data/lib/sass/importers/base.rb +6 -49
- data/lib/sass/importers/filesystem.rb +19 -44
- data/lib/sass/logger.rb +4 -1
- data/lib/sass/logger/base.rb +4 -2
- data/lib/sass/logger/log_level.rb +7 -3
- data/lib/sass/media.rb +23 -20
- data/lib/sass/plugin.rb +7 -7
- data/lib/sass/plugin/compiler.rb +145 -304
- data/lib/sass/plugin/configuration.rb +23 -18
- data/lib/sass/plugin/merb.rb +1 -1
- data/lib/sass/plugin/staleness_checker.rb +3 -3
- data/lib/sass/repl.rb +3 -3
- data/lib/sass/script.rb +8 -35
- data/lib/sass/script/{value/arg_list.rb → arg_list.rb} +25 -9
- data/lib/sass/script/bool.rb +18 -0
- data/lib/sass/script/color.rb +606 -0
- data/lib/sass/script/css_lexer.rb +4 -8
- data/lib/sass/script/css_parser.rb +2 -5
- data/lib/sass/script/funcall.rb +245 -0
- data/lib/sass/script/functions.rb +408 -1491
- data/lib/sass/script/interpolation.rb +79 -0
- data/lib/sass/script/lexer.rb +68 -172
- data/lib/sass/script/list.rb +85 -0
- data/lib/sass/script/literal.rb +221 -0
- data/lib/sass/script/{tree/node.rb → node.rb} +12 -22
- data/lib/sass/script/{value/null.rb → null.rb} +7 -14
- data/lib/sass/script/{value/number.rb → number.rb} +75 -152
- data/lib/sass/script/{tree/operation.rb → operation.rb} +24 -17
- data/lib/sass/script/parser.rb +110 -245
- data/lib/sass/script/string.rb +51 -0
- data/lib/sass/script/{tree/string_interpolation.rb → string_interpolation.rb} +4 -5
- data/lib/sass/script/{tree/unary_operation.rb → unary_operation.rb} +6 -6
- data/lib/sass/script/variable.rb +58 -0
- data/lib/sass/scss/css_parser.rb +3 -9
- data/lib/sass/scss/parser.rb +421 -450
- data/lib/sass/scss/rx.rb +11 -19
- data/lib/sass/scss/static_parser.rb +7 -321
- data/lib/sass/selector.rb +194 -68
- data/lib/sass/selector/abstract_sequence.rb +14 -29
- data/lib/sass/selector/comma_sequence.rb +25 -108
- data/lib/sass/selector/sequence.rb +66 -159
- data/lib/sass/selector/simple.rb +25 -23
- data/lib/sass/selector/simple_sequence.rb +63 -173
- data/lib/sass/shared.rb +1 -1
- data/lib/sass/supports.rb +15 -13
- data/lib/sass/tree/charset_node.rb +1 -1
- 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 +4 -21
- data/lib/sass/tree/each_node.rb +8 -8
- data/lib/sass/tree/extend_node.rb +7 -14
- data/lib/sass/tree/for_node.rb +4 -4
- data/lib/sass/tree/function_node.rb +4 -9
- data/lib/sass/tree/if_node.rb +1 -1
- data/lib/sass/tree/import_node.rb +5 -4
- data/lib/sass/tree/media_node.rb +14 -4
- data/lib/sass/tree/mixin_def_node.rb +4 -4
- data/lib/sass/tree/mixin_node.rb +8 -21
- data/lib/sass/tree/node.rb +12 -54
- data/lib/sass/tree/prop_node.rb +20 -39
- data/lib/sass/tree/return_node.rb +2 -3
- data/lib/sass/tree/root_node.rb +3 -19
- data/lib/sass/tree/rule_node.rb +22 -35
- data/lib/sass/tree/supports_node.rb +13 -0
- data/lib/sass/tree/trace_node.rb +1 -2
- data/lib/sass/tree/variable_node.rb +3 -9
- data/lib/sass/tree/visitors/base.rb +8 -5
- data/lib/sass/tree/visitors/check_nesting.rb +19 -49
- data/lib/sass/tree/visitors/convert.rb +56 -74
- data/lib/sass/tree/visitors/cssize.rb +74 -202
- data/lib/sass/tree/visitors/deep_copy.rb +5 -10
- data/lib/sass/tree/visitors/extend.rb +7 -7
- data/lib/sass/tree/visitors/perform.rb +185 -278
- data/lib/sass/tree/visitors/set_options.rb +6 -20
- data/lib/sass/tree/visitors/to_css.rb +81 -234
- data/lib/sass/tree/warn_node.rb +2 -2
- data/lib/sass/tree/while_node.rb +2 -2
- data/lib/sass/util.rb +152 -522
- data/lib/sass/util/multibyte_string_scanner.rb +0 -2
- data/lib/sass/util/subset_map.rb +3 -4
- data/lib/sass/util/test.rb +1 -0
- data/lib/sass/version.rb +22 -20
- data/test/Gemfile +3 -0
- data/test/Gemfile.lock +10 -0
- data/test/sass/cache_test.rb +20 -62
- data/test/sass/callbacks_test.rb +1 -1
- data/test/sass/conversion_test.rb +2 -296
- data/test/sass/css2sass_test.rb +4 -23
- data/test/sass/engine_test.rb +354 -411
- data/test/sass/exec_test.rb +2 -2
- data/test/sass/extend_test.rb +145 -324
- data/test/sass/functions_test.rb +86 -873
- data/test/sass/importer_test.rb +21 -241
- data/test/sass/logger_test.rb +1 -1
- data/test/sass/more_results/more_import.css +1 -1
- data/test/sass/plugin_test.rb +26 -16
- data/test/sass/results/compact.css +1 -1
- data/test/sass/results/complex.css +4 -4
- data/test/sass/results/expanded.css +1 -1
- data/test/sass/results/import.css +1 -1
- data/test/sass/results/import_charset_ibm866.css +2 -2
- data/test/sass/results/mixins.css +17 -17
- data/test/sass/results/nested.css +1 -1
- data/test/sass/results/parent_ref.css +2 -2
- data/test/sass/results/script.css +3 -3
- data/test/sass/results/scss_import.css +1 -1
- data/test/sass/script_conversion_test.rb +7 -36
- data/test/sass/script_test.rb +53 -485
- data/test/sass/scss/css_test.rb +28 -143
- data/test/sass/scss/rx_test.rb +4 -4
- data/test/sass/scss/scss_test.rb +325 -2119
- data/test/sass/templates/scss_import.scss +1 -2
- data/test/sass/test_helper.rb +1 -1
- data/test/sass/util/multibyte_string_scanner_test.rb +1 -1
- data/test/sass/util/subset_map_test.rb +2 -2
- data/test/sass/util_test.rb +1 -86
- data/test/test_helper.rb +8 -37
- metadata +19 -66
- data/lib/sass/exec/base.rb +0 -187
- data/lib/sass/exec/sass_convert.rb +0 -264
- data/lib/sass/exec/sass_scss.rb +0 -424
- data/lib/sass/features.rb +0 -47
- data/lib/sass/script/tree.rb +0 -16
- data/lib/sass/script/tree/funcall.rb +0 -306
- data/lib/sass/script/tree/interpolation.rb +0 -118
- data/lib/sass/script/tree/list_literal.rb +0 -77
- data/lib/sass/script/tree/literal.rb +0 -45
- data/lib/sass/script/tree/map_literal.rb +0 -64
- data/lib/sass/script/tree/selector.rb +0 -26
- data/lib/sass/script/tree/variable.rb +0 -57
- data/lib/sass/script/value.rb +0 -11
- data/lib/sass/script/value/base.rb +0 -240
- data/lib/sass/script/value/bool.rb +0 -35
- data/lib/sass/script/value/color.rb +0 -680
- data/lib/sass/script/value/helpers.rb +0 -262
- data/lib/sass/script/value/list.rb +0 -113
- data/lib/sass/script/value/map.rb +0 -70
- data/lib/sass/script/value/string.rb +0 -97
- data/lib/sass/selector/pseudo.rb +0 -256
- data/lib/sass/source/map.rb +0 -210
- data/lib/sass/source/position.rb +0 -39
- data/lib/sass/source/range.rb +0 -41
- data/lib/sass/stack.rb +0 -120
- data/lib/sass/tree/at_root_node.rb +0 -83
- data/lib/sass/tree/error_node.rb +0 -18
- data/lib/sass/tree/keyframe_rule_node.rb +0 -15
- data/lib/sass/util/cross_platform_random.rb +0 -19
- data/lib/sass/util/normalized_map.rb +0 -130
- data/lib/sass/util/ordered_hash.rb +0 -192
- data/test/sass/compiler_test.rb +0 -232
- data/test/sass/encoding_test.rb +0 -219
- data/test/sass/source_map_test.rb +0 -977
- data/test/sass/superselector_test.rb +0 -191
- data/test/sass/util/normalized_map_test.rb +0 -51
- data/test/sass/value_helpers_test.rb +0 -179
data/test/sass/test_helper.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require File.dirname(__FILE__) + '/../../test_helper'
|
4
4
|
|
5
5
|
unless Sass::Util.ruby1_8?
|
6
|
-
class MultibyteStringScannerTest <
|
6
|
+
class MultibyteStringScannerTest < Test::Unit::TestCase
|
7
7
|
def setup
|
8
8
|
@scanner = Sass::Util::MultibyteStringScanner.new("cölorfül")
|
9
9
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require File.dirname(__FILE__) + '/../../test_helper'
|
3
3
|
|
4
|
-
class SubsetMapTest <
|
4
|
+
class SubsetMapTest < Test::Unit::TestCase
|
5
5
|
def setup
|
6
6
|
@ssm = Sass::Util::SubsetMap.new
|
7
7
|
@ssm[Set[1, 2]] = "Foo"
|
@@ -44,7 +44,7 @@ class SubsetMapTest < MiniTest::Test
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def test_empty_key_set
|
47
|
-
|
47
|
+
assert_raise(ArgumentError) {@ssm[Set[]] = "Fail"}
|
48
48
|
end
|
49
49
|
|
50
50
|
def test_empty_key_get
|
data/test/sass/util_test.rb
CHANGED
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + '/../test_helper'
|
|
3
3
|
require 'pathname'
|
4
4
|
require 'tmpdir'
|
5
5
|
|
6
|
-
class UtilTest <
|
6
|
+
class UtilTest < Test::Unit::TestCase
|
7
7
|
include Sass::Util
|
8
8
|
|
9
9
|
def test_scope
|
@@ -42,15 +42,6 @@ class UtilTest < MiniTest::Test
|
|
42
42
|
}, map_hash({:foo => 1, :bar => 2, :baz => 3}) {|k, v| [k.to_s, v.to_s]})
|
43
43
|
end
|
44
44
|
|
45
|
-
def test_map_hash_with_normalized_map
|
46
|
-
map = NormalizedMap.new("foo-bar" => 1, "baz_bang" => 2)
|
47
|
-
result = map_hash(map) {|k, v| [k, v.to_s]}
|
48
|
-
assert_equal("1", result["foo-bar"])
|
49
|
-
assert_equal("1", result["foo_bar"])
|
50
|
-
assert_equal("2", result["baz-bang"])
|
51
|
-
assert_equal("2", result["baz_bang"])
|
52
|
-
end
|
53
|
-
|
54
45
|
def test_powerset
|
55
46
|
return unless Set[Set[]] == Set[Set[]] # There's a bug in Ruby 1.8.6 that breaks nested set equality
|
56
47
|
assert_equal([[].to_set].to_set,
|
@@ -79,15 +70,6 @@ class UtilTest < MiniTest::Test
|
|
79
70
|
merge_adjacent_strings([str, " ", str, " ", str, :bang, str, " ", str, 12]))
|
80
71
|
end
|
81
72
|
|
82
|
-
def test_replace_subseq
|
83
|
-
assert_equal([1, 2, :a, :b, 5],
|
84
|
-
replace_subseq([1, 2, 3, 4, 5], [3, 4], [:a, :b]))
|
85
|
-
assert_equal([1, 2, 3, 4, 5],
|
86
|
-
replace_subseq([1, 2, 3, 4, 5], [3, 4, 6], [:a, :b]))
|
87
|
-
assert_equal([1, 2, 3, 4, 5],
|
88
|
-
replace_subseq([1, 2, 3, 4, 5], [4, 5, 6], [:a, :b]))
|
89
|
-
end
|
90
|
-
|
91
73
|
def test_intersperse
|
92
74
|
assert_equal(["foo", " ", "bar", " ", "baz"],
|
93
75
|
intersperse(%w[foo bar baz], " "))
|
@@ -220,13 +202,6 @@ class UtilTest < MiniTest::Test
|
|
220
202
|
assert_equal([1, 2, 3, 4], flatten([[[1], 2], [3], 4], 2))
|
221
203
|
end
|
222
204
|
|
223
|
-
def test_flatten_vertically
|
224
|
-
assert_equal([1, 2, 3], flatten_vertically([1, 2, 3]))
|
225
|
-
assert_equal([1, 3, 5, 2, 4, 6], flatten_vertically([[1, 2], [3, 4], [5, 6]]))
|
226
|
-
assert_equal([1, 2, 4, 3, 5, 6], flatten_vertically([1, [2, 3], [4, 5, 6]]))
|
227
|
-
assert_equal([1, 4, 6, 2, 5, 3], flatten_vertically([[1, 2, 3], [4, 5], 6]))
|
228
|
-
end
|
229
|
-
|
230
205
|
def test_set_hash
|
231
206
|
assert(set_hash(Set[1, 2, 3]) == set_hash(Set[3, 2, 1]))
|
232
207
|
assert(set_hash(Set[1, 2, 3]) == set_hash(Set[1, 2, 3]))
|
@@ -329,15 +304,6 @@ class UtilTest < MiniTest::Test
|
|
329
304
|
def foo
|
330
305
|
Sass::Util.abstract(self)
|
331
306
|
end
|
332
|
-
def old_method
|
333
|
-
Sass::Util.deprecated(self)
|
334
|
-
end
|
335
|
-
def old_method_with_custom_message
|
336
|
-
Sass::Util.deprecated(self, "Call FooBar#new_method instead.")
|
337
|
-
end
|
338
|
-
def self.another_old_method
|
339
|
-
Sass::Util.deprecated(self)
|
340
|
-
end
|
341
307
|
end
|
342
308
|
|
343
309
|
def test_abstract
|
@@ -345,57 +311,6 @@ class UtilTest < MiniTest::Test
|
|
345
311
|
"UtilTest::FooBar must implement #foo") {FooBar.new.foo}
|
346
312
|
end
|
347
313
|
|
348
|
-
def test_deprecated
|
349
|
-
assert_warning("DEPRECATION WARNING: UtilTest::FooBar#old_method will be removed in a future version of Sass.") { FooBar.new.old_method }
|
350
|
-
assert_warning(<<WARNING) { FooBar.new.old_method_with_custom_message }
|
351
|
-
DEPRECATION WARNING: UtilTest::FooBar#old_method_with_custom_message will be removed in a future version of Sass.
|
352
|
-
Call FooBar#new_method instead.
|
353
|
-
WARNING
|
354
|
-
assert_warning("DEPRECATION WARNING: UtilTest::FooBar.another_old_method will be removed in a future version of Sass.") { FooBar.another_old_method }
|
355
|
-
end
|
356
|
-
|
357
|
-
def test_json_escape_string
|
358
|
-
assert_json_string "", ""
|
359
|
-
alphanum = (("0".."9").to_a).concat(("a".."z").to_a).concat(("A".."Z").to_a).join
|
360
|
-
assert_json_string alphanum, alphanum
|
361
|
-
assert_json_string "'\"\\'", "'\\\"\\\\'"
|
362
|
-
assert_json_string "\b\f\n\r\t", "\\b\\f\\n\\r\\t"
|
363
|
-
end
|
364
|
-
|
365
|
-
def assert_json_string(source, target)
|
366
|
-
assert_equal target, json_escape_string(source)
|
367
|
-
end
|
368
|
-
|
369
|
-
def test_json_value_of
|
370
|
-
assert_json_value 0, "0"
|
371
|
-
assert_json_value(-42, "-42")
|
372
|
-
assert_json_value 42, "42"
|
373
|
-
assert_json_value true, "true"
|
374
|
-
assert_json_value false, "false"
|
375
|
-
assert_json_value "", "\"\""
|
376
|
-
assert_json_value "\"\"", "\"\\\"\\\"\""
|
377
|
-
assert_json_value "Multi\nLine\rString", "\"Multi\\nLine\\rString\""
|
378
|
-
assert_json_value [1, "some\nstr,ing", false, nil], "[1,\"some\\nstr,ing\",false,null]"
|
379
|
-
end
|
380
|
-
|
381
|
-
def assert_json_value(source, target)
|
382
|
-
assert_equal target, json_value_of(source)
|
383
|
-
end
|
384
|
-
|
385
|
-
def test_vlq
|
386
|
-
assert_equal "A", encode_vlq(0)
|
387
|
-
assert_equal "e", encode_vlq(15)
|
388
|
-
assert_equal "gB", encode_vlq(16)
|
389
|
-
assert_equal "wH", encode_vlq(120)
|
390
|
-
end
|
391
|
-
|
392
|
-
def assert_vlq_encodes(int, vlq)
|
393
|
-
vlq_from_decimal_array = decimal_array.map {|d| encode_vlq(d)}.join
|
394
|
-
decimal_array_from_vlq = decode_vlq(vlq)
|
395
|
-
assert_equal vlq, vlq_from_decimal_array
|
396
|
-
assert_equal decimal_array, decimal_array_from_vlq
|
397
|
-
end
|
398
|
-
|
399
314
|
def test_atomic_writes
|
400
315
|
# when using normal writes, this test fails about 90% of the time.
|
401
316
|
filename = File.join(Dir.tmpdir, "test_atomic")
|
data/test/test_helper.rb
CHANGED
@@ -1,50 +1,35 @@
|
|
1
1
|
lib_dir = File.dirname(__FILE__) + '/../lib'
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'test/unit'
|
4
4
|
require 'fileutils'
|
5
5
|
$:.unshift lib_dir unless $:.include?(lib_dir)
|
6
6
|
require 'sass'
|
7
7
|
require 'mathn' if ENV['MATHN'] == 'true'
|
8
8
|
|
9
9
|
Sass::RAILS_LOADED = true unless defined?(Sass::RAILS_LOADED)
|
10
|
-
|
11
|
-
Sass.tests_running = true
|
12
|
-
|
13
|
-
if defined?(Encoding)
|
14
|
-
$-w, w = false, $-w
|
15
|
-
Encoding.default_external = 'UTF-8'
|
16
|
-
$-w = w
|
17
|
-
end
|
10
|
+
Encoding.default_external = 'UTF-8' if defined?(Encoding)
|
18
11
|
|
19
12
|
module Sass::Script::Functions
|
20
13
|
def option(name)
|
21
|
-
Sass::Script::
|
14
|
+
Sass::Script::String.new(@options[name.value.to_sym].to_s)
|
22
15
|
end
|
23
16
|
end
|
24
17
|
|
25
|
-
class
|
18
|
+
class Test::Unit::TestCase
|
26
19
|
def munge_filename(opts = {})
|
27
|
-
|
28
|
-
opts[:
|
29
|
-
opts
|
20
|
+
return if opts.has_key?(:filename)
|
21
|
+
opts[:filename] = filename_for_test(opts[:syntax] || :sass)
|
30
22
|
end
|
31
23
|
|
32
|
-
def
|
33
|
-
caller.
|
24
|
+
def filename_for_test(syntax = :sass)
|
25
|
+
test_name = caller.
|
34
26
|
map {|c| Sass::Util.caller_info(c)[2]}.
|
35
27
|
compact.
|
36
28
|
map {|c| c.sub(/^(block|rescue) in /, '')}.
|
37
29
|
find {|c| c =~ /^test_/}
|
38
|
-
end
|
39
|
-
|
40
|
-
def filename_for_test(syntax = :sass)
|
41
30
|
"#{test_name}_inline.#{syntax}"
|
42
31
|
end
|
43
32
|
|
44
|
-
def sourcemap_filename_for_test(syntax = :sass)
|
45
|
-
"#{test_name}_inline.css.map"
|
46
|
-
end
|
47
|
-
|
48
33
|
def clean_up_sassc
|
49
34
|
path = File.dirname(__FILE__) + "/../.sass-cache"
|
50
35
|
FileUtils.rm_r(path) if File.exist?(path)
|
@@ -93,17 +78,3 @@ class MiniTest::Test
|
|
93
78
|
flunk "Expected exception on line #{line}, none raised"
|
94
79
|
end
|
95
80
|
end
|
96
|
-
|
97
|
-
module PublicApiLinter
|
98
|
-
def lint_api(api_class, duck_type_class)
|
99
|
-
define_method :test_lint_instance do
|
100
|
-
assert lint_instance.is_a?(duck_type_class)
|
101
|
-
end
|
102
|
-
api_class.instance_methods.each do |meth|
|
103
|
-
define_method :"test_has_#{meth}" do
|
104
|
-
assert lint_instance.respond_to?(meth),
|
105
|
-
"#{duck_type_class.name} does not implement #{meth}"
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oreorenasass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Nathan Weizenbaum
|
8
8
|
- Chris Eppstein
|
9
9
|
- Hampton Catlin
|
10
10
|
autorequire:
|
@@ -40,20 +40,6 @@ dependencies:
|
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: 0.5.9
|
43
|
-
- !ruby/object:Gem::Dependency
|
44
|
-
name: minitest
|
45
|
-
requirement: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - ">="
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '5'
|
50
|
-
type: :development
|
51
|
-
prerelease: false
|
52
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '5'
|
57
43
|
description: |2
|
58
44
|
Sass makes CSS fun again. Sass is an extension of CSS3, adding
|
59
45
|
nested rules, variables, mixins, selector inheritance, and more.
|
@@ -92,10 +78,6 @@ files:
|
|
92
78
|
- lib/sass/environment.rb
|
93
79
|
- lib/sass/error.rb
|
94
80
|
- lib/sass/exec.rb
|
95
|
-
- lib/sass/exec/base.rb
|
96
|
-
- lib/sass/exec/sass_convert.rb
|
97
|
-
- lib/sass/exec/sass_scss.rb
|
98
|
-
- lib/sass/features.rb
|
99
81
|
- lib/sass/importers.rb
|
100
82
|
- lib/sass/importers/base.rb
|
101
83
|
- lib/sass/importers/filesystem.rb
|
@@ -115,34 +97,26 @@ files:
|
|
115
97
|
- lib/sass/repl.rb
|
116
98
|
- lib/sass/root.rb
|
117
99
|
- lib/sass/script.rb
|
100
|
+
- lib/sass/script/arg_list.rb
|
101
|
+
- lib/sass/script/bool.rb
|
102
|
+
- lib/sass/script/color.rb
|
118
103
|
- lib/sass/script/css_lexer.rb
|
119
104
|
- lib/sass/script/css_parser.rb
|
105
|
+
- lib/sass/script/funcall.rb
|
120
106
|
- lib/sass/script/functions.rb
|
107
|
+
- lib/sass/script/interpolation.rb
|
121
108
|
- lib/sass/script/lexer.rb
|
109
|
+
- lib/sass/script/list.rb
|
110
|
+
- lib/sass/script/literal.rb
|
111
|
+
- lib/sass/script/node.rb
|
112
|
+
- lib/sass/script/null.rb
|
113
|
+
- lib/sass/script/number.rb
|
114
|
+
- lib/sass/script/operation.rb
|
122
115
|
- lib/sass/script/parser.rb
|
123
|
-
- lib/sass/script/
|
124
|
-
- lib/sass/script/
|
125
|
-
- lib/sass/script/
|
126
|
-
- lib/sass/script/
|
127
|
-
- lib/sass/script/tree/literal.rb
|
128
|
-
- lib/sass/script/tree/map_literal.rb
|
129
|
-
- lib/sass/script/tree/node.rb
|
130
|
-
- lib/sass/script/tree/operation.rb
|
131
|
-
- lib/sass/script/tree/selector.rb
|
132
|
-
- lib/sass/script/tree/string_interpolation.rb
|
133
|
-
- lib/sass/script/tree/unary_operation.rb
|
134
|
-
- lib/sass/script/tree/variable.rb
|
135
|
-
- lib/sass/script/value.rb
|
136
|
-
- lib/sass/script/value/arg_list.rb
|
137
|
-
- lib/sass/script/value/base.rb
|
138
|
-
- lib/sass/script/value/bool.rb
|
139
|
-
- lib/sass/script/value/color.rb
|
140
|
-
- lib/sass/script/value/helpers.rb
|
141
|
-
- lib/sass/script/value/list.rb
|
142
|
-
- lib/sass/script/value/map.rb
|
143
|
-
- lib/sass/script/value/null.rb
|
144
|
-
- lib/sass/script/value/number.rb
|
145
|
-
- lib/sass/script/value/string.rb
|
116
|
+
- lib/sass/script/string.rb
|
117
|
+
- lib/sass/script/string_interpolation.rb
|
118
|
+
- lib/sass/script/unary_operation.rb
|
119
|
+
- lib/sass/script/variable.rb
|
146
120
|
- lib/sass/scss.rb
|
147
121
|
- lib/sass/scss/css_parser.rb
|
148
122
|
- lib/sass/scss/parser.rb
|
@@ -153,17 +127,11 @@ files:
|
|
153
127
|
- lib/sass/selector.rb
|
154
128
|
- lib/sass/selector/abstract_sequence.rb
|
155
129
|
- lib/sass/selector/comma_sequence.rb
|
156
|
-
- lib/sass/selector/pseudo.rb
|
157
130
|
- lib/sass/selector/sequence.rb
|
158
131
|
- lib/sass/selector/simple.rb
|
159
132
|
- lib/sass/selector/simple_sequence.rb
|
160
133
|
- lib/sass/shared.rb
|
161
|
-
- lib/sass/source/map.rb
|
162
|
-
- lib/sass/source/position.rb
|
163
|
-
- lib/sass/source/range.rb
|
164
|
-
- lib/sass/stack.rb
|
165
134
|
- lib/sass/supports.rb
|
166
|
-
- lib/sass/tree/at_root_node.rb
|
167
135
|
- lib/sass/tree/charset_node.rb
|
168
136
|
- lib/sass/tree/comment_node.rb
|
169
137
|
- lib/sass/tree/content_node.rb
|
@@ -171,13 +139,11 @@ files:
|
|
171
139
|
- lib/sass/tree/debug_node.rb
|
172
140
|
- lib/sass/tree/directive_node.rb
|
173
141
|
- lib/sass/tree/each_node.rb
|
174
|
-
- lib/sass/tree/error_node.rb
|
175
142
|
- lib/sass/tree/extend_node.rb
|
176
143
|
- lib/sass/tree/for_node.rb
|
177
144
|
- lib/sass/tree/function_node.rb
|
178
145
|
- lib/sass/tree/if_node.rb
|
179
146
|
- lib/sass/tree/import_node.rb
|
180
|
-
- lib/sass/tree/keyframe_rule_node.rb
|
181
147
|
- lib/sass/tree/media_node.rb
|
182
148
|
- lib/sass/tree/mixin_def_node.rb
|
183
149
|
- lib/sass/tree/mixin_node.rb
|
@@ -201,21 +167,18 @@ files:
|
|
201
167
|
- lib/sass/tree/warn_node.rb
|
202
168
|
- lib/sass/tree/while_node.rb
|
203
169
|
- lib/sass/util.rb
|
204
|
-
- lib/sass/util/cross_platform_random.rb
|
205
170
|
- lib/sass/util/multibyte_string_scanner.rb
|
206
|
-
- lib/sass/util/normalized_map.rb
|
207
|
-
- lib/sass/util/ordered_hash.rb
|
208
171
|
- lib/sass/util/subset_map.rb
|
209
172
|
- lib/sass/util/test.rb
|
210
173
|
- lib/sass/version.rb
|
211
174
|
- rails/init.rb
|
175
|
+
- test/Gemfile
|
176
|
+
- test/Gemfile.lock
|
212
177
|
- test/sass/cache_test.rb
|
213
178
|
- test/sass/callbacks_test.rb
|
214
|
-
- test/sass/compiler_test.rb
|
215
179
|
- test/sass/conversion_test.rb
|
216
180
|
- test/sass/css2sass_test.rb
|
217
181
|
- test/sass/data/hsl-rgb.txt
|
218
|
-
- test/sass/encoding_test.rb
|
219
182
|
- test/sass/engine_test.rb
|
220
183
|
- test/sass/exec_test.rb
|
221
184
|
- test/sass/extend_test.rb
|
@@ -266,8 +229,6 @@ files:
|
|
266
229
|
- test/sass/scss/rx_test.rb
|
267
230
|
- test/sass/scss/scss_test.rb
|
268
231
|
- test/sass/scss/test_helper.rb
|
269
|
-
- test/sass/source_map_test.rb
|
270
|
-
- test/sass/superselector_test.rb
|
271
232
|
- test/sass/templates/_cached_import_option_partial.scss
|
272
233
|
- test/sass/templates/_double_import_loop2.sass
|
273
234
|
- test/sass/templates/_filename_fn_import.scss
|
@@ -328,10 +289,8 @@ files:
|
|
328
289
|
- test/sass/templates/warn_imported.sass
|
329
290
|
- test/sass/test_helper.rb
|
330
291
|
- test/sass/util/multibyte_string_scanner_test.rb
|
331
|
-
- test/sass/util/normalized_map_test.rb
|
332
292
|
- test/sass/util/subset_map_test.rb
|
333
293
|
- test/sass/util_test.rb
|
334
|
-
- test/sass/value_helpers_test.rb
|
335
294
|
- test/test_helper.rb
|
336
295
|
homepage: http://sass-lang.com/
|
337
296
|
licenses:
|
@@ -358,13 +317,9 @@ signing_key:
|
|
358
317
|
specification_version: 4
|
359
318
|
summary: A powerful but elegant CSS compiler that makes CSS fun again.
|
360
319
|
test_files:
|
361
|
-
- test/sass/encoding_test.rb
|
362
320
|
- test/sass/exec_test.rb
|
363
321
|
- test/sass/util/subset_map_test.rb
|
364
322
|
- test/sass/util/multibyte_string_scanner_test.rb
|
365
|
-
- test/sass/util/normalized_map_test.rb
|
366
|
-
- test/sass/value_helpers_test.rb
|
367
|
-
- test/sass/superselector_test.rb
|
368
323
|
- test/sass/plugin_test.rb
|
369
324
|
- test/sass/conversion_test.rb
|
370
325
|
- test/sass/script_test.rb
|
@@ -380,7 +335,5 @@ test_files:
|
|
380
335
|
- test/sass/logger_test.rb
|
381
336
|
- test/sass/util_test.rb
|
382
337
|
- test/sass/callbacks_test.rb
|
383
|
-
- test/sass/source_map_test.rb
|
384
338
|
- test/sass/css2sass_test.rb
|
385
|
-
- test/sass/compiler_test.rb
|
386
339
|
has_rdoc: false
|
data/lib/sass/exec/base.rb
DELETED
@@ -1,187 +0,0 @@
|
|
1
|
-
require 'optparse'
|
2
|
-
|
3
|
-
module Sass::Exec
|
4
|
-
# The abstract base class for Sass executables.
|
5
|
-
class Base
|
6
|
-
# @param args [Array<String>] The command-line arguments
|
7
|
-
def initialize(args)
|
8
|
-
@args = args
|
9
|
-
@options = {}
|
10
|
-
end
|
11
|
-
|
12
|
-
# Parses the command-line arguments and runs the executable.
|
13
|
-
# Calls `Kernel#exit` at the end, so it never returns.
|
14
|
-
#
|
15
|
-
# @see #parse
|
16
|
-
def parse!
|
17
|
-
# rubocop:disable RescueException
|
18
|
-
begin
|
19
|
-
parse
|
20
|
-
rescue Exception => e
|
21
|
-
raise e if @options[:trace] || e.is_a?(SystemExit)
|
22
|
-
|
23
|
-
$stderr.print "#{e.class}: " unless e.class == RuntimeError
|
24
|
-
$stderr.puts "#{e.message}"
|
25
|
-
$stderr.puts " Use --trace for backtrace."
|
26
|
-
exit 1
|
27
|
-
end
|
28
|
-
exit 0
|
29
|
-
# rubocop:enable RescueException
|
30
|
-
end
|
31
|
-
|
32
|
-
# Parses the command-line arguments and runs the executable.
|
33
|
-
# This does not handle exceptions or exit the program.
|
34
|
-
#
|
35
|
-
# @see #parse!
|
36
|
-
def parse
|
37
|
-
@opts = OptionParser.new(&method(:set_opts))
|
38
|
-
@opts.parse!(@args)
|
39
|
-
|
40
|
-
process_result
|
41
|
-
|
42
|
-
@options
|
43
|
-
end
|
44
|
-
|
45
|
-
# @return [String] A description of the executable
|
46
|
-
def to_s
|
47
|
-
@opts.to_s
|
48
|
-
end
|
49
|
-
|
50
|
-
protected
|
51
|
-
|
52
|
-
# Finds the line of the source template
|
53
|
-
# on which an exception was raised.
|
54
|
-
#
|
55
|
-
# @param exception [Exception] The exception
|
56
|
-
# @return [String] The line number
|
57
|
-
def get_line(exception)
|
58
|
-
# SyntaxErrors have weird line reporting
|
59
|
-
# when there's trailing whitespace
|
60
|
-
if exception.is_a?(::SyntaxError)
|
61
|
-
return (exception.message.scan(/:(\d+)/).first || ["??"]).first
|
62
|
-
end
|
63
|
-
(exception.backtrace[0].scan(/:(\d+)/).first || ["??"]).first
|
64
|
-
end
|
65
|
-
|
66
|
-
# Tells optparse how to parse the arguments
|
67
|
-
# available for all executables.
|
68
|
-
#
|
69
|
-
# This is meant to be overridden by subclasses
|
70
|
-
# so they can add their own options.
|
71
|
-
#
|
72
|
-
# @param opts [OptionParser]
|
73
|
-
def set_opts(opts)
|
74
|
-
Sass::Util.abstract(this)
|
75
|
-
end
|
76
|
-
|
77
|
-
# Set an option for specifying `Encoding.default_external`.
|
78
|
-
#
|
79
|
-
# @param opts [OptionParser]
|
80
|
-
def encoding_option(opts)
|
81
|
-
encoding_desc = if Sass::Util.ruby1_8?
|
82
|
-
'Does not work in Ruby 1.8.'
|
83
|
-
else
|
84
|
-
'Specify the default encoding for input files.'
|
85
|
-
end
|
86
|
-
opts.on('-E', '--default-encoding ENCODING', encoding_desc) do |encoding|
|
87
|
-
if Sass::Util.ruby1_8?
|
88
|
-
$stderr.puts "Specifying the encoding is not supported in ruby 1.8."
|
89
|
-
exit 1
|
90
|
-
else
|
91
|
-
Encoding.default_external = encoding
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
# Processes the options set by the command-line arguments. In particular,
|
97
|
-
# sets `@options[:input]` and `@options[:output]` to appropriate IO streams.
|
98
|
-
#
|
99
|
-
# This is meant to be overridden by subclasses
|
100
|
-
# so they can run their respective programs.
|
101
|
-
def process_result
|
102
|
-
input, output = @options[:input], @options[:output]
|
103
|
-
args = @args.dup
|
104
|
-
input ||=
|
105
|
-
begin
|
106
|
-
filename = args.shift
|
107
|
-
@options[:filename] = filename
|
108
|
-
open_file(filename) || $stdin
|
109
|
-
end
|
110
|
-
@options[:output_filename] = args.shift
|
111
|
-
output ||= @options[:output_filename] || $stdout
|
112
|
-
@options[:input], @options[:output] = input, output
|
113
|
-
end
|
114
|
-
|
115
|
-
COLORS = {:red => 31, :green => 32, :yellow => 33}
|
116
|
-
|
117
|
-
# Prints a status message about performing the given action,
|
118
|
-
# colored using the given color (via terminal escapes) if possible.
|
119
|
-
#
|
120
|
-
# @param name [#to_s] A short name for the action being performed.
|
121
|
-
# Shouldn't be longer than 11 characters.
|
122
|
-
# @param color [Symbol] The name of the color to use for this action.
|
123
|
-
# Can be `:red`, `:green`, or `:yellow`.
|
124
|
-
def puts_action(name, color, arg)
|
125
|
-
return if @options[:for_engine][:quiet]
|
126
|
-
printf color(color, "%11s %s\n"), name, arg
|
127
|
-
STDOUT.flush
|
128
|
-
end
|
129
|
-
|
130
|
-
# Same as `Kernel.puts`, but doesn't print anything if the `--quiet` option is set.
|
131
|
-
#
|
132
|
-
# @param args [Array] Passed on to `Kernel.puts`
|
133
|
-
def puts(*args)
|
134
|
-
return if @options[:for_engine][:quiet]
|
135
|
-
Kernel.puts(*args)
|
136
|
-
end
|
137
|
-
|
138
|
-
# Wraps the given string in terminal escapes
|
139
|
-
# causing it to have the given color.
|
140
|
-
# If terminal esapes aren't supported on this platform,
|
141
|
-
# just returns the string instead.
|
142
|
-
#
|
143
|
-
# @param color [Symbol] The name of the color to use.
|
144
|
-
# Can be `:red`, `:green`, or `:yellow`.
|
145
|
-
# @param str [String] The string to wrap in the given color.
|
146
|
-
# @return [String] The wrapped string.
|
147
|
-
def color(color, str)
|
148
|
-
raise "[BUG] Unrecognized color #{color}" unless COLORS[color]
|
149
|
-
|
150
|
-
# Almost any real Unix terminal will support color,
|
151
|
-
# so we just filter for Windows terms (which don't set TERM)
|
152
|
-
# and not-real terminals, which aren't ttys.
|
153
|
-
return str if ENV["TERM"].nil? || ENV["TERM"].empty? || !STDOUT.tty?
|
154
|
-
"\e[#{COLORS[color]}m#{str}\e[0m"
|
155
|
-
end
|
156
|
-
|
157
|
-
def write_output(text, destination)
|
158
|
-
if destination.is_a?(String)
|
159
|
-
open_file(destination, 'w') {|file| file.write(text)}
|
160
|
-
else
|
161
|
-
destination.write(text)
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
private
|
166
|
-
|
167
|
-
def open_file(filename, flag = 'r')
|
168
|
-
return if filename.nil?
|
169
|
-
flag = 'wb' if @options[:unix_newlines] && flag == 'w'
|
170
|
-
file = File.open(filename, flag)
|
171
|
-
return file unless block_given?
|
172
|
-
yield file
|
173
|
-
file.close
|
174
|
-
end
|
175
|
-
|
176
|
-
def handle_load_error(err)
|
177
|
-
dep = err.message[/^no such file to load -- (.*)/, 1]
|
178
|
-
raise err if @options[:trace] || dep.nil? || dep.empty?
|
179
|
-
$stderr.puts <<MESSAGE
|
180
|
-
Required dependency #{dep} not found!
|
181
|
-
Run "gem install #{dep}" to get it.
|
182
|
-
Use --trace for backtrace.
|
183
|
-
MESSAGE
|
184
|
-
exit 1
|
185
|
-
end
|
186
|
-
end
|
187
|
-
end
|