sass 3.3.0 → 3.4.0

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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +58 -50
  4. data/Rakefile +1 -4
  5. data/VERSION +1 -1
  6. data/VERSION_DATE +1 -1
  7. data/VERSION_NAME +1 -1
  8. data/bin/sass +1 -1
  9. data/bin/scss +1 -1
  10. data/lib/sass/cache_stores/filesystem.rb +6 -2
  11. data/lib/sass/css.rb +1 -3
  12. data/lib/sass/engine.rb +37 -46
  13. data/lib/sass/environment.rb +13 -17
  14. data/lib/sass/error.rb +6 -9
  15. data/lib/sass/exec/base.rb +187 -0
  16. data/lib/sass/exec/sass_convert.rb +264 -0
  17. data/lib/sass/exec/sass_scss.rb +424 -0
  18. data/lib/sass/exec.rb +5 -771
  19. data/lib/sass/features.rb +7 -0
  20. data/lib/sass/importers/base.rb +7 -2
  21. data/lib/sass/importers/filesystem.rb +9 -25
  22. data/lib/sass/importers.rb +0 -1
  23. data/lib/sass/media.rb +1 -4
  24. data/lib/sass/plugin/compiler.rb +200 -83
  25. data/lib/sass/plugin/staleness_checker.rb +1 -1
  26. data/lib/sass/plugin.rb +3 -3
  27. data/lib/sass/script/css_lexer.rb +1 -1
  28. data/lib/sass/script/functions.rb +622 -268
  29. data/lib/sass/script/lexer.rb +99 -34
  30. data/lib/sass/script/parser.rb +24 -23
  31. data/lib/sass/script/tree/funcall.rb +1 -1
  32. data/lib/sass/script/tree/interpolation.rb +20 -2
  33. data/lib/sass/script/tree/selector.rb +26 -0
  34. data/lib/sass/script/tree/string_interpolation.rb +1 -1
  35. data/lib/sass/script/tree.rb +1 -0
  36. data/lib/sass/script/value/base.rb +7 -5
  37. data/lib/sass/script/value/bool.rb +0 -5
  38. data/lib/sass/script/value/color.rb +39 -21
  39. data/lib/sass/script/value/helpers.rb +107 -0
  40. data/lib/sass/script/value/list.rb +0 -15
  41. data/lib/sass/script/value/null.rb +0 -5
  42. data/lib/sass/script/value/number.rb +62 -14
  43. data/lib/sass/script/value/string.rb +59 -11
  44. data/lib/sass/script/value.rb +0 -1
  45. data/lib/sass/scss/css_parser.rb +8 -2
  46. data/lib/sass/scss/parser.rb +190 -328
  47. data/lib/sass/scss/rx.rb +15 -6
  48. data/lib/sass/scss/static_parser.rb +298 -1
  49. data/lib/sass/selector/abstract_sequence.rb +28 -13
  50. data/lib/sass/selector/comma_sequence.rb +92 -13
  51. data/lib/sass/selector/pseudo.rb +256 -0
  52. data/lib/sass/selector/sequence.rb +94 -24
  53. data/lib/sass/selector/simple.rb +14 -25
  54. data/lib/sass/selector/simple_sequence.rb +97 -33
  55. data/lib/sass/selector.rb +57 -194
  56. data/lib/sass/shared.rb +1 -1
  57. data/lib/sass/source/map.rb +26 -12
  58. data/lib/sass/stack.rb +0 -6
  59. data/lib/sass/supports.rb +2 -3
  60. data/lib/sass/tree/at_root_node.rb +1 -0
  61. data/lib/sass/tree/charset_node.rb +1 -1
  62. data/lib/sass/tree/directive_node.rb +8 -2
  63. data/lib/sass/tree/error_node.rb +18 -0
  64. data/lib/sass/tree/extend_node.rb +1 -1
  65. data/lib/sass/tree/function_node.rb +4 -0
  66. data/lib/sass/tree/keyframe_rule_node.rb +15 -0
  67. data/lib/sass/tree/prop_node.rb +1 -1
  68. data/lib/sass/tree/rule_node.rb +12 -7
  69. data/lib/sass/tree/visitors/check_nesting.rb +38 -10
  70. data/lib/sass/tree/visitors/convert.rb +16 -18
  71. data/lib/sass/tree/visitors/cssize.rb +29 -29
  72. data/lib/sass/tree/visitors/deep_copy.rb +5 -0
  73. data/lib/sass/tree/visitors/perform.rb +45 -33
  74. data/lib/sass/tree/visitors/set_options.rb +14 -0
  75. data/lib/sass/tree/visitors/to_css.rb +15 -14
  76. data/lib/sass/util/subset_map.rb +1 -1
  77. data/lib/sass/util.rb +222 -99
  78. data/lib/sass/version.rb +5 -5
  79. data/lib/sass.rb +0 -5
  80. data/test/sass/cache_test.rb +62 -20
  81. data/test/sass/callbacks_test.rb +1 -1
  82. data/test/sass/compiler_test.rb +19 -10
  83. data/test/sass/conversion_test.rb +58 -1
  84. data/test/sass/css2sass_test.rb +23 -4
  85. data/test/sass/encoding_test.rb +219 -0
  86. data/test/sass/engine_test.rb +136 -199
  87. data/test/sass/exec_test.rb +2 -2
  88. data/test/sass/extend_test.rb +236 -19
  89. data/test/sass/functions_test.rb +295 -253
  90. data/test/sass/importer_test.rb +31 -21
  91. data/test/sass/logger_test.rb +1 -1
  92. data/test/sass/more_results/more_import.css +1 -1
  93. data/test/sass/plugin_test.rb +14 -13
  94. data/test/sass/results/compact.css +1 -1
  95. data/test/sass/results/complex.css +4 -4
  96. data/test/sass/results/expanded.css +1 -1
  97. data/test/sass/results/import.css +1 -1
  98. data/test/sass/results/import_charset_ibm866.css +2 -2
  99. data/test/sass/results/mixins.css +17 -17
  100. data/test/sass/results/nested.css +1 -1
  101. data/test/sass/results/parent_ref.css +2 -2
  102. data/test/sass/results/script.css +3 -3
  103. data/test/sass/results/scss_import.css +1 -1
  104. data/test/sass/script_conversion_test.rb +10 -7
  105. data/test/sass/script_test.rb +288 -74
  106. data/test/sass/scss/css_test.rb +141 -24
  107. data/test/sass/scss/rx_test.rb +4 -4
  108. data/test/sass/scss/scss_test.rb +457 -18
  109. data/test/sass/source_map_test.rb +115 -25
  110. data/test/sass/superselector_test.rb +191 -0
  111. data/test/sass/templates/scss_import.scss +2 -1
  112. data/test/sass/test_helper.rb +1 -1
  113. data/test/sass/util/multibyte_string_scanner_test.rb +1 -1
  114. data/test/sass/util/normalized_map_test.rb +1 -1
  115. data/test/sass/util/subset_map_test.rb +2 -2
  116. data/test/sass/util_test.rb +31 -1
  117. data/test/sass/value_helpers_test.rb +5 -7
  118. data/test/test_helper.rb +2 -2
  119. data/vendor/listen/CHANGELOG.md +1 -228
  120. data/vendor/listen/Gemfile +5 -15
  121. data/vendor/listen/README.md +111 -77
  122. data/vendor/listen/Rakefile +0 -42
  123. data/vendor/listen/lib/listen/adapter.rb +195 -82
  124. data/vendor/listen/lib/listen/adapters/bsd.rb +27 -64
  125. data/vendor/listen/lib/listen/adapters/darwin.rb +21 -58
  126. data/vendor/listen/lib/listen/adapters/linux.rb +23 -55
  127. data/vendor/listen/lib/listen/adapters/polling.rb +25 -34
  128. data/vendor/listen/lib/listen/adapters/windows.rb +50 -46
  129. data/vendor/listen/lib/listen/directory_record.rb +96 -61
  130. data/vendor/listen/lib/listen/listener.rb +135 -37
  131. data/vendor/listen/lib/listen/turnstile.rb +9 -5
  132. data/vendor/listen/lib/listen/version.rb +1 -1
  133. data/vendor/listen/lib/listen.rb +33 -19
  134. data/vendor/listen/listen.gemspec +6 -0
  135. data/vendor/listen/spec/listen/adapter_spec.rb +43 -77
  136. data/vendor/listen/spec/listen/adapters/polling_spec.rb +8 -8
  137. data/vendor/listen/spec/listen/directory_record_spec.rb +81 -56
  138. data/vendor/listen/spec/listen/listener_spec.rb +128 -39
  139. data/vendor/listen/spec/listen_spec.rb +15 -21
  140. data/vendor/listen/spec/spec_helper.rb +4 -0
  141. data/vendor/listen/spec/support/adapter_helper.rb +52 -15
  142. data/vendor/listen/spec/support/directory_record_helper.rb +7 -5
  143. data/vendor/listen/spec/support/listeners_helper.rb +30 -7
  144. metadata +25 -22
  145. data/ext/mkrf_conf.rb +0 -27
  146. data/lib/sass/importers/deprecated_path.rb +0 -51
  147. data/lib/sass/script/value/deprecated_false.rb +0 -55
  148. data/vendor/listen/lib/listen/dependency_manager.rb +0 -126
  149. data/vendor/listen/lib/listen/multi_listener.rb +0 -143
  150. data/vendor/listen/spec/listen/dependency_manager_spec.rb +0 -107
  151. data/vendor/listen/spec/listen/multi_listener_spec.rb +0 -174
