oreorenasass 3.4.4 → 3.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +50 -70
  4. data/Rakefile +5 -26
  5. data/VERSION +1 -1
  6. data/VERSION_NAME +1 -1
  7. data/bin/sass +1 -1
  8. data/bin/scss +1 -1
  9. data/lib/sass.rb +12 -19
  10. data/lib/sass/cache_stores/base.rb +2 -2
  11. data/lib/sass/cache_stores/chain.rb +1 -2
  12. data/lib/sass/cache_stores/filesystem.rb +5 -1
  13. data/lib/sass/cache_stores/memory.rb +1 -1
  14. data/lib/sass/cache_stores/null.rb +2 -2
  15. data/lib/sass/callbacks.rb +0 -1
  16. data/lib/sass/css.rb +13 -11
  17. data/lib/sass/engine.rb +173 -424
  18. data/lib/sass/environment.rb +58 -148
  19. data/lib/sass/error.rb +14 -11
  20. data/lib/sass/exec.rb +703 -5
  21. data/lib/sass/importers/base.rb +6 -49
  22. data/lib/sass/importers/filesystem.rb +19 -44
  23. data/lib/sass/logger.rb +4 -1
  24. data/lib/sass/logger/base.rb +4 -2
  25. data/lib/sass/logger/log_level.rb +7 -3
  26. data/lib/sass/media.rb +23 -20
  27. data/lib/sass/plugin.rb +7 -7
  28. data/lib/sass/plugin/compiler.rb +145 -304
  29. data/lib/sass/plugin/configuration.rb +23 -18
  30. data/lib/sass/plugin/merb.rb +1 -1
  31. data/lib/sass/plugin/staleness_checker.rb +3 -3
  32. data/lib/sass/repl.rb +3 -3
  33. data/lib/sass/script.rb +8 -35
  34. data/lib/sass/script/{value/arg_list.rb → arg_list.rb} +25 -9
  35. data/lib/sass/script/bool.rb +18 -0
  36. data/lib/sass/script/color.rb +606 -0
  37. data/lib/sass/script/css_lexer.rb +4 -8
  38. data/lib/sass/script/css_parser.rb +2 -5
  39. data/lib/sass/script/funcall.rb +245 -0
  40. data/lib/sass/script/functions.rb +408 -1491
  41. data/lib/sass/script/interpolation.rb +79 -0
  42. data/lib/sass/script/lexer.rb +68 -172
  43. data/lib/sass/script/list.rb +85 -0
  44. data/lib/sass/script/literal.rb +221 -0
  45. data/lib/sass/script/{tree/node.rb → node.rb} +12 -22
  46. data/lib/sass/script/{value/null.rb → null.rb} +7 -14
  47. data/lib/sass/script/{value/number.rb → number.rb} +75 -152
  48. data/lib/sass/script/{tree/operation.rb → operation.rb} +24 -17
  49. data/lib/sass/script/parser.rb +110 -245
  50. data/lib/sass/script/string.rb +51 -0
  51. data/lib/sass/script/{tree/string_interpolation.rb → string_interpolation.rb} +4 -5
  52. data/lib/sass/script/{tree/unary_operation.rb → unary_operation.rb} +6 -6
  53. data/lib/sass/script/variable.rb +58 -0
  54. data/lib/sass/scss/css_parser.rb +3 -9
  55. data/lib/sass/scss/parser.rb +421 -450
  56. data/lib/sass/scss/rx.rb +11 -19
  57. data/lib/sass/scss/static_parser.rb +7 -321
  58. data/lib/sass/selector.rb +194 -68
  59. data/lib/sass/selector/abstract_sequence.rb +14 -29
  60. data/lib/sass/selector/comma_sequence.rb +25 -108
  61. data/lib/sass/selector/sequence.rb +66 -159
  62. data/lib/sass/selector/simple.rb +25 -23
  63. data/lib/sass/selector/simple_sequence.rb +63 -173
  64. data/lib/sass/shared.rb +1 -1
  65. data/lib/sass/supports.rb +15 -13
  66. data/lib/sass/tree/charset_node.rb +1 -1
  67. data/lib/sass/tree/comment_node.rb +3 -3
  68. data/lib/sass/tree/css_import_node.rb +11 -11
  69. data/lib/sass/tree/debug_node.rb +2 -2
  70. data/lib/sass/tree/directive_node.rb +4 -21
  71. data/lib/sass/tree/each_node.rb +8 -8
  72. data/lib/sass/tree/extend_node.rb +7 -14
  73. data/lib/sass/tree/for_node.rb +4 -4
  74. data/lib/sass/tree/function_node.rb +4 -9
  75. data/lib/sass/tree/if_node.rb +1 -1
  76. data/lib/sass/tree/import_node.rb +5 -4
  77. data/lib/sass/tree/media_node.rb +14 -4
  78. data/lib/sass/tree/mixin_def_node.rb +4 -4
  79. data/lib/sass/tree/mixin_node.rb +8 -21
  80. data/lib/sass/tree/node.rb +12 -54
  81. data/lib/sass/tree/prop_node.rb +20 -39
  82. data/lib/sass/tree/return_node.rb +2 -3
  83. data/lib/sass/tree/root_node.rb +3 -19
  84. data/lib/sass/tree/rule_node.rb +22 -35
  85. data/lib/sass/tree/supports_node.rb +13 -0
  86. data/lib/sass/tree/trace_node.rb +1 -2
  87. data/lib/sass/tree/variable_node.rb +3 -9
  88. data/lib/sass/tree/visitors/base.rb +8 -5
  89. data/lib/sass/tree/visitors/check_nesting.rb +19 -49
  90. data/lib/sass/tree/visitors/convert.rb +56 -74
  91. data/lib/sass/tree/visitors/cssize.rb +74 -202
  92. data/lib/sass/tree/visitors/deep_copy.rb +5 -10
  93. data/lib/sass/tree/visitors/extend.rb +7 -7
  94. data/lib/sass/tree/visitors/perform.rb +185 -278
  95. data/lib/sass/tree/visitors/set_options.rb +6 -20
  96. data/lib/sass/tree/visitors/to_css.rb +81 -234
  97. data/lib/sass/tree/warn_node.rb +2 -2
  98. data/lib/sass/tree/while_node.rb +2 -2
  99. data/lib/sass/util.rb +152 -522
  100. data/lib/sass/util/multibyte_string_scanner.rb +0 -2
  101. data/lib/sass/util/subset_map.rb +3 -4
  102. data/lib/sass/util/test.rb +1 -0
  103. data/lib/sass/version.rb +22 -20
  104. data/test/Gemfile +3 -0
  105. data/test/Gemfile.lock +10 -0
  106. data/test/sass/cache_test.rb +20 -62
  107. data/test/sass/callbacks_test.rb +1 -1
  108. data/test/sass/conversion_test.rb +2 -296
  109. data/test/sass/css2sass_test.rb +4 -23
  110. data/test/sass/engine_test.rb +354 -411
  111. data/test/sass/exec_test.rb +2 -2
  112. data/test/sass/extend_test.rb +145 -324
  113. data/test/sass/functions_test.rb +86 -873
  114. data/test/sass/importer_test.rb +21 -241
  115. data/test/sass/logger_test.rb +1 -1
  116. data/test/sass/more_results/more_import.css +1 -1
  117. data/test/sass/plugin_test.rb +26 -16
  118. data/test/sass/results/compact.css +1 -1
  119. data/test/sass/results/complex.css +4 -4
  120. data/test/sass/results/expanded.css +1 -1
  121. data/test/sass/results/import.css +1 -1
  122. data/test/sass/results/import_charset_ibm866.css +2 -2
  123. data/test/sass/results/mixins.css +17 -17
  124. data/test/sass/results/nested.css +1 -1
  125. data/test/sass/results/parent_ref.css +2 -2
  126. data/test/sass/results/script.css +3 -3
  127. data/test/sass/results/scss_import.css +1 -1
  128. data/test/sass/script_conversion_test.rb +7 -36
  129. data/test/sass/script_test.rb +53 -485
  130. data/test/sass/scss/css_test.rb +28 -143
  131. data/test/sass/scss/rx_test.rb +4 -4
  132. data/test/sass/scss/scss_test.rb +325 -2119
  133. data/test/sass/templates/scss_import.scss +1 -2
  134. data/test/sass/test_helper.rb +1 -1
  135. data/test/sass/util/multibyte_string_scanner_test.rb +1 -1
  136. data/test/sass/util/subset_map_test.rb +2 -2
  137. data/test/sass/util_test.rb +1 -86
  138. data/test/test_helper.rb +8 -37
  139. metadata +19 -66
  140. data/lib/sass/exec/base.rb +0 -187
  141. data/lib/sass/exec/sass_convert.rb +0 -264
  142. data/lib/sass/exec/sass_scss.rb +0 -424
  143. data/lib/sass/features.rb +0 -47
  144. data/lib/sass/script/tree.rb +0 -16
  145. data/lib/sass/script/tree/funcall.rb +0 -306
  146. data/lib/sass/script/tree/interpolation.rb +0 -118
  147. data/lib/sass/script/tree/list_literal.rb +0 -77
  148. data/lib/sass/script/tree/literal.rb +0 -45
  149. data/lib/sass/script/tree/map_literal.rb +0 -64
  150. data/lib/sass/script/tree/selector.rb +0 -26
  151. data/lib/sass/script/tree/variable.rb +0 -57
  152. data/lib/sass/script/value.rb +0 -11
  153. data/lib/sass/script/value/base.rb +0 -240
  154. data/lib/sass/script/value/bool.rb +0 -35
  155. data/lib/sass/script/value/color.rb +0 -680
  156. data/lib/sass/script/value/helpers.rb +0 -262
  157. data/lib/sass/script/value/list.rb +0 -113
  158. data/lib/sass/script/value/map.rb +0 -70
  159. data/lib/sass/script/value/string.rb +0 -97
  160. data/lib/sass/selector/pseudo.rb +0 -256
  161. data/lib/sass/source/map.rb +0 -210
  162. data/lib/sass/source/position.rb +0 -39
  163. data/lib/sass/source/range.rb +0 -41
  164. data/lib/sass/stack.rb +0 -120
  165. data/lib/sass/tree/at_root_node.rb +0 -83
  166. data/lib/sass/tree/error_node.rb +0 -18
  167. data/lib/sass/tree/keyframe_rule_node.rb +0 -15
  168. data/lib/sass/util/cross_platform_random.rb +0 -19
  169. data/lib/sass/util/normalized_map.rb +0 -130
  170. data/lib/sass/util/ordered_hash.rb +0 -192
  171. data/test/sass/compiler_test.rb +0 -232
  172. data/test/sass/encoding_test.rb +0 -219
  173. data/test/sass/source_map_test.rb +0 -977
  174. data/test/sass/superselector_test.rb +0 -191
  175. data/test/sass/util/normalized_map_test.rb +0 -51
  176. data/test/sass/value_helpers_test.rb +0 -179
