sass 3.3.0 → 3.3.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/VERSION_DATE +1 -1
  4. data/lib/sass/importers/filesystem.rb +3 -3
  5. data/lib/sass/plugin/compiler.rb +95 -52
  6. data/lib/sass/script/functions.rb +1 -1
  7. data/lib/sass/source/map.rb +3 -3
  8. data/lib/sass/util.rb +16 -1
  9. data/vendor/listen/CHANGELOG.md +175 -35
  10. data/vendor/listen/Gemfile +5 -15
  11. data/vendor/listen/README.md +111 -77
  12. data/vendor/listen/Rakefile +0 -42
  13. data/vendor/listen/lib/listen.rb +33 -19
  14. data/vendor/listen/lib/listen/adapter.rb +193 -82
  15. data/vendor/listen/lib/listen/adapters/bsd.rb +27 -64
  16. data/vendor/listen/lib/listen/adapters/darwin.rb +21 -58
  17. data/vendor/listen/lib/listen/adapters/linux.rb +23 -55
  18. data/vendor/listen/lib/listen/adapters/polling.rb +25 -34
  19. data/vendor/listen/lib/listen/adapters/windows.rb +50 -46
  20. data/vendor/listen/lib/listen/directory_record.rb +96 -61
  21. data/vendor/listen/lib/listen/listener.rb +135 -37
  22. data/vendor/listen/lib/listen/turnstile.rb +9 -5
  23. data/vendor/listen/lib/listen/version.rb +1 -1
  24. data/vendor/listen/listen.gemspec +6 -0
  25. data/vendor/listen/spec/listen/adapter_spec.rb +37 -82
  26. data/vendor/listen/spec/listen/adapters/polling_spec.rb +8 -8
  27. data/vendor/listen/spec/listen/directory_record_spec.rb +81 -56
  28. data/vendor/listen/spec/listen/listener_spec.rb +128 -39
  29. data/vendor/listen/spec/listen_spec.rb +15 -21
  30. data/vendor/listen/spec/spec_helper.rb +4 -0
  31. data/vendor/listen/spec/support/adapter_helper.rb +52 -15
  32. data/vendor/listen/spec/support/directory_record_helper.rb +7 -5
  33. data/vendor/listen/spec/support/listeners_helper.rb +30 -7
  34. metadata +3 -23
  35. data/ext/mkrf_conf.rb +0 -27
  36. data/vendor/listen/lib/listen/dependency_manager.rb +0 -126
  37. data/vendor/listen/lib/listen/multi_listener.rb +0 -143
  38. data/vendor/listen/spec/listen/dependency_manager_spec.rb +0 -107
  39. data/vendor/listen/spec/listen/multi_listener_spec.rb +0 -174
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 93af5ba687645339e994ee22f0322a8da0cd8921
4
- data.tar.gz: 585b6cdaf03b5bad3ba5efcac0c2245d8b438768
3
+ metadata.gz: 00ce55eecd20af52a6712635d3a84486d0524d17
4
+ data.tar.gz: a1bc287c093a6734feb94163397079f6a5b190fa
5
5
  SHA512:
6
- metadata.gz: 6ee387ccbac66719ae087dd483a5e39746a8998f33e2f8b76194c1cb3bf32c2346a52b651eb0b45527b2e13abc03819f6a7923134f94c154530d19ae35a35120
7
- data.tar.gz: 654f947e96a308f21a82be0534ec7a17f6a3d84bdf5bab1228357cc411a7b8d5db7b52aff449026a6e172ea1b52f5c25c28a8a4ee1f597fab8cf9bb8c5753395
6
+ metadata.gz: 4822bc891a972b0a3d245a8fff165a0ed559c46ec2255c5367f5fab702c154b25ef5ec0caf2fc9598ac7d86a08979cb4771a5fc29d03fa8afc56f907ab041f28
7
+ data.tar.gz: 15184a93e273e4accba3429c0a082b65ea4470a2a6497d22cd0bb03082c0ccaab50b1ceb2905edd1f91d3bcbf305de219a474b6f567dbeeacf02ecd19925a0eb
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.3.0
1
+ 3.3.1
@@ -1 +1 @@
1
- 08 March 2014 02:21:08 UTC
1
+ 10 March 2014 23:45:31 UTC
@@ -68,8 +68,8 @@ module Sass
68
68
  if sourcemap_directory.nil?