@@ -4,13 +4,24 @@
4
4
  # @param [String] path the path to watch
5
5
  #
6
6
  def watch(listener, expected_changes, *paths)
7
- callback = lambda { |changed_dirs, options| @called = true; listener.on_change(changed_dirs) }
8
- @adapter = Listen::Adapter.select_and_initialize(paths, { :report_changes => false, :latency => test_latency }, &callback)
7
+ sleep 0.05 # allow file/creation to be done (!)
8
+
9
+ callback = lambda do |changed_directories, options|
10
+ @called = true
11
+ listener.on_change(changed_directories)
12
+ end
13
+ @adapter = Listen::Adapter.select_and_initialize(paths, { :latency => test_latency }, &callback)
14
+ @adapter.stub(:start_poller) { nil }
9
15
 
10
16
  forced_stop = false
11
- prevent_deadlock = Proc.new { sleep(10); puts "Forcing stop"; @adapter.stop; forced_stop = true }
17
+ prevent_deadlock = lambda do
18
+ sleep(10)
19
+ puts 'Forcing stop'
20
+ @adapter.stop
21
+ forced_stop = true
22
+ end
12
23
 
13
- @adapter.start(false)
24
+ @adapter.start
14
25
 
15
26
  yield
16
27
 
@@ -32,25 +43,51 @@ shared_examples_for 'a filesystem adapter' do
32
43
  subject { described_class.new(File.dirname(__FILE__), &Proc.new {}) }
