sass 3.1.21 → 3.2.0.alpha.3

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 (180) hide show
  1. data/README.md +5 -4
  2. data/REVISION +1 -1
  3. data/Rakefile +6 -15
  4. data/VERSION +1 -1
  5. data/VERSION_NAME +1 -1
  6. data/lib/sass.rb +0 -1
  7. data/lib/sass/cache_stores/base.rb +1 -3
  8. data/lib/sass/cache_stores/filesystem.rb +0 -3
  9. data/lib/sass/css.rb +49 -145
  10. data/lib/sass/engine.rb +23 -47
  11. data/lib/sass/environment.rb +5 -30
  12. data/lib/sass/exec.rb +7 -30
  13. data/lib/sass/importers/base.rb +1 -2
  14. data/lib/sass/importers/filesystem.rb +13 -18
  15. data/lib/sass/less.rb +1 -1
  16. data/lib/sass/plugin.rb +8 -4
  17. data/lib/sass/plugin/compiler.rb +67 -93
  18. data/lib/sass/plugin/configuration.rb +2 -0
  19. data/lib/sass/plugin/staleness_checker.rb +4 -14
  20. data/lib/sass/repl.rb +3 -2
  21. data/lib/sass/script.rb +1 -0
  22. data/lib/sass/script/color.rb +9 -4
  23. data/lib/sass/script/funcall.rb +3 -16
  24. data/lib/sass/script/functions.rb +55 -98
  25. data/lib/sass/script/interpolation.rb +0 -9
  26. data/lib/sass/script/lexer.rb +4 -2
  27. data/lib/sass/script/list.rb +0 -8
  28. data/lib/sass/script/literal.rb +20 -5
  29. data/lib/sass/script/node.rb +0 -8
  30. data/lib/sass/script/number.rb +11 -35
  31. data/lib/sass/script/operation.rb +0 -16
  32. data/lib/sass/script/parser.rb +5 -12
  33. data/lib/sass/script/string_interpolation.rb +0 -9
  34. data/lib/sass/script/unary_operation.rb +0 -7
  35. data/lib/sass/script/variable.rb +1 -5
  36. data/lib/sass/scss/parser.rb +54 -191
  37. data/lib/sass/scss/rx.rb +3 -15
  38. data/lib/sass/scss/static_parser.rb +3 -3
  39. data/lib/sass/selector.rb +3 -15
  40. data/lib/sass/selector/abstract_sequence.rb +2 -11
  41. data/lib/sass/selector/comma_sequence.rb +3 -8
  42. data/lib/sass/selector/sequence.rb +11 -74
  43. data/lib/sass/selector/simple.rb +1 -7
  44. data/lib/sass/selector/simple_sequence.rb +8 -28
  45. data/lib/sass/shared.rb +5 -3
  46. data/lib/sass/tree/comment_node.rb +12 -25
  47. data/lib/sass/tree/debug_node.rb +1 -1
  48. data/lib/sass/tree/directive_node.rb +0 -5
  49. data/lib/sass/tree/each_node.rb +1 -1
  50. data/lib/sass/tree/extend_node.rb +1 -1
  51. data/lib/sass/tree/for_node.rb +2 -2
  52. data/lib/sass/tree/function_node.rb +1 -1
  53. data/lib/sass/tree/if_node.rb +14 -1
  54. data/lib/sass/tree/media_node.rb +4 -4
  55. data/lib/sass/tree/mixin_def_node.rb +1 -1
  56. data/lib/sass/tree/mixin_node.rb +2 -2
  57. data/lib/sass/tree/node.rb +26 -10
  58. data/lib/sass/tree/return_node.rb +1 -1
  59. data/lib/sass/tree/root_node.rb +1 -1
  60. data/lib/sass/tree/rule_node.rb +11 -9
  61. data/lib/sass/tree/variable_node.rb +1 -1
  62. data/lib/sass/tree/visitors/base.rb +1 -1
  63. data/lib/sass/tree/visitors/check_nesting.rb +36 -29
  64. data/lib/sass/tree/visitors/convert.rb +9 -16
  65. data/lib/sass/tree/visitors/cssize.rb +9 -40
  66. data/lib/sass/tree/visitors/perform.rb +23 -79
  67. data/lib/sass/tree/visitors/to_css.rb +21 -23
  68. data/lib/sass/tree/warn_node.rb +1 -1
  69. data/lib/sass/tree/while_node.rb +1 -1
  70. data/lib/sass/util.rb +9 -147
  71. data/lib/sass/version.rb +0 -14
  72. data/test/sass/cache_test.rb +0 -15
  73. data/test/sass/conversion_test.rb +8 -50
  74. data/test/sass/css2sass_test.rb +0 -33
  75. data/test/sass/engine_test.rb +32 -283
  76. data/test/sass/extend_test.rb +0 -315
  77. data/test/sass/functions_test.rb +23 -60
  78. data/test/sass/importer_test.rb +0 -110
  79. data/test/sass/more_results/more_import.css +2 -2
  80. data/test/sass/plugin_test.rb +13 -40
  81. data/test/sass/results/import.css +2 -2
  82. data/test/sass/results/import_charset.css +0 -1
  83. data/test/sass/results/import_charset_1_8.css +0 -1
  84. data/test/sass/results/import_charset_ibm866.css +0 -1
  85. data/test/sass/results/scss_import.css +2 -2
  86. data/test/sass/results/units.css +1 -1
  87. data/test/sass/script_conversion_test.rb +0 -2
  88. data/test/sass/script_test.rb +4 -28
  89. data/test/sass/scss/css_test.rb +1 -79
  90. data/test/sass/scss/scss_test.rb +16 -96
  91. data/test/sass/templates/import_charset.sass +0 -2
  92. data/test/sass/templates/import_charset_1_8.sass +0 -2
  93. data/test/sass/templates/import_charset_ibm866.sass +0 -2
  94. data/test/sass/test_helper.rb +1 -1
  95. data/test/sass/util_test.rb +0 -28
  96. data/test/test_helper.rb +0 -2
  97. data/vendor/{listen → fssm}/LICENSE +1 -1
  98. data/vendor/fssm/README.markdown +55 -0
  99. data/vendor/fssm/Rakefile +59 -0
  100. data/vendor/fssm/VERSION.yml +5 -0
  101. data/vendor/fssm/example.rb +9 -0
  102. data/vendor/fssm/fssm.gemspec +77 -0
  103. data/vendor/fssm/lib/fssm.rb +33 -0
  104. data/vendor/fssm/lib/fssm/backends/fsevents.rb +36 -0
  105. data/vendor/fssm/lib/fssm/backends/inotify.rb +26 -0
  106. data/vendor/fssm/lib/fssm/backends/polling.rb +25 -0
  107. data/vendor/fssm/lib/fssm/backends/rubycocoa/fsevents.rb +131 -0
  108. data/vendor/fssm/lib/fssm/monitor.rb +26 -0
  109. data/vendor/fssm/lib/fssm/path.rb +91 -0
  110. data/vendor/fssm/lib/fssm/pathname.rb +502 -0
  111. data/vendor/fssm/lib/fssm/state/directory.rb +57 -0
  112. data/vendor/fssm/lib/fssm/state/file.rb +24 -0
  113. data/vendor/fssm/lib/fssm/support.rb +63 -0
  114. data/vendor/fssm/lib/fssm/tree.rb +176 -0
  115. data/vendor/fssm/profile/prof-cache.rb +40 -0
  116. data/vendor/fssm/profile/prof-fssm-pathname.html +1231 -0
  117. data/vendor/fssm/profile/prof-pathname.rb +68 -0
  118. data/vendor/fssm/profile/prof-plain-pathname.html +988 -0
  119. data/vendor/fssm/profile/prof.html +2379 -0
  120. data/vendor/fssm/spec/path_spec.rb +75 -0
  121. data/vendor/fssm/spec/root/duck/quack.txt +0 -0
  122. data/vendor/fssm/spec/root/file.css +0 -0
  123. data/vendor/fssm/spec/root/file.rb +0 -0
  124. data/vendor/fssm/spec/root/file.yml +0 -0
  125. data/vendor/fssm/spec/root/moo/cow.txt +0 -0
  126. data/vendor/fssm/spec/spec_helper.rb +14 -0
  127. metadata +246 -281
  128. data/VERSION_DATE +0 -1
  129. data/lib/sass/logger.rb +0 -15
  130. data/lib/sass/logger/base.rb +0 -32
  131. data/lib/sass/logger/log_level.rb +0 -49
  132. data/lib/sass/tree/visitors/deep_copy.rb +0 -87
  133. data/lib/sass/tree/visitors/extend.rb +0 -42
  134. data/lib/sass/tree/visitors/set_options.rb +0 -97
  135. data/lib/sass/util/multibyte_string_scanner.rb +0 -134
  136. data/test/Gemfile +0 -4
  137. data/test/Gemfile.lock +0 -19
  138. data/test/sass/fixtures/test_staleness_check_across_importers.css +0 -1
  139. data/test/sass/fixtures/test_staleness_check_across_importers.scss +0 -1
  140. data/test/sass/logger_test.rb +0 -58
  141. data/test/sass/templates/_double_import_loop2.sass +0 -1
  142. data/test/sass/templates/bork5.sass +0 -3
  143. data/test/sass/templates/double_import_loop1.sass +0 -1
  144. data/test/sass/templates/nested_bork5.sass +0 -2
  145. data/test/sass/templates/single_import_loop.sass +0 -1
  146. data/test/sass/util/multibyte_string_scanner_test.rb +0 -147
  147. data/vendor/listen/CHANGELOG.md +0 -147
  148. data/vendor/listen/Gemfile +0 -23
  149. data/vendor/listen/Guardfile +0 -8
  150. data/vendor/listen/README.md +0 -312
  151. data/vendor/listen/Rakefile +0 -47
  152. data/vendor/listen/Vagrantfile +0 -96
  153. data/vendor/listen/lib/listen.rb +0 -38
  154. data/vendor/listen/lib/listen/adapter.rb +0 -167
  155. data/vendor/listen/lib/listen/adapters/darwin.rb +0 -84
  156. data/vendor/listen/lib/listen/adapters/linux.rb +0 -110
  157. data/vendor/listen/lib/listen/adapters/polling.rb +0 -66
  158. data/vendor/listen/lib/listen/adapters/windows.rb +0 -81
  159. data/vendor/listen/lib/listen/directory_record.rb +0 -318
  160. data/vendor/listen/lib/listen/listener.rb +0 -203
  161. data/vendor/listen/lib/listen/multi_listener.rb +0 -121
  162. data/vendor/listen/lib/listen/turnstile.rb +0 -28
  163. data/vendor/listen/lib/listen/version.rb +0 -3
  164. data/vendor/listen/listen.gemspec +0 -26
  165. data/vendor/listen/spec/listen/adapter_spec.rb +0 -142
  166. data/vendor/listen/spec/listen/adapters/darwin_spec.rb +0 -31
  167. data/vendor/listen/spec/listen/adapters/linux_spec.rb +0 -41
  168. data/vendor/listen/spec/listen/adapters/polling_spec.rb +0 -68
  169. data/vendor/listen/spec/listen/adapters/windows_spec.rb +0 -24
  170. data/vendor/listen/spec/listen/directory_record_spec.rb +0 -1138
  171. data/vendor/listen/spec/listen/listener_spec.rb +0 -155
  172. data/vendor/listen/spec/listen/multi_listener_spec.rb +0 -156
  173. data/vendor/listen/spec/listen/turnstile_spec.rb +0 -56
  174. data/vendor/listen/spec/listen_spec.rb +0 -73
  175. data/vendor/listen/spec/spec_helper.rb +0 -18
  176. data/vendor/listen/spec/support/adapter_helper.rb +0 -716
  177. data/vendor/listen/spec/support/directory_record_helper.rb +0 -55
  178. data/vendor/listen/spec/support/fixtures_helper.rb +0 -29
  179. data/vendor/listen/spec/support/listeners_helper.rb +0 -144
  180. data/vendor/listen/spec/support/platform_helper.rb +0 -11
