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.
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