guard-sass 0.0.6 → 0.1.1

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/README.md CHANGED
@@ -22,11 +22,17 @@ And finally add a basic setup to your Guardfile with:
22
22
  A guard extension that allows you to easily rebuild .sass (or .scss) files when changed.
23
23
 
24
24
  guard 'sass' do
25
- watch('^sass/(.*)')
25
+ watch(%r{^sass/(.*)})
26
26
  end
27
27
 
28
28
  Defaults to writing to 'css/' but this can be changed....
29
29
 
30
30
  guard 'sass', :output => 'styles' do
31
- watch('^sass/(.*)')
31
+ watch(%r{^sass/(.*)})
32
32
  end
33
+
34
+
35
+ ## Contributors
36
+
37
+ - snappycode (http://github.com/snappycode)
38
+ - sauliusg (http://github.com/sauliusg)
@@ -1,5 +1,8 @@
1
1
  guard 'sass' do
2
- watch('^sass/(.*)')
3
- # watch('^_sass/(.*)')
4
- # watch('^scss/(.*))
5
- end
2
+ watch(%r{^sass/.+\.s[ac]ss})
3
+ end
4
+
5
+ # # Optionally set output directory, defaults to 'css'
6
+ # guard 'sass', :output => 'public/css' do
7
+ # watch(%r{^sass/.+\.s[ac]ss})
8
+ # end
@@ -0,0 +1,5 @@
1
+ module Guard
2
+ class Sass
3
+ VERSION = '0.1.1'
4
+ end
5
+ end
data/lib/guard/sass.rb CHANGED
@@ -1,18 +1,20 @@
1
1
  require 'guard'
2
2
  require 'guard/guard'
3
+ require 'guard/watcher'
3
4
 
4
5
  require 'sass'
5
6
 
6
7
  module Guard
7
8
  class Sass < Guard
8
9
 
9
- VERSION = '0.0.6'
10
10
  attr_accessor :options
11
11
 
12
12
  def initialize(watchers = [], options = {})
13
- @watchers, @options = watchers, options
14
- @options[:output] ||= 'css'
15
- @options[:load_paths] ||= Dir.glob('**/**').find_all {|i| File.directory?(i)}
13
+ super(watchers, {
14
+ :output => 'css',
15
+ :notifications => true,
16
+ :load_paths => Dir.glob('**/**').find_all {|i| File.directory?(i)}
17
+ }.merge(options))
16
18
  end
17
19
 
18
20
 
@@ -50,26 +52,32 @@ module Guard
50
52
 
51
53
  # Build all files being watched
52
54
  def run_all
53
- patterns = @watchers.map {|w| w.pattern}
54
- files = Dir.glob('**/*.*')
55
- r = []
56
- files.each do |file|
57
- patterns.each do |pattern|
58
- r << file if file.match(Regexp.new(pattern))
59
- end
60
- end
61
- run_on_change(r)
55
+ run_on_change(Watcher.match_files(self, Dir.glob(File.join('**', '*.*'))))
62
56
  end
63
57
 
64
58
  # Build the files given
65
59
  def run_on_change(paths)
66
- paths.each do |file|
67
- unless File.basename(file)[0] == "_"
68
- File.open(get_output(file), 'w') {|f| f.write(build_sass(file)) }
60
+ changed_files = paths.reject{ |f| File.basename(f)[0] == "_" }.map do |file|
61
+ css_file = get_output(file)
62
+ begin
63
+ File.open(css_file, 'w') {|f| f.write(build_sass(file)) }
64
+ ::Guard::UI.info "-> rebuilt #{file}", :reset => true
65
+ ::Guard::Notifier.notify("rebuilt #{file}", :title => "Guard::Sass", :image => :success) if @options[:notifications]
66
+ css_file
67
+ rescue ::Sass::SyntaxError => e
68
+ ::Guard::UI.error "Sass > #{e.sass_backtrace_str(file)}"
69
+ ::Guard::Notifier.notify("rebuild failed > #{e.sass_backtrace_str(file)}", :title => "Guard::Sass", :image => :error) if @options[:notifications]
69
70
  end
70
- puts "-> rebuilt #{file}"
71
+ end.compact
72
+ notify changed_files
73
+ end
74
+
75
+ def notify(changed_files)
76
+ ::Guard.guards.reject{ |guard| guard == self }.each do |guard|
77
+ paths = Watcher.match_files(guard, changed_files)
78
+ guard.run_on_change paths unless paths.empty?
71
79
  end
72
80
  end
73
81
 
74
82
  end
75
- end
83
+ end
metadata CHANGED
@@ -1,130 +1,96 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: guard-sass
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 6
9
- version: 0.0.6
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Joshua Hawxwell
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2010-12-14 00:00:00 +00:00
12
+ date: 2011-05-14 00:00:00.000000000 +01:00
18
13
  default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
21
16
  name: guard
22
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &2161291440 !ruby/object:Gem::Requirement
23
18
  none: false
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- - 2
30
- - 1
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
31
22
  version: 0.2.1
32
23
  type: :runtime
33
24
  prerelease: false
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *2161291440
26
+ - !ruby/object:Gem::Dependency
36
27
  name: haml
37
- requirement: &id002 !ruby/object:Gem::Requirement
28
+ requirement: &2161290980 !ruby/object:Gem::Requirement
38
29
  none: false
39
- requirements:
30
+ requirements:
40
31
  - - ~>
41
- - !ruby/object:Gem::Version
42
- segments:
43
- - 3
44
- - 0
45
- - 0
32
+ - !ruby/object:Gem::Version
46
33
  version: 3.0.0
47
34
  type: :runtime
48
35
  prerelease: false
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *2161290980
37
+ - !ruby/object:Gem::Dependency
51
38
  name: bundler
52
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &2161290520 !ruby/object:Gem::Requirement
53
40
  none: false
54
- requirements:
41
+ requirements:
55
42
  - - ~>
56
- - !ruby/object:Gem::Version
57
- segments:
58
- - 1
59
- - 0
60
- - 2
43
+ - !ruby/object:Gem::Version
61
44
  version: 1.0.2
62
45
  type: :development
63
46
  prerelease: false
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *2161290520
48
+ - !ruby/object:Gem::Dependency
66
49
  name: rspec
67
- requirement: &id004 !ruby/object:Gem::Requirement
50
+ requirement: &2161290060 !ruby/object:Gem::Requirement
68
51
  none: false
69
- requirements:
70
- - - ~>
71
- - !ruby/object:Gem::Version
72
- segments:
73
- - 2
74
- - 0
75
- - 0
76
- - rc
52
+ requirements:
53
+ - - ! '>'
54
+ - !ruby/object:Gem::Version
77
55
  version: 2.0.0.rc
78
56
  type: :development
79
57
  prerelease: false
80
- version_requirements: *id004
58
+ version_requirements: *2161290060
81
59
  description: Guard::Sass automatically rebuilds sass (like sass --watch)
82
- email:
60
+ email:
83
61
  - m@hawx.me
84
62
  executables: []
85
-
86
63
  extensions: []
87
-
88
64
  extra_rdoc_files: []
89
-
90
- files:
65
+ files:
91
66
  - lib/guard/sass/templates/Guardfile
67
+ - lib/guard/sass/version.rb
92
68
  - lib/guard/sass.rb
93
69
  - LICENSE
94
70
  - README.md
95
71
  has_rdoc: true
96
72
  homepage: http://rubygems.org/gems/guard-sass
97
73
  licenses: []
98
-
99
74
  post_install_message:
100
75
  rdoc_options: []
101
-
102
- require_paths:
76
+ require_paths:
103
77
  - lib
104
- required_ruby_version: !ruby/object:Gem::Requirement
78
+ required_ruby_version: !ruby/object:Gem::Requirement
105
79
  none: false
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- segments:
110
- - 0
111
- version: "0"
112
- required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
85
  none: false
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- segments:
118
- - 1
119
- - 3
120
- - 6
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
121
89
  version: 1.3.6
122
90
  requirements: []
123
-
124
91
  rubyforge_project: guard-sass
125
- rubygems_version: 1.3.7
92
+ rubygems_version: 1.6.2
126
93
  signing_key:
127
94
  specification_version: 3
128
95
  summary: Guard gem for Sass
129
96
  test_files: []
130
-