@@ -1,55 +0,0 @@
1
- # Prepares a record for the test and fetches changes
2
- # afterwards.
3
- #
4
- # @param [String] root_path the path to watch
5
- # @param [Hash] options
6
- # @option options [Array<string>] :paths optional paths fetch changes for
7
- # @option options [Boolean] :use_last_record allow the use of an already
8
- # created record, handy for ordered tests.
9
- #
10
- # @return [Array, Array, Array] the changes
11
- #
12
- def changes(root_path, options = {})
13
- unless @record || options[:use_last_record]
14
- @record = Listen::DirectoryRecord.new(root_path)
15
- @record.filter(options.delete(:filter)) if options[:filter]
16
- @record.ignore(options.delete(:ignore)) if options[:ignore]
17
-
18
- # Build the record after adding the filtering and ignoring patterns
19
- @record.build
20
- end
21
-
22
- yield if block_given?
23
-
24
- paths = options.delete(:paths) || [root_path]
25
- options[:recursive] = true if options[:recursive].nil?
26
-
27
- changes = @record.fetch_changes(paths, {:relative_paths => true}.merge(options))
28
-
29
- [changes[:modified], changes[:added], changes[:removed]]
30
- end
31
-
32
- # Generates a small time difference before performing a time sensitive
33
- # task (like comparing mtimes of files).
34
- #
35
- # @note Modification time for files only includes the milliseconds on Linux with MRI > 1.9.2,
36
- # that's why we generate a difference that's greater than 1 second.
37
- #
38
- def small_time_difference
39
- t = Time.now
40
- diff = t.to_f - t.to_i
41
-
42
- sleep( 1.5 - (diff < 0.5 ? diff : 0.4) )
43
- end
44
-
45
- # Ensures that the test runs at almost the same second at which
46
- # changes are being checked.
47
- #
48
- def ensure_same_second
49
- t = Time.now
50
- diff = t.to_f - t.to_i
51
-
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)
54
- end
55
- end
@@ -1,29 +0,0 @@
1
- require 'tmpdir'
2
-
3
- include FileUtils
4
-
5
- # Prepares temporary fixture-directories and
6
- # cleans them afterwards.
7
- #
8
- # @param [Fixnum] number_of_directories the number of fixture-directories to make
9
- #
10
- # @yield [path1, path2, ...] the empty fixture-directories
11
- # @yieldparam [String] path the path to a fixture directory
12
- #
13
- def fixtures(number_of_directories = 1)
14
- current_pwd = pwd
15
- paths = 1.upto(number_of_directories).map do
16
- File.expand_path(File.join(pwd, "spec/.fixtures/#{Time.now.to_f.to_s.sub('.', '') + rand(9999).to_s}"))
17
- end
18
-
19
- # Create the dirs
20
- paths.each { |p| mkdir_p(p) }
21
-
22
- cd(paths.first) if number_of_directories == 1
23
-
24
- yield(*paths)
25
-
26
- ensure
27
- cd current_pwd
28
- paths.map { |p| rm_rf(p) if File.exists?(p) }
29
- end
@@ -1,144 +0,0 @@
1
- shared_examples_for 'a listener to changes on a file-system' do
2
- describe '#start' do
3
- before do
4
- subject.stub(:initialize_adapter) { adapter }
5
- end
6
-
7
- it 'starts the adapter' do
8
- adapter.should_receive(:start)
9
- subject.start
10
- end
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)
15
- subject.start(false)
16
- end
17
- end
18
- end
19
-
20
- context 'with a started listener' do
21
- before do
22
- subject.start
23
- end
24
-
25
- describe '#stop' do
26
- it "stops adapter" do
27
- adapter.should_receive(:stop)
28
- subject.stop
29
- end
30
- end
31
-
32
- describe '#pause' do
33
- it 'sets adapter.paused to true' do
34
- adapter.should_receive(:paused=).with(true)
35
- subject.pause
36
- end
37
-
38
- it 'returns the same listener to allow chaining' do
39
- subject.pause.should equal subject
40
- end
41
- end
42
-
43
- describe '#unpause' do
44
- it 'sets adapter.paused to false' do
45
- adapter.should_receive(:paused=).with(false)
46
- subject.unpause
47
- end
48
-
49
- it 'returns the same listener to allow chaining' do
50
- subject.unpause.should equal subject
51
- end
52
- end
53
-
54
- describe '#paused?' do
55
- it 'returns false when there is no adapter' do
56
- subject.instance_variable_set(:@adapter, nil)
57
- subject.should_not be_paused
58
- end
59
-
60
- it 'returns true when adapter is paused' do
61
- adapter.should_receive(:paused) { true }
62
- subject.should be_paused
63
- end
64
-
65
- it 'returns false when adapter is not paused' do
66
- adapter.should_receive(:paused) { false }
67
- subject.should_not be_paused
68
- end
69
- end
70
- end
71
-
72
- describe '#change' do
73
- it 'sets the callback block' do
74
- callback = lambda { |modified, added, removed| }
75
- subject.change(&callback)
76
- subject.instance_variable_get(:@block).should eq callback
77
- end
78
-
79
- it 'returns the same listener to allow chaining' do
80
- subject.change(&Proc.new{}).should equal subject
81
- end
82
- end
83
-
84
- describe '#ignore'do
85
- it 'returns the same listener to allow chaining' do
86
- subject.ignore('some_directory').should equal subject
87
- end
88
- end
89
-
90
- describe '#filter' do
91
- it 'returns the same listener to allow chaining' do
92
- subject.filter(/\.txt$/).should equal subject
93
- end
94
- end
95
-
96
- describe '#latency' do
97
- it 'sets the latency to @adapter_options' do
98
- subject.latency(0.7)
99
- subject.instance_variable_get(:@adapter_options).should eq(:latency => 0.7)
100
- end
101
-
102
- it 'returns the same listener to allow chaining' do
103
- subject.latency(0.7).should equal subject
104
- end
105
- end
106
-
107
- describe '#force_polling' do
108
- it 'sets force_polling to @adapter_options' do
109
- subject.force_polling(false)
110
- subject.instance_variable_get(:@adapter_options).should eq(:force_polling => false)
111
- end
112
-
113
- it 'returns the same listener to allow chaining' do
114
- subject.force_polling(true).should equal subject
115
- end
116
- end
117
-
118
- describe '#relative_paths' do
119
- it 'sets the relative paths option for paths in the callback' do
120
- subject.relative_paths(true)
121
- subject.instance_variable_get(:@use_relative_paths).should be_true
122
- end
123
-
124
- it 'returns the same listener to allow chaining' do
125
- subject.relative_paths(true).should equal subject
126
- end
127
- end
128
-
129
- describe '#polling_fallback_message' do
130
- it 'sets custom polling fallback message to @adapter_options' do
131
- subject.polling_fallback_message('custom message')
132
- subject.instance_variable_get(:@adapter_options).should eq(:polling_fallback_message => 'custom message')
133
- end
134
-
135
- it 'sets polling fallback message to false in @adapter_options' do
136
- subject.polling_fallback_message(false)
137
- subject.instance_variable_get(:@adapter_options).should eq(:polling_fallback_message => false)
138
- end
139
-
140
- it 'returns the same listener to allow chaining' do
141
- subject.polling_fallback_message('custom message').should equal subject
142
- end
143
- end
144
- end
@@ -1,11 +0,0 @@
1
- def mac?
2
- RbConfig::CONFIG['target_os'] =~ /darwin/i
3
- end
4
-
5
- def linux?
6
- RbConfig::CONFIG['target_os'] =~ /linux/i
7
- end
8
-
9
- def windows?
10
- RbConfig::CONFIG['target_os'] =~ /mswin|mingw/i
11
- end