sass 3.3.0.rc.6 → 3.3.0

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 (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