sass 3.1.16 → 3.1.17
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.
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/sass/exec.rb +2 -2
- data/lib/sass/plugin/compiler.rb +51 -43
- data/lib/sass/script/color.rb +4 -9
- data/lib/sass/script/functions.rb +14 -28
- data/lib/sass/scss/parser.rb +1 -5
- data/lib/sass/tree/node.rb +8 -0
- data/lib/sass/tree/visitors/convert.rb +1 -0
- data/lib/sass/util.rb +28 -0
- data/test/sass/conversion_test.rb +26 -0
- data/test/sass/functions_test.rb +28 -22
- data/test/sass/script_test.rb +4 -4
- data/test/sass/scss/scss_test.rb +10 -0
- data/vendor/listen/CHANGELOG.md +19 -1
- data/vendor/listen/README.md +24 -12
- data/vendor/listen/lib/listen/adapters/windows.rb +7 -8
- data/vendor/listen/lib/listen/directory_record.rb +72 -38
- data/vendor/listen/lib/listen/listener.rb +12 -10
- data/vendor/listen/lib/listen/multi_listener.rb +6 -6
- data/vendor/listen/lib/listen/version.rb +1 -1
- data/vendor/listen/spec/listen/directory_record_spec.rb +241 -35
- data/vendor/listen/spec/listen/listener_spec.rb +8 -4
- data/vendor/listen/spec/listen/multi_listener_spec.rb +9 -4
- data/vendor/listen/spec/support/adapter_helper.rb +78 -0
- data/vendor/listen/spec/support/directory_record_helper.rb +13 -5
- metadata +211 -214
- data/lib/sass/plugin/listener.rb +0 -59
data/lib/sass/plugin/listener.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
# A wrapper around the Listen gem. Adds support for listening to individual
|
2
|
-
# files, as well as a somewhat cleaner event dispatch API.
|
3
|
-
#
|
4
|
-
# @private
|
5
|
-
class Sass::Plugin::Listener
|
6
|
-
def initialize
|
7
|
-
@directories = {}
|
8
|
-
yield self
|
9
|
-
begin
|
10
|
-
start!
|
11
|
-
rescue Exception => e
|
12
|
-
raise e unless e.is_a?(Interrupt)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def directory(path, events)
|
17
|
-
(@directories[path] ||= []) << events
|
18
|
-
end
|
19
|
-
|
20
|
-
def file(path, events)
|
21
|
-
file_base = File.basename(path)
|
22
|
-
directory(File.dirname(path), {
|
23
|
-
:modified => file_event_fn(events[:modified], file_base),
|
24
|
-
:added => file_event_fn(events[:added], file_base),
|
25
|
-
:removed => file_event_fn(events[:removed], file_base)
|
26
|
-
})
|
27
|
-
end
|
28
|
-
|
29
|
-
def start!
|
30
|
-
listener = Listen::MultiListener.new(*@directories.keys) do |modified, added, removed|
|
31
|
-
modified = modified.group_by {|path| File.dirname(path)}
|
32
|
-
added = added.group_by {|path| File.dirname(path)}
|
33
|
-
removed = removed.group_by {|path| File.dirname(path)}
|
34
|
-
|
35
|
-
@directories.each do |dir, events|
|
36
|
-
events.each do |e|
|
37
|
-
run_events(modified[dir], e[:modified], dir)
|
38
|
-
run_events(added[dir], e[:added], dir)
|
39
|
-
run_events(removed[dir], e[:removed], dir)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end.start
|
43
|
-
end
|
44
|
-
|
45
|
-
private
|
46
|
-
|
47
|
-
def file_event_fn(event, file_base)
|
48
|
-
lambda do |dir, base|
|
49
|
-
next unless event
|
50
|
-
next unless base == file_base
|
51
|
-
event.call
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def run_events(paths, event, path)
|
56
|
-
return if paths.nil? || event.nil?
|
57
|
-
paths.each {|p| event[File.dirname(p), File.basename(p)]}
|
58
|
-
end
|
59
|
-
end
|