guard-sass 1.0.1 → 1.0.2
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/lib/guard/sass.rb +14 -35
- data/lib/guard/sass/runner.rb +2 -5
- data/lib/guard/sass/version.rb +1 -1
- metadata +2 -2
data/lib/guard/sass.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'sass'
|
1
2
|
require 'sass/plugin'
|
2
3
|
|
3
4
|
require 'guard'
|
@@ -95,44 +96,22 @@ module Guard
|
|
95
96
|
run_on_changes files.reject {|f| partial?(f) }
|
96
97
|
end
|
97
98
|
|
98
|
-
def resolve_partials_to_owners(paths
|
99
|
-
# If we get more than 10 levels of includes deep, we're probably in an
|
100
|
-
# import loop.
|
101
|
-
return run_all if depth > 10
|
102
|
-
|
99
|
+
def resolve_partials_to_owners(paths)
|
103
100
|
# Get all files that might have imports
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
}.map {|ps|
|
116
|
-
# For each of those, make a version with extensions
|
117
|
-
ps.map {|p|
|
118
|
-
[p, p.gsub(/\.s[ac]ss$/, '')]
|
119
|
-
}
|
120
|
-
}.flatten
|
121
|
-
|
122
|
-
# Search through all eligible files and find those we need to recompile
|
123
|
-
joined_paths = sub_paths.map {|p| Regexp.escape(p) }.join('|')
|
124
|
-
matcher = /@import.*(:?#{joined_paths})/
|
125
|
-
importing = files.find_all {|file| open(file, 'r').read.match(matcher) }
|
126
|
-
paths += importing
|
127
|
-
|
128
|
-
# If any of the matched files were partials, then go ahead and walk up the
|
129
|
-
# import tree
|
130
|
-
if paths.any? {|f| partial?(f) }
|
131
|
-
paths = resolve_partials_to_owners(paths, depth + 1)
|
101
|
+
search_files = Dir.glob("#{options[:input]}/**/*.s[ac]ss")
|
102
|
+
search_files = Watcher.match_files(self, search_files)
|
103
|
+
|
104
|
+
# Get owners
|
105
|
+
owners = search_files.select do |file|
|
106
|
+
# Get dependencies of file
|
107
|
+
deps = ::Sass::Engine.for_file(file, @options).dependencies.collect! {|dep| dep.options[:filename] }
|
108
|
+
# Find intersection with paths
|
109
|
+
deps_in_paths = deps.intersection paths
|
110
|
+
# Any paths in the dependencies?
|
111
|
+
!deps_in_paths.empty?
|
132
112
|
end
|
133
|
-
|
134
113
|
# Return our resolved set of paths to recompile
|
135
|
-
|
114
|
+
owners
|
136
115
|
end
|
137
116
|
|
138
117
|
def run_with_partials(paths)
|
data/lib/guard/sass/runner.rb
CHANGED
@@ -75,17 +75,14 @@ module Guard
|
|
75
75
|
# @param file [String] Path to sass/scss file to compile
|
76
76
|
# @return [String] Compiled css.
|
77
77
|
def compile(file)
|
78
|
-
content = IO.read(file)
|
79
|
-
|
80
78
|
sass_options = {
|
81
|
-
:filename => file,
|
82
|
-
:syntax => file[-4..-1].to_sym,
|
83
79
|
:load_paths => options[:load_paths],
|
84
80
|
:style => options[:style],
|
85
81
|
:debug_info => options[:debug_info],
|
86
82
|
:line_numbers => options[:line_numbers]
|
87
83
|
}
|
88
|
-
|
84
|
+
|
85
|
+
::Sass::Engine.for_file(file, sass_options).render
|
89
86
|
end
|
90
87
|
|
91
88
|
# @param file [String]
|
data/lib/guard/sass/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guard-sass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: guard
|