69
69
  warn_about_public_url(name)
70
70
  else
71
- file_pathname = Sass::Util.pathname(Sass::Util.absolute_path(name, @root)).cleanpath
72
- sourcemap_pathname = Sass::Util.pathname(sourcemap_directory).cleanpath
71
+ file_pathname = Sass::Util.cleanpath(Sass::Util.absolute_path(name, @root))
72
+ sourcemap_pathname = Sass::Util.cleanpath(sourcemap_directory)
73
73
  begin
74
74
  file_pathname.relative_path_from(sourcemap_pathname).to_s
75
75
  rescue ArgumentError # when a relative path cannot be constructed
@@ -147,7 +147,7 @@ module Sass
147
147
  "#{escape_glob_characters(dir)}/#{f}"
148
148
  Dir[path].map do |full_path|
149
149
  full_path.gsub!(REDUNDANT_DIRECTORY, File::SEPARATOR)
150
- [Sass::Util.pathname(full_path).cleanpath.to_s, s]
150
+ [Sass::Util.cleanpath(full_path).to_s, s]
151
151
  end
152
152
  end
153
153
  found = Sass::Util.flatten(found, 1)
@@ -226,6 +226,11 @@ module Sass::Plugin
226
226
  end
227
227
  directories = remove_redundant_directories(directories)
228
228
 
229
+ # A Listen version prior to 2.0 will write a test file to a directory to
230
+ # see if a watcher supports watching that directory. That breaks horribly
231
+ # on read-only directories, so we filter those out.
232
+ directories.reject {|d| File.writable?(d)} unless Sass::Util.listen_geq_2?
233
+
229
234
  # TODO: Keep better track of what depends on what
230
235
  # so we don't have to run a global update every time anything changes.
231
236
  listener_args = directories + [{:relative_paths => false}]
@@ -240,49 +245,7 @@ module Sass::Plugin
240
245
  end
241
246
 
242
247
  listener = create_listener(*listener_args) do |modified, added, removed|
243
- recompile_required = false
244
-
245
- modified.uniq.each do |f|
246
- next unless watched_file?(f)
247
- recompile_required = true
248
- run_template_modified(relative_to_pwd(f))
249
- end
250
-
251
- added.uniq.each do |f|
252
- next unless watched_file?(f)
253
- recompile_required = true
254
- run_template_created(relative_to_pwd(f))
255
- end
256
-
257
- removed.uniq.each do |f|
258
- if (files = individual_files.find {|(source, _, _)| File.expand_path(source) == f})
259
- recompile_required = true
260
- # This was a file we were watching explicitly and compiling to a particular location.
261
- # Delete the corresponding file.
262
- try_delete_css files[1]
263
- else
264
- next unless watched_file?(f)
265
- recompile_required = true
266
- # Look for the sass directory that contained the sass file
267
- # And try to remove the css file that corresponds to it
268
- template_location_array.each do |(sass_dir, css_dir)|
269
- sass_dir = File.expand_path(sass_dir)
270
- if child_of_directory?(sass_dir, f)
271
- remainder = f[(sass_dir.size + 1)..-1]
272
- try_delete_css(css_filename(remainder, css_dir))
273
- break
274
- end
275
- end
276
- end
277
- run_template_deleted(relative_to_pwd(f))
278
- end
279
-
280
- if recompile_required
281
- # In case a file we're watching is removed and then recreated we
282
- # prune out the non-existant files here.
283
- watched_files_remaining = individual_files.select {|(source, _, _)| File.exists?(source)}
284
- update_stylesheets(watched_files_remaining)
285
- end
248
+ on_file_changed(individual_files, modified, added, removed)
286
249
  end
287
250
 
288
251
  if poll && !Sass::Util.listen_geq_2?
@@ -313,7 +276,7 @@ module Sass::Plugin
313
276
  private
314
277
 
315
278
  def create_listener(*args, &block)
316
- require 'listen'
279
+ load_listen!
317
280
  if Sass::Util.listen_geq_2?
318
281
  Listen.to(*args, &block)
319
282
  else
@@ -323,16 +286,12 @@ module Sass::Plugin
323
286
 
324
287
  def listen_to(listener)
325
288
  if Sass::Util.listen_geq_2?
