sass 3.3.0.rc.6 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +5 -13
  2. data/VERSION +1 -1
  3. data/VERSION_DATE +1 -1
  4. data/lib/sass/exec.rb +2 -2
  5. data/lib/sass/importers/filesystem.rb +7 -7
  6. data/lib/sass/plugin/compiler.rb +1 -2
  7. data/lib/sass/selector/simple.rb +12 -2
  8. data/lib/sass/source/map.rb +2 -4
  9. data/lib/sass/tree/visitors/to_css.rb +9 -8
  10. data/lib/sass/util.rb +11 -0
  11. data/test/sass/extend_test.rb +10 -0
  12. data/vendor/listen/CHANGELOG.md +228 -0
  13. data/vendor/listen/CONTRIBUTING.md +38 -0
  14. data/vendor/listen/Gemfile +30 -0
  15. data/vendor/listen/Guardfile +8 -0
  16. data/vendor/listen/LICENSE +20 -0
  17. data/vendor/listen/README.md +315 -0
  18. data/vendor/listen/Rakefile +47 -0
  19. data/vendor/listen/Vagrantfile +96 -0
  20. data/vendor/listen/lib/listen.rb +40 -0
  21. data/vendor/listen/lib/listen/adapter.rb +214 -0
  22. data/vendor/listen/lib/listen/adapters/bsd.rb +112 -0
  23. data/vendor/listen/lib/listen/adapters/darwin.rb +85 -0
  24. data/vendor/listen/lib/listen/adapters/linux.rb +113 -0
  25. data/vendor/listen/lib/listen/adapters/polling.rb +67 -0
  26. data/vendor/listen/lib/listen/adapters/windows.rb +87 -0
  27. data/vendor/listen/lib/listen/dependency_manager.rb +126 -0
  28. data/vendor/listen/lib/listen/directory_record.rb +371 -0
  29. data/vendor/listen/lib/listen/listener.rb +225 -0
  30. data/vendor/listen/lib/listen/multi_listener.rb +143 -0
  31. data/vendor/listen/lib/listen/turnstile.rb +28 -0
  32. data/vendor/listen/lib/listen/version.rb +3 -0
  33. data/vendor/listen/listen.gemspec +22 -0
  34. data/vendor/listen/spec/listen/adapter_spec.rb +183 -0
  35. data/vendor/listen/spec/listen/adapters/bsd_spec.rb +36 -0
  36. data/vendor/listen/spec/listen/adapters/darwin_spec.rb +37 -0
  37. data/vendor/listen/spec/listen/adapters/linux_spec.rb +47 -0
  38. data/vendor/listen/spec/listen/adapters/polling_spec.rb +68 -0
  39. data/vendor/listen/spec/listen/adapters/windows_spec.rb +30 -0
  40. data/vendor/listen/spec/listen/dependency_manager_spec.rb +107 -0
  41. data/vendor/listen/spec/listen/directory_record_spec.rb +1225 -0
  42. data/vendor/listen/spec/listen/listener_spec.rb +169 -0
  43. data/vendor/listen/spec/listen/multi_listener_spec.rb +174 -0
  44. data/vendor/listen/spec/listen/turnstile_spec.rb +56 -0
  45. data/vendor/listen/spec/listen_spec.rb +73 -0
  46. data/vendor/listen/spec/spec_helper.rb +21 -0
  47. data/vendor/listen/spec/support/adapter_helper.rb +629 -0
  48. data/vendor/listen/spec/support/directory_record_helper.rb +55 -0
  49. data/vendor/listen/spec/support/fixtures_helper.rb +29 -0
  50. data/vendor/listen/spec/support/listeners_helper.rb +156 -0
  51. data/vendor/listen/spec/support/platform_helper.rb +15 -0
  52. metadata +275 -234
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZWRiNjA5MDgxMzBiNmFiYjRlN2ZkMTI2ZWM3ZGIwNDQ3M2M3OTRjNw==
5
- data.tar.gz: !binary |-
6
- OWI2Njk3NzRlOTExOGFjNWY3MzEwMjUyN2IzMGY1OGVlMGY3MmYxZg==
2
+ SHA1:
3
+ metadata.gz: 93af5ba687645339e994ee22f0322a8da0cd8921
4
+ data.tar.gz: 585b6cdaf03b5bad3ba5efcac0c2245d8b438768
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MzI1YmZkMTEzMWM2ZjViOGFlOWRkOWJkM2U1Y2M5MzdlYjVlODYxNDY2N2Zh
10
- MDJmYjdkOWJiYWZlM2Q2ZTMyZTY4NjRmYmRhM2M0OWI2Y2Y5ZWZhNWYxOGNl
11
- NTJjZmEwNmI5ZjgwMjU0YmQ4ZWQ0MDlmNmE3Y2QyMmFmMGM4ZWI=
12
- data.tar.gz: !binary |-
13
- OWFiNDNhZDQ2NWQ1ZmY1ZDIzMmVhMzE3OWU5N2VjM2Y1NmVmNjlmMTdhYWEx
14
- OTRkZGIyNjkxZjVjZGFjNWE4NDc2OTZiZmRlYmNiNzFmMThhNmJkZjMwYzFk
15
- ZDQwYjg3MzM1MjIxYjFhMDFlMmQyMDNjMDBmZjkyNWExZTdjODY=
6
+ metadata.gz: 6ee387ccbac66719ae087dd483a5e39746a8998f33e2f8b76194c1cb3bf32c2346a52b651eb0b45527b2e13abc03819f6a7923134f94c154530d19ae35a35120
7
+ data.tar.gz: 654f947e96a308f21a82be0534ec7a17f6a3d84bdf5bab1228357cc411a7b8d5db7b52aff449026a6e172ea1b52f5c25c28a8a4ee1f597fab8cf9bb8c5753395
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.3.0.rc.6
1
+ 3.3.0
@@ -1 +1 @@
1
- 03 March 2014 22:36:24 UTC
1
+ 08 March 2014 02:21:08 UTC
@@ -372,8 +372,8 @@ END
372
372
  raise "Can't generate a sourcemap for an input without a path."