33
44
 
34
45
  describe '#start' do
46
+ before { Kernel.stub(:warn) }
35
47
  after { subject.stop }
36
48
 
37
- context 'with the blocking param set to true' do
38
- it 'blocks the current thread after starting the workers' do
49
+ it 'do not block the current thread after starting the workers' do
50
+ @called = false
51
+ t = Thread.new { subject.start; @called = true }
52
+ sleep(test_latency * 3)
53
+ Thread.kill(t) if t
54
+ @called.should be_true
55
+ end
56
+
57
+ context 'with the blocking hash option set to false' do
58
+ subject { described_class.new(File.dirname(__FILE__), { :blocking => false }, &Proc.new {}) }
59
+
60
+ it 'does not block the current thread after starting the workers' do
39
61
  @called = false
40
- t = Thread.new { subject.start(true); @called = true }
62
+ t = Thread.new { subject.start; @called = true }
41
63
  sleep(test_latency * 3)
42
64
  Thread.kill(t) if t
43
- @called.should be_false
65
+ @called.should be_true
44
66
  end
45
67
  end
68
+ end
46
69
 
47
- context 'with the blocking param set to false' do
48
- it 'does not block the current thread after starting the workers' do
70
+ describe '#start!' do
71
+ before { Kernel.stub(:warn) }
72
+ after { subject.stop }
73
+
74
+ it 'blocks the current thread after starting the workers' do
75
+ @called = false
76
+ t = Thread.new { subject.start!; @called = true }
77
+ sleep(test_latency * 3)
78
+ Thread.kill(t) if t
79
+ @called.should be_false
80
+ end
81
+
82
+ context 'with the blocking hash option set to false' do
83
+ subject { described_class.new(File.dirname(__FILE__), { :blocking => true }, &Proc.new {}) }
84
+
85
+ it 'blocks the current thread after starting the workers' do
49
86
  @called = false
50
- t = Thread.new { subject.start(false); @called = true }
87
+ t = Thread.new { subject.start!; @called = true }
51
88
  sleep(test_latency * 3)
52
89
  Thread.kill(t) if t
53
- @called.should be_true
90
+ @called.should be_false
54
91
  end
55
92
  end
56
93
  end