326
- listener.start
327
- listener.thread.join
328
- listener.stop # Partially work around guard/listen#146
289
+ listener.start.join
329
290
  else
330
- begin
331
- listener.start!
332
- rescue Interrupt
333
- # Squelch Interrupt for clean exit from Listen::Listener
334
- end
291
+ listener.start!
335
292
  end
293
+ rescue Interrupt
294
+ # Squelch Interrupt for clean exit from Listen::Listener
336
295
  end
337
296
 
338
297
  def remove_redundant_directories(directories)
@@ -351,6 +310,90 @@ module Sass::Plugin
351
310
  dedupped
352
311
  end
353
312
 
313
+ def load_listen!
314
+ if defined?(gem)
315
+ begin
316
+ gem 'listen', '>= 1.1.0', '< 3.0.0'
317
+ require 'listen'
318
+ rescue Gem::LoadError
319
+ dir = Sass::Util.scope("vendor/listen/lib")
320
+ $LOAD_PATH.unshift dir
321
+ begin
322
+ require 'listen'
323
+ rescue LoadError => e
324
+ if Sass::Util.version_geq(RUBY_VERSION, "1.9.3")
325
+ version_constraint = "~> 2.7"
326
+ else
327
+ version_constraint = "~> 1.1"
328
+ end
329
+ e.message << "\n" <<
330
+ "Run \"gem install listen --version '#{version_constraint}'\" to get it."
331
+ raise e
332
+ end
333
+ end
334
+ else
335
+ begin
336
+ require 'listen'
337
+ rescue LoadError => e
338
+ dir = Sass::Util.scope("vendor/listen/lib")
339
+ if $LOAD_PATH.include?(dir)
340
+ raise e unless File.exists?(scope(".git"))
341
+ e.message << "\n" <<
342
+ 'Run "git submodule update --init" to get the bundled version.'
343
+ else
344
+ $LOAD_PATH.unshift dir
345
+ retry
346
+ end
347
+ end
348
+ end
349
+ end
350
+
351
+ def on_file_changed(individual_files, modified, added, removed)
352
+ recompile_required = false
353
+
354
+ modified.uniq.each do |f|
355
+ next unless watched_file?(f)
356
+ recompile_required = true
357
+ run_template_modified(relative_to_pwd(f))
358
+ end
359
+
360
+ added.uniq.each do |f|
361
+ next unless watched_file?(f)
362
+ recompile_required = true
363
+ run_template_created(relative_to_pwd(f))
364
+ end
365
+
366
+ removed.uniq.each do |f|
367
+ if (files = individual_files.find {|(source, _, _)| File.expand_path(source) == f})
368
+ recompile_required = true
369
+ # This was a file we were watching explicitly and compiling to a particular location.
370
+ # Delete the corresponding file.
371
+ try_delete_css files[1]
372
+ else
373
+ next unless watched_file?(f)
374
+ recompile_required = true
375
+ # Look for the sass directory that contained the sass file
376
+ # And try to remove the css file that corresponds to it
377
+ template_location_array.each do |(sass_dir, css_dir)|
378
+ sass_dir = File.expand_path(sass_dir)
379
+ if child_of_directory?(sass_dir, f)
380
+ remainder = f[(sass_dir.size + 1)..-1]
381
+ try_delete_css(css_filename(remainder, css_dir))
382
+ break
383
+ end
384
+ end
385
+ end
386
+ run_template_deleted(relative_to_pwd(f))
387
+ end
388
+
389
+ if recompile_required
390
+ # In case a file we're watching is removed and then recreated we
391
+ # prune out the non-existant files here.
392
+ watched_files_remaining = individual_files.select {|(source, _, _)| File.exists?(source)}
393
+ update_stylesheets(watched_files_remaining)
394
+ end
395
+ end
396
+
354
397
  def update_stylesheet(filename, css, sourcemap)
355
398
  dir = File.dirname(css)
356
399
  unless File.exists?(dir)
@@ -2076,7 +2076,7 @@ module Sass::Script
2076
2076
  # call(scale-color, #0a64ff, $lightness: -10%) => #0058ef
2077
2077
  #
2078
2078
  # $fn: nth;
2079
- # call($fn, 2, (a b c)) => b
2079
+ # call($fn, (a b c), 2) => b
2080
2080
  #
2081
2081
  # @overload call($name, $args...)