373
373
  end
374
374
 
375
- relative_sourcemap_path = Pathname.new(@options[:sourcemap_filename]).
376
- relative_path_from(Pathname.new(@options[:output_filename]).dirname)
375
+ relative_sourcemap_path = ::Sass::Util.pathname(@options[:sourcemap_filename]).
376
+ relative_path_from(::Sass::Util.pathname(@options[:output_filename]).dirname)
377
377
  rendered, mapping = engine.render_with_sourcemap(relative_sourcemap_path.to_s)
378
378
  write_output(rendered, output)
379
379
  write_output(mapping.to_json(
@@ -1,4 +1,3 @@
1
- require 'pathname'
2
1
  require 'set'
3
2
 
4
3
  module Sass
@@ -69,8 +68,8 @@ module Sass
69
68
  if sourcemap_directory.nil?
70
69
  warn_about_public_url(name)
71
70
  else
72
- file_pathname = Pathname.new(Sass::Util.absolute_path(name, @root)).cleanpath
73
- sourcemap_pathname = Pathname.new(sourcemap_directory).cleanpath
71
+ file_pathname = Sass::Util.pathname(Sass::Util.absolute_path(name, @root)).cleanpath
72
+ sourcemap_pathname = Sass::Util.pathname(sourcemap_directory).cleanpath
74
73
  begin
75
74
  file_pathname.relative_path_from(sourcemap_pathname).to_s
76
75
  rescue ArgumentError # when a relative path cannot be constructed
@@ -144,10 +143,11 @@ module Sass
144
143
  dir = dir.gsub(File::ALT_SEPARATOR, File::SEPARATOR) unless File::ALT_SEPARATOR.nil?
145
144
 
146
145
  found = possible_files(remove_root(name)).map do |f, s|
147
- path = dir == "." || Pathname.new(f).absolute? ? f : "#{escape_glob_characters(dir)}/#{f}"
146
+ path = (dir == "." || Sass::Util.pathname(f).absolute?) ? f :
147
+ "#{escape_glob_characters(dir)}/#{f}"
148
148
  Dir[path].map do |full_path|
149
149
  full_path.gsub!(REDUNDANT_DIRECTORY, File::SEPARATOR)
150
- [Pathname.new(full_path).cleanpath.to_s, s]
150
+ [Sass::Util.pathname(full_path).cleanpath.to_s, s]
151
151
  end
152
152
  end
153
153
  found = Sass::Util.flatten(found, 1)
@@ -155,13 +155,13 @@ module Sass
155
155
 
156
156
  if found.size > 1 && !@same_name_warnings.include?(found.first.first)
157
157
  found.each {|(f, _)| @same_name_warnings << f}
158
- relative_to = Pathname.new(dir)
158
+ relative_to = Sass::Util.pathname(dir)
159
159
  if options[:_from_import_node]
160
160
  # If _line exists, we're here due to an actual import in an
161
161
  # import_node and we want to print a warning for a user writing an
162
162
  # ambiguous import.
163
163
  candidates = found.map do |(f, _)|
164
- " " + Pathname.new(f).relative_path_from(relative_to).to_s
164
+ " " + Sass::Util.pathname(f).relative_path_from(relative_to).to_s
165
165
  end.join("\n")
166
166
  raise Sass::SyntaxError.new(<<MESSAGE)
167
167
  It's not clear which file to import for '@import "#{name}"'.
@@ -1,5 +1,4 @@
1
1
  require 'fileutils'
2
- require 'pathname'
3
2
 
4
3
  require 'sass'
5
4
  # XXX CE: is this still necessary now that we have the compiler class?
@@ -436,7 +435,7 @@ module Sass::Plugin
436
435
  end
437
436
 
438
437
  def relative_to_pwd(f)
439
- Pathname.new(f).relative_path_from(Pathname.new(Dir.pwd)).to_s
438
+ Sass::Util.pathname(f).relative_path_from(Sass::Util.pathname(Dir.pwd)).to_s
440
439
  rescue ArgumentError # when a relative path cannot be computed
441
440
  f
442
441
  end
@@ -46,7 +46,7 @@ module Sass
46
46
  #
47
47
  # @return [Fixnum]
48
48
  def hash
49
- @_hash ||= to_a.hash
49
+ @_hash ||= equality_key.hash
50
50
  end
51
51
 
52
52
  # Checks equality between this and another object.
@@ -58,7 +58,7 @@ module Sass
58
58
  # @param other [Object] The object to test equality against
59
59
  # @return [Boolean] Whether or not this is equal to `other`
60
60
  def eql?(other)
61
- other.class == self.class && other.hash == hash && other.to_a.eql?(to_a)
61
+ other.class == self.class && other.hash == hash && other.equality_key.eql?(equality_key)
62
62
  end
63
63
  alias_method :==, :eql?
64
64
 
@@ -94,6 +94,16 @@ module Sass
94
94
 
95
95
  protected
96
96
 
97
+ # Returns the key used for testing whether selectors are equal.
98
+ #
99
+ # This is based on \{#to\_a}, with adjacent strings merged so that
100
+ # selectors constructed in different ways are considered equivalent.
101
+ #
102
+ # @return [Array<String, Sass::Script::Tree::Node>]
103
+ def equality_key
104
+ @equality_key ||= Sass::Util.merge_adjacent_strings(to_a)
105
+ end
106
+
97
107
  # Unifies two namespaces,
98
108
  # returning a namespace that works for both of them if possible.
99
109
  #
@@ -1,5 +1,3 @@
1
- require 'pathname'
2
-
3
1
  module Sass::Source
4
2
  class Map
5
3
  # A mapping from one source range to another. Indicates that `input` was
@@ -99,8 +97,8 @@ module Sass::Source
99
97
  raise ArgumentError.new("Sass::Source::Map#to_json requires either " \
100
98
  "the :css_uri option or both the :css_path and :soucemap_path options.")
101
99
  end
102
- css_path &&= Pathname.pwd.join(Pathname.new(css_path)).cleanpath
103
- sourcemap_path &&= Pathname.pwd.join(Pathname.new(sourcemap_path)).cleanpath
100
+ css_path &&= Pathname.pwd.join(Sass::Util.pathname(css_path)).cleanpath
101
+ sourcemap_path &&= Pathname.pwd.join(Sass::Util.pathname(sourcemap_path)).cleanpath
104
102
  css_uri ||= css_path.relative_path_from(sourcemap_path.dirname).to_s
105
103
 
106
104
  result = "{\n"
@@ -306,14 +306,15 @@ class Sass::Tree::Visitors::ToCss < Sass::Tree::Visitors::Base
306
306
  output("#{old_spaces}/* line #{node.line}")
307
307
 
308
308
  if node.filename
309
- relative_filename = if node.options[:css_filename]
310
- begin
311
- Pathname.new(node.filename).relative_path_from(
312
- Pathname.new(File.dirname(node.options[:css_filename]))).to_s
313
- rescue ArgumentError
314
- nil
315
- end
316
- end
309
+ relative_filename =
310
+ if node.options[:css_filename]
311
+ begin
312
+ Sass::Util.pathname(node.filename).relative_path_from(
313
+ Sass::Util.pathname(File.dirname(node.options[:css_filename]))).to_s
314
+ rescue ArgumentError
315
+ nil
316
+ end
317
+ end
317
318
  relative_filename ||= node.filename
318
319
  output(", #{relative_filename}")
319
320
  end
@@ -5,6 +5,7 @@ require 'stringio'
5
5
  require 'rbconfig'
6
6
  require 'uri'
7
7
  require 'thread'
8
+ require 'pathname'
8
9
 
9
10
  require 'sass/root'
10
11
  require 'sass/util/subset_map'
@@ -579,6 +580,16 @@ module Sass
579
580
  end
580
581
  end
581
582
 
583
+ # Like `Pathname.new`, but normalizes Windows paths to always use backslash
584
+ # separators.
585
+ #
586
+ # `Pathname.relative_path_from` can break if the two pathnames aren't
587
+ # consistent in their slash style.
588
+ def pathname(path)
589
+ path = path.tr("/", "\\") if windows?
590
+ Pathname.new(path)
591
+ end
592
+
582
593
  # Prepare a value for a destructuring assignment (e.g. `a, b =
583
594
  # val`). This works around a performance bug when using
584
595
  # ActiveSupport, and only needs to be called when `val` is likely
@@ -1115,6 +1115,16 @@ SCSS
1115
1115
 
1116
1116
  # Regression Tests
1117
1117
 
1118
+ def test_extend_parent_selector_suffix
1119
+ assert_equal <<CSS, render(<<SCSS)
1120
+ .a-b, .c {
1121
+ x: y; }
1122
+ CSS
1123
+ .a {&-b {x: y}}
1124
+ .c {@extend .a-b}
1125
+ SCSS
1126
+ end
1127
+
1118
1128
  def test_pseudo_element_superselector
1119
1129
  # Pseudo-elements shouldn't be removed in superselector calculations.
1120
1130
  assert_equal <<CSS, render(<<SCSS)
@@ -0,0 +1,228 @@
1
+ ## 0.7.3 - February 24, 2013
2
+
3
+ ### Bug fix
4
+
5
+ - [#88] Update wdm dependency. (fixed by [@mrbinky3000][])
6
+ - [#78] Depend on latest rb-inotify. (fixed by [@mbj][])
7
+
8
+ ## 0.7.2 - January 11, 2013
9
+
10
+ ### Bug fix
11
+
12
+ - [#76] Exception on filename which is not in UTF-8. (fixed by [@piotr-sokolowski][])
13
+
14
+ ## 0.7.1 - January 6, 2013
15
+
16
+ ### Bug fix
17
+
18
+ - [#75] Default high precision off if the mtime call fails. (fixed by [@zanker][])
19
+
20
+ ## 0.7.0 - December 29, 2012
21
+
22
+ ### Bug fixes
23
+
24
+ - [#73] Rescue Errno::EOPNOTSUPP on sha1_checksum generation. (fixed by [@thibaudgg][])
25
+
26
+ ### New feature
27
+
28
+ - Add support for *BSD with rb-kqueue. ([@mat813][])
29
+
30
+ ## 0.6.0 - November 21, 2012
31
+
32
+ ### New feature
33
+
34
+ - Add bang versions for filter and ignore listener methods. ([@tarsolya][])
35
+
36
+ ## 0.5.3 - October 3, 2012
37
+
38
+ ### Bug fixes
39
+
40
+ - [#65] Fix ruby warning in adapter.rb. (fixed by [@vongruenigen][])
41
+ - [#64] ENXIO raised when hashing UNIX domain socket file. (fixed by [@sunaku][])
42
+
43
+ ## 0.5.2 - Septemper 23, 2012
44
+
45
+ ### Bug fix
46
+
47
+ - [#62] Fix double change callback with polling adapter. (fixed by [@thibaudgg][])
48
+
49
+ ## 0.5.1 - Septemper 18, 2012
50
+
51
+ ### Bug fix
52
+
53
+ - [#61] Fix a synchronisation bug that caused constant fallback to polling. (fixed by [@Maher4Ever][])
54
+
55
+ ## 0.5.0 - Septemper 1, 2012
56
+
57
+ ### New features
58
+
59
+ - Add a dependency manager to handle platform-specific gems. So there is no need anymore to install
60
+ extra gems which will never be used on the user system. ([@Maher4Ever][])
61
+ - Add a manual reporting mode to the adapters. ([@Maher4Ever][])
62
+
63
+ ### Improvements
64
+
65
+ - [#28] Enhance the speed of detecting changes on Windows by using the [WDM][] library. ([@Maher4Ever][])
66
+
67
+ ## 0.4.7 - June 27, 2012
68
+
69
+ ### Bug fixes
70
+
71
+ - Increase latency to 0.25, to avoid useless polling fallback. (fixed by [@thibaudgg][])
72
+ - Change watched inotify events, to avoid duplication callback. (fixed by [@thibaudgg][])
73
+ - [#41](https://github.com/guard/listen/issues/41) Use lstat instead of stat when calculating mtime. (fixed by [@ebroder][])
74
+
75
+ ## 0.4.6 - June 20, 2012
76
+
77
+ ### Bug fix
78
+
79
+ - [#39](https://github.com/guard/listen/issues/39) Fix digest race condition. (fixed by [@dkubb][])
80
+
81
+ ## 0.4.5 - June 13, 2012
82
+
83
+ ### Bug fix
84
+
85
+ - [#39](https://github.com/guard/listen/issues/39) Rescue Errno::ENOENT when path inserted doesn't exist. (reported by [@textgoeshere][], fixed by [@thibaudgg][] and [@rymai][])
86
+
87
+ ## 0.4.4 - June 8, 2012
88
+
89
+ ### Bug fixes
90
+
91
+ - ~~[#39](https://github.com/guard/listen/issues/39) Non-existing path insertion bug. (reported by [@textgoeshere][], fixed by [@thibaudgg][])~~
92
+ - Fix relative path for directories containing special characters. (reported by [@napcs][], fixed by [@netzpirat][])
93
+
94
+ ## 0.4.3 - June 6, 2012
95
+
96
+ ### Bug fixes
97
+
98
+ - [#24](https://github.com/guard/listen/issues/24) Fail gracefully when the inotify limit is not enough for Listen to function. (reported by [@daemonza][], fixed by [@Maher4Ever][])
99
+ - [#32](https://github.com/guard/listen/issues/32) Fix a crash when trying to calculate the checksum of unreadable files. (reported by [@nex3][], fixed by [@Maher4Ever][])
100
+
101
+ ### Improvements
102
+
103
+ - Add `#relative_paths` method to listeners. ([@Maher4Ever][])
104
+ - Add `#started?` query-method to adapters. ([@Maher4Ever][])
105
+ - Dynamically detect the mtime precision used on a system. ([@Maher4Ever][] with help from [@nex3][])
106
+
107
+ ## 0.4.2 - May 1, 2012
108
+
109
+ ### Bug fixes
110
+
111
+ - [#21](https://github.com/guard/listen/issues/21) Issues when listening to changes in relative paths. (reported by [@akerbos][], fixed by [@Maher4Ever][])
112
+ - [#27](https://github.com/guard/listen/issues/27) Wrong reports for files modifications. (reported by [@cobychapple][], fixed by [@Maher4Ever][])
113
+ - Fix segmentation fault when profiling on Windows. ([@Maher4Ever][])
114
+ - Fix redundant watchers on Windows. ([@Maher4Ever][])
115
+
116
+ ### Improvements
117
+
118
+ - [#17](https://github.com/guard/listen/issues/17) Use regexp-patterns with the `ignore` method instead of supplying paths. (reported by [@fny][], added by [@Maher4Ever][])
119
+ - Speed improvement when listening to changes in directories with ignored paths. ([@Maher4Ever][])
120
+ - Added `.rbx` and `.svn` to ignored directories. ([@Maher4Ever][])
121
+
122
+ ## 0.4.1 - April 15, 2012
123
+
124
+ ### Bug fix
125
+
126
+ - [#18](https://github.com/guard/listen/issues/18) Listener crashes when removing directories with nested paths. (reported by [@daemonza][], fixed by [@Maher4Ever][])
127
+
128
+ ## 0.4.0 - April 9, 2012
129
+
130
+ ### New features
131
+
132
+ - Add `wait_for_callback` method to all adapters. ([@Maher4Ever][])
133
+ - Add `Listen::MultiListener` class to listen to multiple directories at once. ([@Maher4Ever][])
134
+ - Allow passing multiple directories to the `Listen.to` method. ([@Maher4Ever][])
135
+ - Add `blocking` option to `Listen#start` which can be used to disable blocking the current thread upon starting. ([@Maher4Ever][])
136
+ - Use absolute-paths in callbacks by default instead of relative-paths. ([@Maher4Ever][])
137
+ - Add `relative_paths` option to `Listen::Listener` to retain the old functionality. ([@Maher4Ever][])
138
+
139
+ ### Improvements
140
+
141
+ - Encapsulate thread spawning in the linux-adapter. ([@Maher4Ever][])
142
+ - Encapsulate thread spawning in the darwin-adapter. ([@Maher4Ever][] with [@scottdavis][] help)
143
+ - Encapsulate thread spawning in the windows-adapter. ([@Maher4Ever][])
144
+ - Fix linux-adapter bug where Listen would report file-modification events on the parent-directory. ([@Maher4Ever][])
145
+
146
+ ### Change
147
+
148
+ - Remove `wait_until_listening` as adapters doesn't need to run inside threads anymore ([@Maher4Ever][])
149
+
150
+ ## 0.3.3 - March 6, 2012
151
+
152
+ ### Improvement
153
+
154
+ - Improve pause/unpause. ([@thibaudgg][])
155
+
156
+ ## 0.3.2 - March 4, 2012
157
+
158
+ ### New feature
159
+
160
+ - Add pause/unpause listener's methods. ([@thibaudgg][])
161
+
162
+ ## 0.3.1 - February 22, 2012
163
+
164
+ ### Bug fix
165
+
166
+ - [#9](https://github.com/guard/listen/issues/9) Ignore doesn't seem to work. (reported by [@markiz][], fixed by [@thibaudgg][])
167
+
168
+ ## 0.3.0 - February 21, 2012
169
+
170
+ ### New features
171
+
172
+ - Add automatic fallback to polling if system adapter doesn't work (like a DropBox folder). ([@thibaudgg][])
173
+ - Add latency and force_polling options. ([@Maher4Ever][])
174
+
175
+ ## 0.2.0 - February 13, 2012
176
+
177
+ ### New features
178
+
179
+ - Add checksum comparaison support for detecting consecutive file modifications made during the same second. ([@thibaudgg][])
180
+ - Add rb-fchange support. ([@thibaudgg][])
181
+ - Add rb-inotify support. ([@thibaudgg][] with [@Maher4Ever][] help)
182
+ - Add rb-fsevent support. ([@thibaudgg][])
183
+ - Add non-recursive diff with multiple directories support. ([@thibaudgg][])
184
+ - Ignore .DS_Store by default. ([@thibaudgg][])
185
+
186
+ ## 0.1.0 - January 28, 2012
187
+
188
+ - First version with only a polling adapter and basic features set (ignore & filter). ([@thibaudgg][])
189
+
190
+ <!--- The following link definition list is generated by PimpMyChangelog --->
191
+ [#9]: https://github.com/guard/listen/issues/9
192
+ [#17]: https://github.com/guard/listen/issues/17
193
+ [#18]: https://github.com/guard/listen/issues/18
194
+ [#21]: https://github.com/guard/listen/issues/21
195
+ [#24]: https://github.com/guard/listen/issues/24
196
+ [#27]: https://github.com/guard/listen/issues/27
197
+ [#28]: https://github.com/guard/listen/issues/28
198
+ [#32]: https://github.com/guard/listen/issues/32
199
+ [#41]: https://github.com/guard/listen/issues/41
200
+ [#61]: https://github.com/guard/listen/issues/61
201
+ [#62]: https://github.com/guard/listen/issues/62
202
+ [#64]: https://github.com/guard/listen/issues/64
203
+ [#65]: https://github.com/guard/listen/issues/65
204
+ [#73]: https://github.com/guard/listen/issues/73
205
+ [#75]: https://github.com/guard/listen/issues/75
206
+ [#76]: https://github.com/guard/listen/issues/76
207
+ [@Maher4Ever]: https://github.com/Maher4Ever
208
+ [@dkubb]: https://github.com/dkubb
209
+ [@ebroder]: https://github.com/ebroder
210
+ [@akerbos]: https://github.com/akerbos
211
+ [@cobychapple]: https://github.com/cobychapple
212
+ [@daemonza]: https://github.com/daemonza
213
+ [@fny]: https://github.com/fny
214
+ [@markiz]: https://github.com/markiz
215
+ [@mat813]: https://github.com/mat813
216
+ [@napcs]: https://github.com/napcs
217
+ [@netzpirat]: https://github.com/netzpirat
218
+ [@nex3]: https://github.com/nex3
219
+ [@piotr-sokolowski]: https://github.com/piotr-sokolowski
220
+ [@rymai]: https://github.com/rymai
221
+ [@scottdavis]: https://github.com/scottdavis
222
+ [@sunaku]: https://github.com/sunaku
223
+ [@textgoeshere]: https://github.com/textgoeshere
224
+ [@thibaudgg]: https://github.com/thibaudgg
225
+ [@tarsolya]: https://github.com/tarsolya
226
+ [@vongruenigen]: https://github.com/vongruenigen
227
+ [@zanker]: https://github.com/zanker
228
+ [WDM]: https://github.com/Maher4Ever/wdm