listen 2.7.4 → 2.7.5

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +232 -0
  3. data/.travis.yml +6 -3
  4. data/Gemfile +9 -1
  5. data/Guardfile +6 -1
  6. data/README.md +17 -4
  7. data/lib/listen.rb +9 -4
  8. data/lib/listen/adapter.rb +5 -7
  9. data/lib/listen/adapter/base.rb +8 -5
  10. data/lib/listen/adapter/bsd.rb +58 -21
  11. data/lib/listen/adapter/darwin.rb +2 -4
  12. data/lib/listen/adapter/linux.rb +20 -10
  13. data/lib/listen/adapter/polling.rb +0 -2
  14. data/lib/listen/adapter/tcp.rb +6 -5
  15. data/lib/listen/adapter/windows.rb +8 -6
  16. data/lib/listen/change.rb +1 -2
  17. data/lib/listen/cli.rb +25 -22
  18. data/lib/listen/directory.rb +8 -6
  19. data/lib/listen/listener.rb +25 -19
  20. data/lib/listen/record.rb +4 -2
  21. data/lib/listen/silencer.rb +55 -25
  22. data/lib/listen/tcp.rb +9 -0
  23. data/lib/listen/tcp/broadcaster.rb +0 -2
  24. data/lib/listen/tcp/listener.rb +13 -8
  25. data/lib/listen/tcp/message.rb +0 -2
  26. data/lib/listen/version.rb +1 -1
  27. data/listen.gemspec +4 -3
  28. data/spec/acceptance/listen_spec.rb +190 -109
  29. data/spec/acceptance/tcp_spec.rb +28 -26
  30. data/spec/lib/listen/adapter/base_spec.rb +14 -12
  31. data/spec/lib/listen/adapter/bsd_spec.rb +5 -2
  32. data/spec/lib/listen/adapter/darwin_spec.rb +5 -2
  33. data/spec/lib/listen/adapter/linux_spec.rb +40 -25
  34. data/spec/lib/listen/adapter/polling_spec.rb +29 -14
  35. data/spec/lib/listen/adapter/tcp_spec.rb +24 -6
  36. data/spec/lib/listen/adapter/windows_spec.rb +5 -2
  37. data/spec/lib/listen/adapter_spec.rb +20 -17
  38. data/spec/lib/listen/change_spec.rb +36 -26
  39. data/spec/lib/listen/directory_spec.rb +128 -71
  40. data/spec/lib/listen/file_spec.rb +67 -34
  41. data/spec/lib/listen/listener_spec.rb +135 -105
  42. data/spec/lib/listen/record_spec.rb +32 -29
  43. data/spec/lib/listen/silencer_spec.rb +78 -56
  44. data/spec/lib/listen/tcp/broadcaster_spec.rb +3 -2
  45. data/spec/lib/listen/tcp/listener_spec.rb +17 -11
  46. data/spec/lib/listen/tcp/message_spec.rb +1 -1
  47. data/spec/lib/listen_spec.rb +18 -6
  48. data/spec/spec_helper.rb +5 -1
  49. data/spec/support/acceptance_helper.rb +3 -3
  50. data/spec/support/fixtures_helper.rb +10 -9
  51. metadata +17 -15
@@ -2,19 +2,20 @@ require 'spec_helper'
2
2
 
3
3
  describe Listen do
4
4
  describe '.to' do
5
- it "initalizes listener" do
5
+ it 'initalizes listener' do
6
6
  expect(Listen::Listener).to receive(:new).with('/path')
7
7
  described_class.to('/path')
8
8
  end
9
9
 
10
10
  context 'when using :forward_to option' do
11
11
  it 'initializes TCP-listener in broadcast-mode' do
12
- expect(Listen::TCP::Listener).to receive(:new).with(4000, :broadcaster, '/path', {})
12
+ expect(Listen::TCP::Listener).to receive(:new).
13
+ with(4000, :broadcaster, '/path', {})
13
14
  described_class.to('/path', forward_to: 4000)
14
15
  end
15
16
  end
16
17
 
17
- it "sets stopping at false" do
18
+ it 'sets stopping at false' do
18
19
  allow(Listen::Listener).to receive(:new)
19
20
  Listen.to('/path')
20
21
  expect(Listen.stopping).to be_false
@@ -22,15 +23,26 @@ describe Listen do
22
23
  end
23
24
 
24
25
  describe '.stop' do
25
- it "stops all listeners & Celluloid" do
26
+ it 'stops all listeners & Celluloid' do
26
27
  Listen.stop
27
- expect(Celluloid.internal_pool.running?).to be_false
28
+
29
+ # TODO: running? returns internal_pool on 0.15.2
30
+ # (remove after Celluloid dependency is bumped)
31
+ buggy_method = if Celluloid.respond_to?(:internal_pool)
32
+ Celluloid.running? == Celluloid.internal_pool
33
+ else
34
+ false
35
+ end
36
+
37
+ pool = buggy_method ? Celluloid.internal_pool : Celluloid
38
+ expect(pool).to_not be_running
28
39
  end
29
40
  end
30
41
 
31
42
  describe '.on' do