2082
2082
  # @param $name [String] The name of the function to call.
@@ -97,9 +97,9 @@ module Sass::Source
97
97
  raise ArgumentError.new("Sass::Source::Map#to_json requires either " \
98
98
  "the :css_uri option or both the :css_path and :soucemap_path options.")
99
99
  end
100
- css_path &&= Pathname.pwd.join(Sass::Util.pathname(css_path)).cleanpath
101
- sourcemap_path &&= Pathname.pwd.join(Sass::Util.pathname(sourcemap_path)).cleanpath
102
- css_uri ||= css_path.relative_path_from(sourcemap_path.dirname).to_s
100
+ css_path &&= Sass::Util.pathname(Sass::Util.absolute_path(css_path))
101
+ sourcemap_path &&= Sass::Util.pathname(Sass::Util.absolute_path(sourcemap_path))
102
+ css_uri ||= css_path.relative_path_from(sourcemap_path.dirname).to_s.tr('\\', '/')
103
103
 
104
104
  result = "{\n"
105
105
  write_json_field(result, "version", 3, true)
@@ -583,13 +583,28 @@ module Sass
583
583
  # Like `Pathname.new`, but normalizes Windows paths to always use backslash
584
584
  # separators.
585
585
  #
586
- # `Pathname.relative_path_from` can break if the two pathnames aren't
586
+ # `Pathname#relative_path_from` can break if the two pathnames aren't
587
587
  # consistent in their slash style.
588
+ #
589
+ # @param path [String]
590
+ # @return [Pathname]
588
591
  def pathname(path)
589
592
  path = path.tr("/", "\\") if windows?
590
593
  Pathname.new(path)
591
594
  end
592
595
 
596
+ # Like `Pathname#cleanpath`, but normalizes Windows paths to always use
597
+ # backslash separators. Normally, `Pathname#cleanpath` actually does the
598
+ # reverse -- it will convert backslashes to forward slashes, which can break
599
+ # `Pathname#relative_path_from`.
600
+ #
601
+ # @param path [String, Pathname]
602
+ # @return [Pathname]
603
+ def cleanpath(path)
604
+ path = Pathname.new(path) unless path.is_a?(Pathname)
605
+ pathname(path.cleanpath.to_s)
606
+ end
607
+
593
608
  # Prepare a value for a destructuring assignment (e.g. `a, b =
594
609
  # val`). This works around a performance bug when using
595
610
  # ActiveSupport, and only needs to be called when `val` is likely