@@ -3,8 +3,7 @@ $preconst: hello;
3
3
  @mixin premixin {pre-mixin: here}
4
4
 
5
5
  @import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
6
- @import "part\
7
- ial.sass";
6
+ @import "partial.sass";
8
7
 
9
8
  nonimported {
10
9
  myconst: $preconst;
@@ -1,7 +1,7 @@
1
1
  test_dir = File.dirname(__FILE__)
2
2
  $:.unshift test_dir unless $:.include?(test_dir)
3
3
 
4
- class MiniTest::Test
4
+ class Test::Unit::TestCase
5
5
  def absolutize(file)
6
6
  File.expand_path("#{File.dirname(__FILE__)}/#{file}")
7
7
  end
@@ -3,7 +3,7 @@
3
3
  require File.dirname(__FILE__) + '/../../test_helper'
4
4
 
5
5
  unless Sass::Util.ruby1_8?
6
- class MultibyteStringScannerTest < MiniTest::Test
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 < MiniTest::Test
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
- assert_raises(ArgumentError) {@ssm[Set[]] = "Fail"}
47
+ assert_raise(ArgumentError) {@ssm[Set[]] = "Fail"}
48
48
  end
49
49
 
50
50
  def test_empty_key_get
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + '/../test_helper'
3
3
  require 'pathname'
4
4
  require 'tmpdir'
5
5
 
6
- class UtilTest < MiniTest::Test
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 'minitest/autorun'
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::Value::String.new(@options[name.value.to_sym].to_s)
14
+ Sass::Script::String.new(@options[name.value.to_sym].to_s)
22
15
  end
23
16
  end
24
17
 
25
- class MiniTest::Test
18
+ class Test::Unit::TestCase
26
19
  def munge_filename(opts = {})
27
- opts[:filename] ||= filename_for_test(opts[:syntax] || :sass)
28
- opts[:sourcemap_filename] ||= sourcemap_filename_for_test
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 test_name
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
4
+ version: 3.4.5
5
5
  platform: ruby
6
6
  authors:
7
- - Natalie Weizenbaum
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/tree.rb
124
- - lib/sass/script/tree/funcall.rb
125
- - lib/sass/script/tree/interpolation.rb
126
- - lib/sass/script/tree/list_literal.rb
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
@@ -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