32
43
  it 'initializes TCP-listener in recipient-mode' do
33
- expect(Listen::TCP::Listener).to receive(:new).with(4000, :recipient, '/path')
44
+ expect(Listen::TCP::Listener).to receive(:new).
45
+ with(4000, :recipient, '/path')
34
46
  described_class.on(4000, '/path')
35
47
  end
36
48
  end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,11 @@
1
1
  require 'rubygems'
2
+
2
3
  require 'listen'
4
+ require 'listen/tcp'
3
5
 
4
- def ci?; ENV['CI'] end
6
+ def ci?
7
+ ENV['CI']
8
+ end
5
9
 
6
10
  if ci?
7
11
  require 'coveralls'
@@ -25,7 +25,7 @@ end
25
25
  def relative_path(changes)
26
26
  changes.map do |change|
27
27
  unfrozen_copy = change.dup
28
- [paths].flatten.each { |path| unfrozen_copy.gsub!(%r{#{path.to_s}/}, '') }
28
+ [paths].flatten.each { |path| unfrozen_copy.gsub!(/#{path.to_s}\//, '') }
29
29
  unfrozen_copy
30
30
  end
31
31
  end
@@ -33,8 +33,8 @@ end
33
33
  # Generates a small time difference before performing a time sensitive
34
34
  # task (like comparing mtimes of files).
35
35
  #
36
- # @note Modification time for files only includes the milliseconds on Linux with MRI > 1.9.2
37
- # and platform that support it (OS X 10.8 not included),
36
+ # @note Modification time for files only includes the milliseconds on Linux
37
+ # with MRI > 1.9.2 and platform that support it (OS X 10.8 not included),
38
38
  # that's why we generate a difference that's greater than 1 second.
39
39
  #
40
40
  def sleep_until_next_second
@@ -5,23 +5,24 @@ include FileUtils
5
5
  # Prepares temporary fixture-directories and
6
6
  # cleans them afterwards.
7
7
  #
8
- # @param [Fixnum] number_of_directories the number of fixture-directories to make
8
+ # @param [Fixnum] number_of_directories the number of fixture-directories to
9
+ # make
9
10
  #
10
11
  # @yield [path1, path2, ...] the empty fixture-directories
11
12
  # @yieldparam [String] path the path to a fixture directory
12
13
  #
13
14
  def fixtures(number_of_directories = 1)
14
15
  current_pwd = pwd
15
- paths = 1.upto(number_of_directories).map do
16
- File.expand_path(File.join(pwd, "spec/.fixtures/#{Time.now.to_f.to_s.sub('.', '') + rand(9999).to_s}"))
17
- end
18
-
19
- # Create the dirs
20
- paths.each { |p| mkdir_p(p) }
21
-
16
+ paths = 1.upto(number_of_directories).map { mk_fixture_tmp_dir }
22
17
  cd(paths.first) if number_of_directories == 1
23
18
  yield(*paths)
24
19
  ensure
25
20
  cd current_pwd
26
- paths.map { |p| rm_rf(p) if File.exists?(p) }
21
+ paths.map { |p| rm_rf(p) if File.exist?(p) }
22
+ end
23
+
24
+ def mk_fixture_tmp_dir
25
+ timestamp = Time.now.to_f.to_s.sub('.', '') + rand(9999).to_s
26
+ path = Pathname.pwd.join('spec', '.fixtures', timestamp).expand_path
27
+ path.tap(&:mkpath)
27
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: listen
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.4
4
+ version: 2.7.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thibaud Guillaume-Gentil
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-02 00:00:00.000000000 Z
11
+ date: 2014-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: celluloid
@@ -25,61 +25,61 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.15.2
27
27
  - !ruby/object:Gem::Dependency
28
- name: celluloid-io
28
+ name: rb-fsevent
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.15.0
33
+ version: 0.9.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.15.0
40
+ version: 0.9.3
41
41
  - !ruby/object:Gem::Dependency
42
- name: rb-fsevent
42
+ name: rb-inotify
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.9.3
47
+ version: '0.9'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.9.3
54
+ version: '0.9'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rb-inotify
56
+ name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0.9'
62
- type: :runtime
61
+ version: 1.3.5
62
+ type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '0.9'
68
+ version: 1.3.5
69
69
  - !ruby/object:Gem::Dependency
70
- name: bundler
70
+ name: celluloid-io
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 1.3.5
75
+ version: 0.15.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 1.3.5
82
+ version: 0.15.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -132,6 +132,7 @@ extra_rdoc_files: []
132
132
  files:
133
133
  - ".gitignore"
134
134
  - ".rspec"
135
+ - ".rubocop.yml"
135
136
  - ".travis.yml"
136
137
  - ".yardopts"
137
138
  - CHANGELOG.md
@@ -158,6 +159,7 @@ files:
158
159
  - lib/listen/listener.rb
159
160
  - lib/listen/record.rb
160
161
  - lib/listen/silencer.rb
162
+ - lib/listen/tcp.rb
161
163
  - lib/listen/tcp/broadcaster.rb
162
164
  - lib/listen/tcp/listener.rb
163
165
  - lib/listen/tcp/message.rb