@@ -63,7 +100,7 @@ shared_examples_for 'a filesystem adapter' do
63
100
  end
64
101
 
65
102
  context 'with a stopped adapter' do
66
- before { subject.start(false); subject.stop }
103
+ before { subject.start; subject.stop }
67
104
 
68
105
  it 'returns false' do
69
106
  subject.should_not be_started
@@ -71,7 +108,7 @@ shared_examples_for 'a filesystem adapter' do
71
108
  end
72
109
 
73
110
  context 'with a started adapter' do
74
- before { subject.start(false) }
111
+ before { subject.start }
75
112
  after { subject.stop }
76
113
 
77
114
  it 'returns true' do
@@ -83,7 +120,7 @@ end
83
120
 
84
121
  shared_examples_for 'an adapter that call properly listener#on_change' do |*args|
85
122
  options = (args.first && args.first.is_a?(Hash)) ? args.first : {}
86
- let(:listener) { mock(Listen::Listener) }
123
+ let(:listener) { double(Listen::Listener) }
87
124
  before { described_class.stub(:works?) { true } }
88
125
 
89
126
  context 'single file operations' do
@@ -24,7 +24,7 @@ def changes(root_path, options = {})
24
24
  paths = options.delete(:paths) || [root_path]
25
25
  options[:recursive] = true if options[:recursive].nil?
26
26
 
27
- changes = @record.fetch_changes(paths, {:relative_paths => true}.merge(options))
27
+ changes = @record.fetch_changes(paths, { :relative_paths => true }.merge(options))
28
28
 
29
29
  [changes[:modified], changes[:added], changes[:removed]]
30
30
  end
@@ -32,14 +32,15 @@ end
32
32
  # Generates a small time difference before performing a time sensitive
33
33
  # task (like comparing mtimes of files).
34
34
  #
35
- # @note Modification time for files only includes the milliseconds on Linux with MRI > 1.9.2,
35
+ # @note Modification time for files only includes the milliseconds on Linux with MRI > 1.9.2
36
+ # and platform that support it (OS X 10.8 not included),
36
37
  # that's why we generate a difference that's greater than 1 second.
37
38
  #
38
39
  def small_time_difference
39
40
  t = Time.now
40
41
  diff = t.to_f - t.to_i
41
42
 
42
- sleep( 1.5 - (diff < 0.5 ? diff : 0.4) )
43
+ sleep(1.05 - diff)
43
44
  end
44
45
 
45
46
  # Ensures that the test runs at almost the same second at which
@@ -49,7 +50,8 @@ def ensure_same_second
49
50
  t = Time.now
50
51
  diff = t.to_f - t.to_i
51
52
 
52
- if diff > 0.1 # We are not at the beginning of a second
53
- sleep 1.1 - diff # 1.1 is used instead of 1 to account for the processing time (estimated at 0.1 sec)
53
+ # We are not at the end of a second
54
+ if diff >= (1 - Listen::Adapter::DEFAULT_LATENCY)
55
+ sleep(1.05 - diff)
54
56
  end
55
57
  end
@@ -9,14 +9,37 @@ shared_examples_for 'a listener to changes on a file-system' do
9
9
  subject.start
10
10
  end
11
11
 