@@ -1,56 +1,163 @@
1
- ## 0.7.3 - February 24, 2013
1
+ # !!! CHANGELOG moved to Github [releases](https://github.com/guard/listen/releases) page !!!
2
+
3
+
4
+ ## 1.2.2 - Jun 17, 2013
5
+
6
+ ### Bug fix
7
+
8
+ - Rescue all error on sha1_checksum generation. ([@thibaudgg][])
9
+
10
+ ## 1.2.1 - Jun 11, 2013
11
+
12
+ ### Improvement
13
+
14
+ - Ignore 'bundle' folder by default. ([@thibaudgg][])
15
+
16
+ ## 1.2.0 - Jun 11, 2013
17
+
18
+ ### Improvement
19
+
20
+ - [#124][] New `force_adapter` option, skip the `.listen_test` adapter test. ([@nicobrevin][])
21
+
22
+ ## 1.1.6 - Jun 4, 2013
23
+
24
+ ### Change
25
+
26
+ - [#120][] Warn when using relative_paths option when listening to multiple diretories. (reported by [@chriseppstein][], added by [@thibaudgg][])
27
+
28
+ ## 1.1.5 - Jun 3, 2013
29
+
30
+ ### Bug fix
31
+
32
+ - [#122][] Fix stop called very soon after starting. (reported by [@chriseppstein][], fixed by [@thibaudgg][])
33
+
34
+ ## 1.1.4 - May 28, 2013
35
+
36
+ ### Bug fix
37
+
38
+ - [#118][] Prevent polling just because the adapter gem was already required. ([@nilbus][])
39
+
40
+ ## 1.1.3 - May 21, 2013
41
+
42
+ ### Bug fix
43
+
44
+ - [#117][] Fix jruby error on Pathname#relative_path_from. ([@luikore][])
45
+
46
+ ## 1.1.2 - May 14, 2013
47
+
48
+ ### Bug fix
49
+
50
+ - [#115][] Fix for directory containing non-ascii chars. ([@luikore][])
51
+
52
+ ## 1.1.1 - May 14, 2013
53
+
54
+ ### Bug fix
55
+
56
+ - [#113][] Kill poller_thread before waiting for it to die. ([@antifuchs][])
57
+
58
+ ## 1.1.0 - May 11, 2013
59
+
60
+ ### Bug fix
61
+
62
+ - [#112][] Expand path for the given directories. (reported by [@nex3][], fixed by [@thibaudgg][])
63
+
64
+ ### Change
65
+
66
+ - [#110][] Remove MultiListener deprecation warning message. (reported by [@nex3][], fixed by [@thibaudgg][])
67
+
68
+ ## 1.0.3 - April 29, 2013
69
+
70
+ ### Bug fix
71
+
72
+ - Rescue Errno::EBADF on sha1_checksum generation. ([@thibaudgg][])
73
+
74
+ ## 1.0.2 - April 22, 2013
75
+
76
+ ### Bug fix
77
+
78
+ - [#104][] Avoid conflict with ActiveSupport::Dependencies::Loadable. ([@nysalor][])
79
+
80
+ ## 1.0.1 - April 22, 2013
81
+
82
+ ### Bug fix
83
+
84
+ - [#103][] Support old version of rubygems. (reported by [@ahoward][], fixed by [@thibaudgg][])
85
+
86
+ ## 1.0.0 - April 20, 2013
2
87
 
3
88
  ### Bug fix
4
89
 
5
- - [#88] Update wdm dependency. (fixed by [@mrbinky3000][])
6
- - [#78] Depend on latest rb-inotify. (fixed by [@mbj][])
90
+ - [#93][] Remove dependency operator in the "gem install" message. (reported by [@scottdavis][], fixed by [@rymai][])
91
+
92
+ ### Changes & deprecations
93
+
94
+ - [#98][] `Listen.to` does not block the current thread anymore. Use `Listen.to!` if you want the old behavior back. ([@rymai][])
95
+ - [#98][] `Listen::Listener#start` does not block the current thread anymore. Use `Listen::Listener#start!` if you want the old behavior back. ([@rymai][])
96
+ - [#98][] `Listen::Listener#start`'s `blocking` parameter is deprecated. ([@rymai][])
97
+
98
+ ### Improvements
99
+
100
+ - [#98][] New method: `Listen.to!` which blocks the current thread. ([@rymai][])
101
+ - [#98][] New method: `Listen::Listener#start!` to start the listener and block the current thread. ([@martikaljuve][] & [@rymai][])
102
+ - [#95][] Make `Listen::Listener` capable of listening to multiple directories, deprecates `Listen::MultiListener`, defaults `Listener#relative_paths` to `true` when listening to a single directory (see [#131][]). ([@rymai][])
103
+ - [#85][] Compute the SHA1 sum only for regular files. ([@antifuchs][])
104
+ - New methods: `Listen::Adapter#pause`, `Listen::Adapter#unpause` and `Listen::Adapter#paused?`. ([@rymai][])
105
+ - Refactor `Listen::DirectoryRecord` internals. ([@rymai][])
106
+ - Refactor `Listen::DependencyManager` internals. ([@rymai][])
107
+
108
+ ## 0.7.3 - February 24, 2013
109
+
110
+ ### Bug fixes
111
+
112
+ - [#88][] Update wdm dependency. ([@mrbinky3000][])
113
+ - [#78][] Depend on latest rb-inotify. ([@mbj][])
7
114
 
8
115
  ## 0.7.2 - January 11, 2013
9
116
 
10
117
  ### Bug fix
11
118
 
12
- - [#76] Exception on filename which is not in UTF-8. (fixed by [@piotr-sokolowski][])
119
+ - [#76][] Exception on filename which is not in UTF-8. ([@piotr-sokolowski][])
13
120
 
14
121
  ## 0.7.1 - January 6, 2013
15
122
 
16
123
  ### Bug fix
17
124
 
18
- - [#75] Default high precision off if the mtime call fails. (fixed by [@zanker][])
125
+ - [#75][] Default high precision off if the mtime call fails. ([@zanker][])
19
126
 
20
127
  ## 0.7.0 - December 29, 2012
21
128
 
22
- ### Bug fixes
129
+ ### Bug fix
23
130
 
24
- - [#73] Rescue Errno::EOPNOTSUPP on sha1_checksum generation. (fixed by [@thibaudgg][])
131
+ - [#73][] Rescue Errno::EOPNOTSUPP on sha1_checksum generation. ([@thibaudgg][])
25
132
 
26
133
  ### New feature
27
134
 
28
- - Add support for *BSD with rb-kqueue. ([@mat813][])
135
+ - [#72][] Add support for *BSD with rb-kqueue. ([@mat813][])
29
136
 
30
137
  ## 0.6.0 - November 21, 2012
31
138
 
32
139
  ### New feature
33
140
 
34
- - Add bang versions for filter and ignore listener methods. ([@tarsolya][])
141
+ - [#68][] Add bang versions for `Listener#filter` and `Listener#ignore` methods. ([@tarsolya][])
35
142
 
36
143
  ## 0.5.3 - October 3, 2012
37
144
 
38
145
  ### Bug fixes
39
146
 
40
- - [#65] Fix ruby warning in adapter.rb. (fixed by [@vongruenigen][])
41
- - [#64] ENXIO raised when hashing UNIX domain socket file. (fixed by [@sunaku][])
147
+ - [#65][] Fix ruby warning in adapter.rb. ([@vongruenigen][])
148
+ - [#64][] ENXIO raised when hashing UNIX domain socket file. ([@sunaku][])
42
149
 
43
150
  ## 0.5.2 - Septemper 23, 2012
44
151
 
45
152
  ### Bug fix
46
153
 
47
- - [#62] Fix double change callback with polling adapter. (fixed by [@thibaudgg][])
154
+ - [#62][] Fix double change callback with polling adapter. ([@thibaudgg][])
48
155
 
49
156
  ## 0.5.1 - Septemper 18, 2012
50
157
 
51
158
  ### Bug fix
52
159
 
53
- - [#61] Fix a synchronisation bug that caused constant fallback to polling. (fixed by [@Maher4Ever][])
160
+ - [#61][] Fix a synchronisation bug that caused constant fallback to polling. ([@Maher4Ever][])
54
161
 
55
162
  ## 0.5.0 - Septemper 1, 2012
56
163
 
@@ -62,60 +169,60 @@
62
169
 
63
170
  ### Improvements
64
171
 
65
- - [#28] Enhance the speed of detecting changes on Windows by using the [WDM][] library. ([@Maher4Ever][])
172
+ - [#28][] Enhance the speed of detecting changes on Windows by using the [WDM][] library. ([@Maher4Ever][])
66
173
 
67
174
  ## 0.4.7 - June 27, 2012
68
175
 
69
176
  ### Bug fixes
70
177
 
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][])
178
+ - Increase latency to 0.25, to avoid useless polling fallback. ([@thibaudgg][])
179
+ - Change watched inotify events, to avoid duplication callback. ([@thibaudgg][])
180
+ - [#41][] Use lstat instead of stat when calculating mtime. ([@ebroder][])
74
181
 
75
182
  ## 0.4.6 - June 20, 2012
76
183
 
77
184
  ### Bug fix
78
185
 
79
- - [#39](https://github.com/guard/listen/issues/39) Fix digest race condition. (fixed by [@dkubb][])
186
+ - [#39][] Fix digest race condition. ([@dkubb][])
80
187
 
81
188
  ## 0.4.5 - June 13, 2012
82
189
 
83
190
  ### Bug fix
84
191
 
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][])
192
+ - [#39][] Rescue Errno::ENOENT when path inserted doesn't exist. (reported by [@textgoeshere][], fixed by [@thibaudgg][] and [@rymai][])
86
193
 
87
194
  ## 0.4.4 - June 8, 2012
88
195
 
89
196
  ### Bug fixes
90
197
 
91
- - ~~[#39](https://github.com/guard/listen/issues/39) Non-existing path insertion bug. (reported by [@textgoeshere][], fixed by [@thibaudgg][])~~
198
+ - ~~[#39][] Non-existing path insertion bug. (reported by [@textgoeshere][], fixed by [@thibaudgg][])~~
92
199
  - Fix relative path for directories containing special characters. (reported by [@napcs][], fixed by [@netzpirat][])
93
200
 
94
201
  ## 0.4.3 - June 6, 2012
95
202
 
96
203
  ### Bug fixes
97
204
 
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][])
205
+ - [#24][] Fail gracefully when the inotify limit is not enough for Listen to function. (reported by [@daemonza][], fixed by [@Maher4Ever][])
206
+ - [#32][] Fix a crash when trying to calculate the checksum of unreadable files. (reported by [@nex3][], fixed by [@Maher4Ever][])
100
207
 
101
208
  ### Improvements
102
209
 
103
- - Add `#relative_paths` method to listeners. ([@Maher4Ever][])
104
- - Add `#started?` query-method to adapters. ([@Maher4Ever][])
210
+ - Add `Listener#relative_paths`. ([@Maher4Ever][])
211
+ - Add `Adapter#started?`. ([@Maher4Ever][])
105
212
  - Dynamically detect the mtime precision used on a system. ([@Maher4Ever][] with help from [@nex3][])
106
213
 
107
214
  ## 0.4.2 - May 1, 2012
108
215
 
109
216
  ### Bug fixes
110
217
 
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][])
218
+ - [#21][] Issues when listening to changes in relative paths. (reported by [@akerbos][], fixed by [@Maher4Ever][])
219
+ - [#27][] Wrong reports for files modifications. (reported by [@cobychapple][], fixed by [@Maher4Ever][])
113
220
  - Fix segmentation fault when profiling on Windows. ([@Maher4Ever][])
114
221
  - Fix redundant watchers on Windows. ([@Maher4Ever][])
115
222
 
116
223
  ### Improvements
117
224
 
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][])
225
+ - [#17][] Use regexp-patterns with the `ignore` method instead of supplying paths. (reported by [@fny][], added by [@Maher4Ever][])
119
226
  - Speed improvement when listening to changes in directories with ignored paths. ([@Maher4Ever][])
120
227
  - Added `.rbx` and `.svn` to ignored directories. ([@Maher4Ever][])
121
228
 
@@ -123,13 +230,13 @@
123
230
 
124
231
  ### Bug fix
125
232
 
126
- - [#18](https://github.com/guard/listen/issues/18) Listener crashes when removing directories with nested paths. (reported by [@daemonza][], fixed by [@Maher4Ever][])
233
+ - [#18][] Listener crashes when removing directories with nested paths. (reported by [@daemonza][], fixed by [@Maher4Ever][])
127
234
 
128
235
  ## 0.4.0 - April 9, 2012
129
236
 
130
237
  ### New features
131
238
 
132
- - Add `wait_for_callback` method to all adapters. ([@Maher4Ever][])
239
+ - Add `Adapter#wait_for_callback`. ([@Maher4Ever][])
133
240
  - Add `Listen::MultiListener` class to listen to multiple directories at once. ([@Maher4Ever][])
134
241
  - Allow passing multiple directories to the `Listen.to` method. ([@Maher4Ever][])
135
242
  - Add `blocking` option to `Listen#start` which can be used to disable blocking the current thread upon starting. ([@Maher4Ever][])
@@ -163,7 +270,7 @@
163
270
 
164
271
  ### Bug fix
165
272
 
166
- - [#9](https://github.com/guard/listen/issues/9) Ignore doesn't seem to work. (reported by [@markiz][], fixed by [@thibaudgg][])
273
+ - [#9][] Ignore doesn't seem to work. (reported by [@markiz][], fixed by [@thibaudgg][])
167
274
 
168
275
  ## 0.3.0 - February 21, 2012
169
276
 
@@ -181,7 +288,7 @@
181
288
  - Add rb-inotify support. ([@thibaudgg][] with [@Maher4Ever][] help)
182
289
  - Add rb-fsevent support. ([@thibaudgg][])
183
290
  - Add non-recursive diff with multiple directories support. ([@thibaudgg][])
184
- - Ignore .DS_Store by default. ([@thibaudgg][])
291
+ - Ignore `.DS_Store` files by default. ([@thibaudgg][])
185
292
 
186
293
  ## 0.1.0 - January 28, 2012
187
294
 
@@ -196,33 +303,66 @@
196
303
  [#27]: https://github.com/guard/listen/issues/27
197
304
  [#28]: https://github.com/guard/listen/issues/28
198
305
  [#32]: https://github.com/guard/listen/issues/32
306
+ [#39]: https://github.com/guard/listen/issues/39
199
307
  [#41]: https://github.com/guard/listen/issues/41
200
308
  [#61]: https://github.com/guard/listen/issues/61
201
309
  [#62]: https://github.com/guard/listen/issues/62
202
310
  [#64]: https://github.com/guard/listen/issues/64
203
311
  [#65]: https://github.com/guard/listen/issues/65
312
+ [#68]: https://github.com/guard/listen/issues/68
313
+ [#72]: https://github.com/guard/listen/issues/72
204
314
  [#73]: https://github.com/guard/listen/issues/73
205
315
  [#75]: https://github.com/guard/listen/issues/75
206
316
  [#76]: https://github.com/guard/listen/issues/76
317
+ [#78]: https://github.com/guard/listen/issues/78
318
+ [#85]: https://github.com/guard/listen/issues/85
319
+ [#88]: https://github.com/guard/listen/issues/88
320
+ [#93]: https://github.com/guard/listen/issues/93
321
+ [#95]: https://github.com/guard/listen/issues/95
322
+ [#96]: https://github.com/guard/listen/issues/96
323
+ [#98]: https://github.com/guard/listen/issues/98
324
+ [#103]: https://github.com/guard/listen/issues/103
325
+ [#104]: https://github.com/guard/listen/issues/104
326
+ [#110]: https://github.com/guard/listen/issues/110
327
+ [#112]: https://github.com/guard/listen/issues/112
328
+ [#113]: https://github.com/guard/listen/issues/113
329
+ [#115]: https://github.com/guard/listen/issues/115
330
+ [#117]: https://github.com/guard/listen/issues/117
331
+ [#118]: https://github.com/guard/listen/issues/118
332
+ [#120]: https://github.com/guard/listen/issues/120
333
+ [#122]: https://github.com/guard/listen/issues/122
334
+ [#124]: https://github.com/guard/listen/issues/124
335
+ [#131]: https://github.com/guard/listen/issues/131
336
+ [@21croissants]: https://github.com/21croissants
207
337
  [@Maher4Ever]: https://github.com/Maher4Ever
208
- [@dkubb]: https://github.com/dkubb
209
- [@ebroder]: https://github.com/ebroder
338
+ [@ahoward]: https://github.com/ahoward
210
339
  [@akerbos]: https://github.com/akerbos
340
+ [@antifuchs]: https://github.com/antifuchs
341
+ [@chriseppstein]: https://github.com/chriseppstein
211
342
  [@cobychapple]: https://github.com/cobychapple
212
343
  [@daemonza]: https://github.com/daemonza
344
+ [@dkubb]: https://github.com/dkubb
345
+ [@ebroder]: https://github.com/ebroder
213
346
  [@fny]: https://github.com/fny
347
+ [@luikore]: https://github.com/luikore
214
348
  [@markiz]: https://github.com/markiz
349
+ [@martikaljuve]: https://github.com/martikaljuve
215
350
  [@mat813]: https://github.com/mat813
351
+ [@mbj]: https://github.com/mbj
352
+ [@mrbinky3000]: https://github.com/mrbinky3000
216
353
  [@napcs]: https://github.com/napcs
217
354
  [@netzpirat]: https://github.com/netzpirat
218
355
  [@nex3]: https://github.com/nex3
356
+ [@nicobrevin]: https://github.com/nicobrevin
357
+ [@nilbus]: https://github.com/nilbus
358
+ [@nysalor]: https://github.com/nysalor
219
359
  [@piotr-sokolowski]: https://github.com/piotr-sokolowski
360
+ [@rehevkor5]: https://github.com/rehevkor5
220
361
  [@rymai]: https://github.com/rymai
221
362
  [@scottdavis]: https://github.com/scottdavis
222
363
  [@sunaku]: https://github.com/sunaku
364
+ [@tarsolya]: https://github.com/tarsolya
223
365
  [@textgoeshere]: https://github.com/textgoeshere
224
366
  [@thibaudgg]: https://github.com/thibaudgg
225
- [@tarsolya]: https://github.com/tarsolya
226
367
  [@vongruenigen]: https://github.com/vongruenigen
227
368
  [@zanker]: https://github.com/zanker
228
- [WDM]: https://github.com/Maher4Ever/wdm