12
- context 'with the blocking param set to false' do
13
- it 'passes the blocking param to the adapter' do
14
- adapter.should_receive(:start).with(false)
12
+ context 'with the blocking deprecated param set to true' do
13
+ it 'displays a deprecation notice' do
14
+ Kernel.should_receive(:warn).with(/#{Listen::Listener::BLOCKING_PARAMETER_DEPRECATION_MESSAGE}/)
15
+ subject.start(true)
16
+ end
17
+ end
18
+
19
+ context 'with the blocking deprecated param set to false' do
20
+ it 'displays a deprecation notice' do
21
+ Kernel.should_receive(:warn).with(/#{Listen::Listener::BLOCKING_PARAMETER_DEPRECATION_MESSAGE}/)
15
22
  subject.start(false)
16
23
  end
17
24
  end
18
25
  end
19
26
 
27
+ describe '#start!' do
28
+ before do
29
+ subject.stub(:initialize_adapter) { adapter }
30
+ end
31
+
32
+ it 'starts the adapter' do
33
+ adapter.should_receive(:start!)
34
+ subject.start!
35
+ end
36
+
37
+ it 'passes the blocking param to the adapter' do
38
+ adapter.should_receive(:start!)
39
+ subject.start!
40
+ end
41
+ end
42
+
20
43
  context 'with a started listener' do
21
44
  before do
22
45
  subject.start
@@ -31,7 +54,7 @@ shared_examples_for 'a listener to changes on a file-system' do
31
54
 
32
55
  describe '#pause' do
33
56
  it 'sets adapter.paused to true' do
34
- adapter.should_receive(:paused=).with(true)
57
+ adapter.should_receive(:pause)
35
58
  subject.pause
36
59
  end
37
60
 
@@ -42,7 +65,7 @@ shared_examples_for 'a listener to changes on a file-system' do
42
65
 
43
66
  describe '#unpause' do
44
67
  it 'sets adapter.paused to false' do
45
- adapter.should_receive(:paused=).with(false)
68
+ adapter.should_receive(:unpause)
46
69
  subject.unpause
47
70
  end
48
71
 
@@ -58,12 +81,12 @@ shared_examples_for 'a listener to changes on a file-system' do
58
81
  end
59
82
 
60
83
  it 'returns true when adapter is paused' do
61
- adapter.should_receive(:paused) { true }
84
+ adapter.should_receive(:paused?) { true }
62
85
  subject.should be_paused
63
86
  end
64
87
 
65
88
  it 'returns false when adapter is not paused' do
66
- adapter.should_receive(:paused) { false }
89
+ adapter.should_receive(:paused?) { false }
67
90
  subject.should_not be_paused
68
91
  end
69
92
  end
metadata CHANGED
@@ -1,59 +1,59 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sass
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
- - Nathan Weizenbaum
7
+ - Natalie Weizenbaum
8
8
  - Chris Eppstein
9
9
  - Hampton Catlin
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-03-08 00:00:00.000000000 Z
13
+ date: 2014-08-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: rake
16
+ name: yard
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - '>='
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
21
+ version: 0.5.3
22
+ type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '>='
27
27
  - !ruby/object:Gem::Version
28
- version: '0'
28
+ version: 0.5.3
29
29
  - !ruby/object:Gem::Dependency
30
- name: yard
30
+ name: maruku
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - '>='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.5.3
35
+ version: 0.5.9
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '>='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.5.3
42
+ version: 0.5.9
43
43
  - !ruby/object:Gem::Dependency
44
- name: maruku
44
+ name: minitest
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - '>='
48
48
  - !ruby/object:Gem::Version
49
- version: 0.5.9
49
+ version: '5'
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - '>='
55
55
  - !ruby/object:Gem::Version
56
- version: 0.5.9
56
+ version: '5'
57
57
  description: |2
58
58
  Sass makes CSS fun again. Sass is an extension of CSS3, adding
59
59
  nested rules, variables, mixins, selector inheritance, and more.
@@ -64,8 +64,7 @@ executables:
64
64
  - sass
65
65
  - sass-convert
66
66
  - scss
67
- extensions:
68
- - ext/mkrf_conf.rb
67
+ extensions: []
69
68
  extra_rdoc_files: []
70
69
  files:
71
70
  - rails/init.rb
@@ -94,6 +93,7 @@ files:
94
93
  - lib/sass/tree/trace_node.rb
95
94
  - lib/sass/tree/return_node.rb
96
95
  - lib/sass/tree/root_node.rb
96
+ - lib/sass/tree/keyframe_rule_node.rb
97
97
  - lib/sass/tree/if_node.rb
98
98
  - lib/sass/tree/charset_node.rb
99
99
  - lib/sass/tree/css_import_node.rb
@@ -107,6 +107,7 @@ files:
107
107
  - lib/sass/tree/at_root_node.rb
108
108
  - lib/sass/tree/node.rb
109
109
  - lib/sass/tree/mixin_node.rb
110
+ - lib/sass/tree/error_node.rb
110
111
  - lib/sass/tree/extend_node.rb
111
112
  - lib/sass/tree/mixin_def_node.rb
112
113
  - lib/sass/tree/supports_node.rb
@@ -126,6 +127,9 @@ files:
126
127
  - lib/sass/tree/prop_node.rb
127
128
  - lib/sass/tree/variable_node.rb
128
129
  - lib/sass/engine.rb
130
+ - lib/sass/exec/sass_scss.rb
131
+ - lib/sass/exec/base.rb
132
+ - lib/sass/exec/sass_convert.rb
129
133
  - lib/sass/plugin.rb
130
134
  - lib/sass/root.rb
131
135
  - lib/sass/features.rb
@@ -153,7 +157,6 @@ files:
153
157
  - lib/sass/script.rb
154
158
  - lib/sass/util.rb
155
159
  - lib/sass/importers/filesystem.rb
156
- - lib/sass/importers/deprecated_path.rb
157
160
  - lib/sass/importers/base.rb
158
161
  - lib/sass/script/parser.rb
159
162
  - lib/sass/script/functions.rb
@@ -166,6 +169,7 @@ files:
166
169
  - lib/sass/script/tree/list_literal.rb
167
170
  - lib/sass/script/tree/node.rb
168
171
  - lib/sass/script/tree/unary_operation.rb
172
+ - lib/sass/script/tree/selector.rb
169
173
  - lib/sass/script/tree/map_literal.rb
170
174
  - lib/sass/script/tree.rb
171
175
  - lib/sass/script/lexer.rb
@@ -174,7 +178,6 @@ files:
174
178
  - lib/sass/script/value/color.rb
175
179
  - lib/sass/script/value/number.rb
176
180
  - lib/sass/script/value/map.rb
177
- - lib/sass/script/value/deprecated_false.rb
178
181
  - lib/sass/script/value/arg_list.rb
179
182
  - lib/sass/script/value/bool.rb
180
183
  - lib/sass/script/value/list.rb
@@ -186,6 +189,7 @@ files:
186
189
  - lib/sass/selector.rb
187
190
  - lib/sass/callbacks.rb
188
191
  - lib/sass/selector/simple.rb
192
+ - lib/sass/selector/pseudo.rb
189
193
  - lib/sass/selector/sequence.rb
190
194
  - lib/sass/selector/abstract_sequence.rb
191
195
  - lib/sass/selector/comma_sequence.rb
@@ -200,8 +204,6 @@ files:
200
204
  - vendor/listen/lib/listen/turnstile.rb
201
205
  - vendor/listen/lib/listen/directory_record.rb
202
206
  - vendor/listen/lib/listen/version.rb
203
- - vendor/listen/lib/listen/dependency_manager.rb
204
- - vendor/listen/lib/listen/multi_listener.rb
205
207
  - vendor/listen/lib/listen/listener.rb
206
208
  - vendor/listen/lib/listen/adapters/polling.rb
207
209
  - vendor/listen/lib/listen/adapters/darwin.rb
@@ -215,7 +217,6 @@ files:
215
217
  - vendor/listen/LICENSE
216
218
  - vendor/listen/listen.gemspec
217
219
  - vendor/listen/Vagrantfile
218
- - vendor/listen/spec/listen/dependency_manager_spec.rb
219
220
  - vendor/listen/spec/listen/directory_record_spec.rb
220
221
  - vendor/listen/spec/listen/adapters/linux_spec.rb
221
222
  - vendor/listen/spec/listen/adapters/darwin_spec.rb
@@ -225,7 +226,6 @@ files:
225
226
  - vendor/listen/spec/listen/turnstile_spec.rb
226
227
  - vendor/listen/spec/listen/adapter_spec.rb
227
228
  - vendor/listen/spec/listen/listener_spec.rb
228
- - vendor/listen/spec/listen/multi_listener_spec.rb
229
229
  - vendor/listen/spec/listen_spec.rb
230
230
  - vendor/listen/spec/spec_helper.rb
231
231
  - vendor/listen/spec/support/directory_record_helper.rb
@@ -351,6 +351,8 @@ files:
351
351
  - test/sass/more_templates/more_import.sass
352
352
  - test/sass/more_templates/more1.sass
353
353
  - test/sass/script_conversion_test.rb
354
+ - test/sass/superselector_test.rb
355
+ - test/sass/encoding_test.rb
354
356
  - test/sass/more_results/more1.css
355
357
  - test/sass/more_results/more1_with_line_comments.css
356
358
  - test/sass/more_results/more_import.css
@@ -369,7 +371,6 @@ files:
369
371
  - MIT-LICENSE
370
372
  - VERSION
371
373
  - CONTRIBUTING
372
- - ext/mkrf_conf.rb
373
374
  homepage: http://sass-lang.com/
374
375
  licenses:
375
376
  - MIT
@@ -415,6 +416,8 @@ test_files:
415
416
  - test/sass/scss/rx_test.rb
416
417
  - test/sass/util_test.rb
417
418
  - test/sass/script_conversion_test.rb
419
+ - test/sass/superselector_test.rb
420
+ - test/sass/encoding_test.rb
418
421
  - test/sass/cache_test.rb
419
422
  - test/sass/source_map_test.rb
420
423
  - test/sass/plugin_test.rb
data/ext/mkrf_conf.rb DELETED
@@ -1,27 +0,0 @@
1
- require 'rubygems'
2
- require 'rubygems/command.rb'
3
- require 'rubygems/dependency_installer.rb'
4
-
5
- require '../lib/sass'
6
-
7
- # This script installs the correct version of listen. Listen versions
8
- # beyond 1.1 don't support Ruby 1.8, any RubyGems isn't clever enough
9
- # to install the most recent version that works, so we have to do it
10
- # manually.
11
-
12
- puts "Ensuring you have the right version of listen installed."
13
-
14
- Gem::Command.build_args = ARGV
15
- inst = Gem::DependencyInstaller.new
16
- if Sass::Util.version_geq(RUBY_VERSION, "1.9.3")
17
- puts "Installing listen >= 1.1.0, < 3.0.0"
18
- inst.install "listen", Gem::Requirement.new(">= 1.1.0", "< 3.0.0")
19
- else
20
- puts "Installing listen ~> 1.1.0"
21
- inst.install "listen", "~> 1.1.0"
22
- end
23
-
24
- # Create a dummy rakefile to indicate success.
25
- f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w")
26
- f.write("task :default\n")
27
- f.close
@@ -1,51 +0,0 @@
1
- module Sass
2
- module Importers
3
- # This importer emits a deprecation warning the first time it is used to
4
- # import a file. It is used to deprecate the current working
5
- # directory from the list of automatic sass load paths.
6
- class DeprecatedPath < Filesystem
7
- # @param root [String] The absolute, expanded path to the folder that is deprecated.
8
- def initialize(root)
9
- @specified_root = root
10
- @warning_given = false
11
- super
12
- end
13
-
14
- # @see Sass::Importers::Base#find
15
- def find(*args)
16
- found = super
17
- if found && !@warning_given
18
- @warning_given = true
19
- Sass::Util.sass_warn deprecation_warning
20
- end
21
- found
22
- end
23
-
24
- # @see Base#directories_to_watch
25
- def directories_to_watch
26
- # The current working directory was not watched in Sass 3.2,
27
- # so we continue not to watch it while it's deprecated.
28
- []
29
- end
30
-
31
- # @see Sass::Importers::Base#to_s
32
- def to_s
33
- "#{@root} (DEPRECATED)"
34
- end
35
-
36
- protected
37
-
38
- # @return [String] The deprecation warning that will be printed the first
39
- # time an import occurs.
40
- def deprecation_warning
41
- path = @specified_root == "." ? "the current working directory" : @specified_root
42
- <<WARNING
43
- DEPRECATION WARNING: Importing from #{path} will not be
44
- automatic in future versions of Sass. To avoid future errors, you can add it
45
- to your environment explicitly by setting `SASS_PATH=#{@specified_root}`, by using the -I command
46
- line option, or by changing your Sass configuration options.
47
- WARNING
48
- end
49
- end
50
- end
51
- end
@@ -1,55 +0,0 @@
1
- module Sass::Script::Value
2
- # A SassScript object representing a `false` value that came from a call to
3
- # `index()`. It will print deprecation warnings if it's used with `==`.
4
- class DeprecatedFalse < Bool
5
- def self.new(environment)
6
- obj = allocate
7
- obj.send(:initialize, environment)
8
- obj
9
- end
10
-
11
- def initialize(environment)
12
- @value = false
13
- @global_env = environment.global_env
14
- if (frame = environment.stack.frames.last)
15
- @filename = frame.filename
16
- @line = frame.line
17
- end
18
- end
19
-
20
- def eq(other)
21
- if other.value == false && !warned?
22
- self.warned = true
23
- Sass::Util.sass_warn <<WARNING + @global_env.stack.to_s.gsub(/^/, ' ')
24
- DEPRECATION WARNING: The return value of index() will change from "false" to
25
- "null" in future versions of Sass. For compatibility, avoid using "== false" on
26
- the return value. For example, instead of "@if index(...) == false", just write
27
- "@if index(...)".
28
- WARNING
29
- end
30
- Bool.new(other.value == false)
31
- end
32
-
33
- def neq(other)
34
- if other.value.nil? && !warned?
35
- self.warned = true
36
- Sass::Util.sass_warn <<WARNING + @global_env.stack.to_s.gsub(/^/, ' ')
37
- DEPRECATION WARNING: The return value of index() will change from "false" to
38
- "null" in future versions of Sass. For compatibility, avoid using "!= null" on
39
- the return value.
40
- WARNING
41
- end
42
- Bool.new(other.value != false)
43
- end
44
-
45
- private
46
-
47
- def warned?
48
- @global_env.deprecated_false_warning_given.include?([@filename, @line])
49
- end
50
-
51
- def warned=(value)
52
- @global_env.deprecated_false_warning_given << [@filename, @line]
53
- end
54
- end
55
- end
@@ -1,126 +0,0 @@
1
- require 'set'
2
-
3
- module Listen
4
-
5
- # The dependency-manager offers a simple DSL which allows
6
- # classes to declare their gem dependencies and load them when
7
- # needed.
8
- # It raises a user-friendly exception when the dependencies
9
- # can't be loaded which has the install command in the message.
10
- #
11
- module DependencyManager
12
-
13
- GEM_LOAD_MESSAGE = <<-EOS.gsub(/^ {6}/, '')
14
- Missing dependency '%s' (version '%s')!
15
- EOS
16
-
17
- GEM_INSTALL_COMMAND = <<-EOS.gsub(/^ {6}/, '')
18
- Please run the following to satisfy the dependency:
19
- gem install --version '%s' %s
20
- EOS
21
-
22
- BUNDLER_DECLARE_GEM = <<-EOS.gsub(/^ {6}/, '')
23
- Please add the following to your Gemfile to satisfy the dependency:
24
- gem '%s', '%s'
25
- EOS
26
-
27
- Dependency = Struct.new(:name, :version)
28
-
29
- # The error raised when a dependency can't be loaded.
30
- class Error < StandardError; end
31
-
32
- # A list of all loaded dependencies in the dependency manager.
33
- @_loaded_dependencies = Set.new
34
-
35
- # class methods
36
- class << self
37
-
38
- # Initializes the extended class.
39
- #
40
- # @param [Class] the class for which some dependencies must be managed
41
- #
42
- def extended(base)
43
- base.class_eval do
44
- @_dependencies = Set.new
45
- end
46
- end
47
-
48
- # Adds a loaded dependency to a list so that it doesn't have
49
- # to be loaded again by another classes.
50
- #
51
- # @param [Dependency] dependency
52
- #
53
- def add_loaded(dependency)
54
- @_loaded_dependencies << dependency
55
- end
56
-
57
- # Returns whether the dependency is alread loaded or not.
58
- #
59
- # @param [Dependency] dependency
60
- # @return [Boolean]
61
- #
62
- def already_loaded?(dependency)
63
- @_loaded_dependencies.include?(dependency)
64
- end
65
-
66
- # Clears the list of loaded dependencies.
67
- #
68
- def clear_loaded
69
- @_loaded_dependencies.clear
70
- end
71
- end
72
-
73
- # Registers a new dependency.
74
- #
75
- # @param [String] name the name of the gem
76
- # @param [String] version the version of the gem
77
- #
78
- def dependency(name, version)
79
- @_dependencies << Dependency.new(name, version)
80
- end
81
-
82
- # Loads the registered dependencies.
83
- #
84
- # @raise DependencyManager::Error if the dependency can't be loaded.
85
- #
86
- def load_depenencies
87
- @_dependencies.each do |dependency|
88
- begin
89
- next if DependencyManager.already_loaded?(dependency)
90
- gem(dependency.name, dependency.version)
91
- require(dependency.name)
92
- DependencyManager.add_loaded(dependency)
93
- @_dependencies.delete(dependency)
94
- rescue Gem::LoadError
95
- args = [dependency.name, dependency.version]
96
- command = if running_under_bundler?
97
- BUNDLER_DECLARE_GEM % args
98
- else
99
- GEM_INSTALL_COMMAND % args.reverse
100
- end
101
- message = GEM_LOAD_MESSAGE % args
102
-
103
- raise Error.new(message + command)
104
- end
105
- end
106
- end
107
-
108
- # Returns whether all the dependencies has been loaded or not.
109
- #
110
- # @return [Boolean]
111
- #
112
- def dependencies_loaded?
113
- @_dependencies.empty?
114
- end
115
-
116
- private
117
-
118
- # Returns whether we are running under bundler or not
119
- #
120
- # @return [Boolean]
121
- #
122
- def running_under_bundler?
123
- !!(File.exists?('Gemfile') && ENV['BUNDLE_GEMFILE'])
124
- end
125
- end
126
- end