listen 2.8.4 → 2.8.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -11
- data/lib/listen/adapter/base.rb +8 -4
- data/lib/listen/adapter/bsd.rb +8 -25
- data/lib/listen/adapter/tcp.rb +2 -1
- data/lib/listen/internals/logging.rb +12 -8
- data/lib/listen/listener.rb +1 -1
- data/lib/listen/version.rb +1 -1
- metadata +4 -121
- data/.gitignore +0 -28
- data/.hound.yml +0 -3
- data/.rspec +0 -2
- data/.rubocop.yml +0 -20
- data/.rubocop_todo.yml +0 -33
- data/.travis.yml +0 -15
- data/.yardopts +0 -11
- data/Gemfile +0 -48
- data/Guardfile +0 -16
- data/Rakefile +0 -151
- data/TROUBLESHOOTING.md +0 -139
- data/listen.gemspec +0 -33
- data/spec/acceptance/listen_spec.rb +0 -230
- data/spec/acceptance/tcp_spec.rb +0 -139
- data/spec/lib/listen/adapter/base_spec.rb +0 -31
- data/spec/lib/listen/adapter/bsd_spec.rb +0 -14
- data/spec/lib/listen/adapter/darwin_spec.rb +0 -145
- data/spec/lib/listen/adapter/linux_spec.rb +0 -93
- data/spec/lib/listen/adapter/polling_spec.rb +0 -48
- data/spec/lib/listen/adapter/tcp_spec.rb +0 -129
- data/spec/lib/listen/adapter/windows_spec.rb +0 -14
- data/spec/lib/listen/adapter_spec.rb +0 -75
- data/spec/lib/listen/change_spec.rb +0 -104
- data/spec/lib/listen/directory_spec.rb +0 -180
- data/spec/lib/listen/file_spec.rb +0 -252
- data/spec/lib/listen/listener_spec.rb +0 -482
- data/spec/lib/listen/record_spec.rb +0 -377
- data/spec/lib/listen/silencer_spec.rb +0 -100
- data/spec/lib/listen/tcp/broadcaster_spec.rb +0 -124
- data/spec/lib/listen/tcp/listener_spec.rb +0 -104
- data/spec/lib/listen/tcp/message_spec.rb +0 -138
- data/spec/lib/listen_spec.rb +0 -52
- data/spec/spec_helper.rb +0 -52
- data/spec/support/acceptance_helper.rb +0 -275
- data/spec/support/fixtures_helper.rb +0 -30
- data/spec/support/platform_helper.rb +0 -15
- data/vendor/hound/config/style_guides/ruby.yml +0 -259
data/.rubocop_todo.yml
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
# This configuration was generated by `rubocop --auto-gen-config`
|
2
|
-
# on 2014-11-11 16:35:31 +0100 using RuboCop version 0.25.0.
|
3
|
-
# The point is for the user to remove these configuration records
|
4
|
-
# one by one as the offenses are removed from the code base.
|
5
|
-
# Note that changes in the inspected code, or installation of new
|
6
|
-
# versions of RuboCop, may require this file to be generated again.
|
7
|
-
|
8
|
-
# Offense count: 2
|
9
|
-
# Configuration parameters: CountComments.
|
10
|
-
Metrics/ClassLength:
|
11
|
-
Max: 223
|
12
|
-
|
13
|
-
# Offense count: 7
|
14
|
-
Metrics/CyclomaticComplexity:
|
15
|
-
Max: 14
|
16
|
-
|
17
|
-
# Offense count: 27
|
18
|
-
# Configuration parameters: CountComments.
|
19
|
-
Metrics/MethodLength:
|
20
|
-
Max: 34
|
21
|
-
|
22
|
-
# Offense count: 5
|
23
|
-
Metrics/PerceivedComplexity:
|
24
|
-
Max: 16
|
25
|
-
|
26
|
-
# Offense count: 19
|
27
|
-
Style/Documentation:
|
28
|
-
Enabled: false
|
29
|
-
|
30
|
-
# Offense count: 44
|
31
|
-
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
32
|
-
Style/DotPosition:
|
33
|
-
Enabled: false
|
data/.travis.yml
DELETED
data/.yardopts
DELETED
data/Gemfile
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
gemspec
|
4
|
-
|
5
|
-
require 'rbconfig'
|
6
|
-
|
7
|
-
case RbConfig::CONFIG['target_os']
|
8
|
-
|
9
|
-
when /mswin|mingw|cygwin/i
|
10
|
-
gem 'wdm', '>= 0.1.0'
|
11
|
-
Kernel.warn 'NOTE: Known issues for your platform:'
|
12
|
-
Kernel.warn ' * celluloid-io dns resovler bug causes TCP adapter to fail'
|
13
|
-
Kernel.warn ' (fixed celluloid-io requires unreleased celluloid version)'
|
14
|
-
Kernel.warn " * celluloid master branch doesn't work properly on Windows"
|
15
|
-
|
16
|
-
# has fix, but causes above other problems:
|
17
|
-
# gem 'celluloid-io', github: 'celluloid/celluloid-io', ref: 'a72cae2e'
|
18
|
-
|
19
|
-
when /bsd|dragonfly/i
|
20
|
-
|
21
|
-
gem 'rb-kqueue', '>= 0.2'
|
22
|
-
|
23
|
-
Kernel.warn 'NOTE: BSD is unsupported because:'
|
24
|
-
Kernel.warn "* Ruby threads don't work correctly (Ruby/MRI unit tests)"
|
25
|
-
Kernel.warn "* and because of them, Celluloid doesn't work correctly"
|
26
|
-
|
27
|
-
Kernel.warn '* FFI blows up when libc is a LD script (ac63e07f7)'
|
28
|
-
gem 'ffi', github: 'carpetsmoker/ffi', ref: 'ac63e07f7'
|
29
|
-
|
30
|
-
Kernel.warn '* Celluloid core detection blows up (7fdef04)'
|
31
|
-
gem 'celluloid', github: 'celluloid/celluloid', ref: '7fdef04'
|
32
|
-
|
33
|
-
else
|
34
|
-
# handled by gemspec
|
35
|
-
end
|
36
|
-
|
37
|
-
group :tool do
|
38
|
-
gem 'yard', require: false
|
39
|
-
gem 'guard-rspec', require: false
|
40
|
-
gem 'rubocop', '0.25.0' # TODO: should match Gemfile HoundCi
|
41
|
-
gem 'guard-rubocop'
|
42
|
-
gem 'pry-rescue'
|
43
|
-
gem 'pry-stack_explorer'
|
44
|
-
end
|
45
|
-
|
46
|
-
group :test do
|
47
|
-
gem 'coveralls', require: false
|
48
|
-
end
|
data/Guardfile
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
ignore(%r{spec/\.fixtures/})
|
2
|
-
|
3
|
-
group :specs, halt_on_fail: true do
|
4
|
-
guard :rspec, cmd: 'bundle exec rspec', failed_mode: :keep do
|
5
|
-
watch(%r{^spec/.+_spec\.rb$})
|
6
|
-
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
7
|
-
watch(%r{^spec/support/*}) { 'spec' }
|
8
|
-
watch('spec/spec_helper.rb') { 'spec' }
|
9
|
-
end
|
10
|
-
|
11
|
-
guard :rubocop, all_on_start: false, cli: '--rails' do
|
12
|
-
watch(%r{.+\.rb$}) { |m| m[0] }
|
13
|
-
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
14
|
-
watch(%r{(?:.+/)?\.rubocop_todo\.yml$}) { |m| File.dirname(m[0]) }
|
15
|
-
end
|
16
|
-
end
|
data/Rakefile
DELETED
@@ -1,151 +0,0 @@
|
|
1
|
-
require 'bundler/gem_tasks'
|
2
|
-
require 'rspec/core/rake_task'
|
3
|
-
|
4
|
-
RSpec::Core::RakeTask.new(:spec)
|
5
|
-
|
6
|
-
if ENV["CI"] != "true"
|
7
|
-
require "rubocop/rake_task"
|
8
|
-
RuboCop::RakeTask.new(:rubocop)
|
9
|
-
task default: [:spec, :rubocop]
|
10
|
-
else
|
11
|
-
task default: [:spec]
|
12
|
-
end
|
13
|
-
|
14
|
-
class Releaser
|
15
|
-
def initialize(options = {})
|
16
|
-
@project_name = options.delete(:project_name) do
|
17
|
-
fail "project_name is needed!"
|
18
|
-
end
|
19
|
-
|
20
|
-
@gem_name = options.delete(:gem_name) do
|
21
|
-
fail "gem_name is needed!"
|
22
|
-
end
|
23
|
-
|
24
|
-
@github_repo = options.delete(:github_repo) do
|
25
|
-
fail "github_repo is needed!"
|
26
|
-
end
|
27
|
-
|
28
|
-
@version = options.delete(:version) do
|
29
|
-
fail "version is needed!"
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def full
|
34
|
-
rubygems
|
35
|
-
github
|
36
|
-
end
|
37
|
-
|
38
|
-
def rubygems
|
39
|
-
begin
|
40
|
-
STDOUT.puts "Release #{@project_name} #{@version} to RubyGems? (y/n)"
|
41
|
-
input = STDIN.gets.chomp.downcase
|
42
|
-
end while !%w(y n).include?(input)
|
43
|
-
|
44
|
-
exit if input == "n"
|
45
|
-
|
46
|
-
Rake::Task["release"].invoke
|
47
|
-
end
|
48
|
-
|
49
|
-
def github
|
50
|
-
tag_name = "v#{@version}"
|
51
|
-
|
52
|
-
require "gems"
|
53
|
-
|
54
|
-
_verify_released
|
55
|
-
_verify_tag_pushed
|
56
|
-
|
57
|
-
require "octokit"
|
58
|
-
gh_client = Octokit::Client.new(netrc: true)
|
59
|
-
|
60
|
-
gh_release = _detect_gh_release(gh_client, tag_name, true)
|
61
|
-
return unless gh_release
|
62
|
-
|
63
|
-
STDOUT.puts "Draft release for #{tag_name}:\n"
|
64
|
-
STDOUT.puts gh_release.body
|
65
|
-
STDOUT.puts "\n-------------------------\n\n"
|
66
|
-
|
67
|
-
_confirm_publish
|
68
|
-
|
69
|
-
return unless _update_release(gh_client, gh_release, tag_name)
|
70
|
-
|
71
|
-
gh_release = _detect_gh_release(gh_client, tag_name, false)
|
72
|
-
|
73
|
-
_success_summary(gh_release, tag_name)
|
74
|
-
end
|
75
|
-
|
76
|
-
private
|
77
|
-
|
78
|
-
def _verify_released
|
79
|
-
if @version != Gems.info(@gem_name)["version"]
|
80
|
-
STDOUT.puts "#{@project_name} #{@version} is not yet released."
|
81
|
-
STDOUT.puts "Please release it first with: rake release:gem"
|
82
|
-
exit
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
def _verify_tag_pushed
|
87
|
-
tags = `git ls-remote --tags origin`.split("\n")
|
88
|
-
return if tags.detect { |tag| tag =~ /v#{@version}$/ }
|
89
|
-
|
90
|
-
STDOUT.puts "The tag v#{@version} has not yet been pushed."
|
91
|
-
STDOUT.puts "Please push it first with: rake release:gem"
|
92
|
-
exit
|
93
|
-
end
|
94
|
-
|
95
|
-
def _success_summary(gh_release, tag_name)
|
96
|
-
href = gh_release.rels[:html].href
|
97
|
-
STDOUT.puts "GitHub release #{tag_name} has been published!"
|
98
|
-
STDOUT.puts "\nPlease enjoy and spread the word!"
|
99
|
-
STDOUT.puts "Lack of inspiration? Here's a tweet you could improve:\n\n"
|
100
|
-
STDOUT.puts "Just released #{@project_name} #{@version}! #{href}"
|
101
|
-
end
|
102
|
-
|
103
|
-
def _detect_gh_release(gh_client, tag_name, draft)
|
104
|
-
gh_releases = gh_client.releases(@github_repo)
|
105
|
-
gh_releases.detect { |r| r.tag_name == tag_name && r.draft == draft }
|
106
|
-
end
|
107
|
-
|
108
|
-
def _confirm_publish
|
109
|
-
begin
|
110
|
-
STDOUT.puts "Would you like to publish this GitHub release now? (y/n)"
|
111
|
-
input = STDIN.gets.chomp.downcase
|
112
|
-
end while !%w(y n).include?(input)
|
113
|
-
|
114
|
-
exit if input == "n"
|
115
|
-
end
|
116
|
-
|
117
|
-
def _update_release(gh_client, gh_release, tag_name)
|
118
|
-
result = gh_client.update_release(gh_release.rels[:self].href, draft: false)
|
119
|
-
return true if result
|
120
|
-
STDOUT.puts "GitHub release #{tag_name} couldn't be published!"
|
121
|
-
false
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
PROJECT_NAME = "Listen"
|
126
|
-
CURRENT_VERSION = Listen::VERSION
|
127
|
-
|
128
|
-
def releaser
|
129
|
-
$releaser ||= Releaser.new(
|
130
|
-
project_name: PROJECT_NAME,
|
131
|
-
gem_name: "guard",
|
132
|
-
github_repo: "guard/guard",
|
133
|
-
version: CURRENT_VERSION)
|
134
|
-
end
|
135
|
-
|
136
|
-
namespace :release do
|
137
|
-
desc "Push #{PROJECT_NAME} #{CURRENT_VERSION} to RubyGems and publish"\
|
138
|
-
" its GitHub release"
|
139
|
-
|
140
|
-
task full: ["release:gem", "release:github"]
|
141
|
-
|
142
|
-
desc "Push #{PROJECT_NAME} #{CURRENT_VERSION} to RubyGems"
|
143
|
-
task :gem do
|
144
|
-
releaser.rubygems
|
145
|
-
end
|
146
|
-
|
147
|
-
desc "Publish #{PROJECT_NAME} #{CURRENT_VERSION} GitHub release"
|
148
|
-
task :github do
|
149
|
-
releaser.github
|
150
|
-
end
|
151
|
-
end
|
data/TROUBLESHOOTING.md
DELETED
@@ -1,139 +0,0 @@
|
|
1
|
-
# Issues and troubleshooting
|
2
|
-
|
3
|
-
## 3 steps before you start diagnosing problems
|
4
|
-
|
5
|
-
These 3 steps will:
|
6
|
-
* help quickly troubleshoot issues caused by obscure problems
|
7
|
-
* help quickly identify the area of the problem (a full list is [below](#known-issues))
|
8
|
-
* help you get familiar with listen's diagnostic mode
|
9
|
-
* help you create relevant output before you submit an issue
|
10
|
-
|
11
|
-
1) For effective troubleshooting set the `LISTEN_GEM_DEBUGGING=1` variable
|
12
|
-
before starting listen.
|
13
|
-
|
14
|
-
2) Verify polling works (see `force_polling` option).
|
15
|
-
|
16
|
-
After starting listen, you should see something like:
|
17
|
-
```
|
18
|
-
INFO -- : Celluloid loglevel set to: 1
|
19
|
-
INFO -- : Record.build(): 0.06773114204406738 seconds
|
20
|
-
```
|
21
|
-
|
22
|
-
(Listen uses [Celluloid](https://github.com/celluloid/celluloid) for logging, so if you don't see anything, `Celluloid.logger` might have been disabled by a different gem, e.g. sidekiq)
|
23
|
-
|
24
|
-
If you don't see the line `Record.build()`:
|
25
|
-
* and there's a lot of disk activity, you may have to wait a few seconds
|
26
|
-
* you may be using an outdated version of Listen
|
27
|
-
* listen may have got stuck on a recursive symlink, see #259
|
28
|
-
|
29
|
-
3) Make changes e.g. `touch foo` or `echo "a" >> foo` (for troubleshooting, avoid using an editor which could generate too many misleading events)
|
30
|
-
|
31
|
-
You should see something like:
|
32
|
-
|
33
|
-
```
|
34
|
-
INFO -- : listen: raw changes: [[:added, "/home/me/foo"]]
|
35
|
-
INFO -- : listen: final changes: {:modified=>[], :added=>["/home/me/foo"], :removed=>[]}
|
36
|
-
```
|
37
|
-
|
38
|
-
"raw changes" contains changes collected during the `:wait_for_delay` and `:latency` intervals, while "final changes" is what listen decided are relevant changes (for better editor support).
|
39
|
-
|
40
|
-
## Adapter-specific diagnostics
|
41
|
-
|
42
|
-
Use the `LISTEN_GEM_DEBUGGING` set to `2` for additional info.
|
43
|
-
|
44
|
-
E.g. you'll get:
|
45
|
-
|
46
|
-
```
|
47
|
-
INFO -- : Celluloid loglevel set to: 0
|
48
|
-
DEBUG -- : Broadcaster: starting tcp server: 127.0.0.1:4000
|
49
|
-
DEBUG -- : Adapter: considering TCP ...
|
50
|
-
DEBUG -- : Adapter: considering polling ...
|
51
|
-
DEBUG -- : Adapter: considering optimized backend...
|
52
|
-
INFO -- : Record.build(): 0.0007264614105224609 seconds
|
53
|
-
DEBUG -- : inotify: foo ([:create])
|
54
|
-
DEBUG -- : raw queue: [:file, #<Pathname:/tmp/x>, "foo", {:change=>:added}]
|
55
|
-
DEBUG -- : added: file:/tmp/x/foo ({:change=>:added})
|
56
|
-
DEBUG -- : inotify: foo ([:attrib])
|
57
|
-
DEBUG -- : raw queue: [:file, #<Pathname:/tmp/x>, "foo", {:change=>:modified}]
|
58
|
-
DEBUG -- : inotify: foo ([:close_write, :close])
|
59
|
-
DEBUG -- : raw queue: [:file, #<Pathname:/tmp/x>, "foo", {:change=>:modified}]
|
60
|
-
DEBUG -- : modified: file:/tmp/x/foo ({:change=>:modified})
|
61
|
-
DEBUG -- : modified: file:/tmp/x/foo ({:change=>:modified})
|
62
|
-
INFO -- : listen: raw changes: [[:added, "/tmp/x/foo"]]
|
63
|
-
INFO -- : listen: final changes: {:modified=>[], :added=>["/tmp/x/foo"], :removed=>[]}
|
64
|
-
DEBUG -- : Callback took 4.410743713378906e-05 seconds
|
65
|
-
```
|
66
|
-
|
67
|
-
This shows:
|
68
|
-
* host port listened to (for forwarding events)
|
69
|
-
* the actual adapter used (here, it's "optimized backend")
|
70
|
-
* the event received (here it's `:create` from rb-inotify)
|
71
|
-
* "raw queue" - events queued for processing (collected during `:latency`)
|
72
|
-
* "Callback took" - how long it took your app to process changes
|
73
|
-
|
74
|
-
#### Known issues
|
75
|
-
|
76
|
-
Here are common issues grouped by area in which they occur:
|
77
|
-
|
78
|
-
1. System/OS
|
79
|
-
* [Update your Dropbox client](http://www.dropbox.com/downloading), if you have Dropbox installed.
|
80
|
-
* old MacOS (< 10.6)
|
81
|
-
* certain old versions of Ruby (try a newer Ruby on Windows for `wdm` and TCP mode to work)
|
82
|
-
* system limits
|
83
|
-
* threads for Celluloid (e.g. Virtual Machine CPU/RAM limitations)
|
84
|
-
* [inotify limits (Linux)](https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers)
|
85
|
-
* system in an inconsistent state or stuck (try rebooting/updating on Windows/Mac - seriously!)
|
86
|
-
* FSEvent bug: (http://feedback.livereload.com/knowledgebase/articles/86239)
|
87
|
-
|
88
|
-
2. Installation/gems/config
|
89
|
-
* not running listen or your app (e.g. guard) with `bundle exec` first
|
90
|
-
* old version of listen
|
91
|
-
* problems with adapter gems (`wdm`, `rb-fsevent`, `rb-inotify`) not installed, not detected properly (Windows) or not in Gemfile (Windows)
|
92
|
-
* Celluloid actors are silently crashing (when no LISTEN_GEM_DEBUGGING variable is present)
|
93
|
-
* see the [Performance](https://github.com/guard/listen/blob/master/README.md#Performance) section in the README
|
94
|
-
|
95
|
-
3. Filesystem
|
96
|
-
* VM shared folders and network folders (NFS, Samba, SSHFS) don't work with optimized backends (workaround: polling, [TCP mode](https://github.com/guard/listen/blob/master/README.md#forwarding-file-events-over-tcp), Vagrant's rsync-auto mode, rsync/unison)
|
97
|
-
* FAT/HFS timestamps have 1-second precision, which can cause polling and rb-fsevent to be very slow on large files (try `LISTEN_GEM_DISABLE_HASHING` variable)
|
98
|
-
* virtual filesystems may not implement event monitoring
|
99
|
-
* restrictive file/folder permissions
|
100
|
-
* watched folders moved/removed while listen was running (try restarting listen and moving/copying watched folder to a new location)
|
101
|
-
|
102
|
-
4. Insufficient latency (for polling and rb-fsevent)
|
103
|
-
* too many files being watched (polling) and not enough threads or CPU power
|
104
|
-
* slow editor save (see below)
|
105
|
-
* slow hard drive
|
106
|
-
* encryption
|
107
|
-
* a combination of factors
|
108
|
-
|
109
|
-
5. Too few or too many callbacks (`:wait_for_delay` option)
|
110
|
-
* complex editor file-save causes events to happen during callback (result: multiple callbacks if wait_for_delay is too small)
|
111
|
-
* too large when using TCP mode (see timestamps in output to debug)
|
112
|
-
* too many changes happening too frequently (use ignore rules to filter them out)
|
113
|
-
|
114
|
-
6. Paths
|
115
|
-
* default ignore rules
|
116
|
-
* encoding-related issues (bad filenames, mounted FS encoding mismatch)
|
117
|
-
* symlinks may cause listen to hang (#259)
|
118
|
-
* symlinks may not work as you expect or work differently for polling vs non-polling
|
119
|
-
* TCP paths don't match with client's current working directory
|
120
|
-
|
121
|
-
7. Editors
|
122
|
-
* "atomic save" in editors may confuse listen (disable it and try again)
|
123
|
-
* listen's default ignore rules may need tweaking
|
124
|
-
* your editor may not be supported yet (see default ignore rules for editors)
|
125
|
-
* use `touch foo` or `echo "a" >> foo` to confirm it's an editor issue
|
126
|
-
* slow terminal/GFX card, slow font, transparency effects in terminal
|
127
|
-
* complex/lengthy editor save (due to e.g. many plugins running during save)
|
128
|
-
* listen has complex rules for detecting atomic file saves (Linux)
|
129
|
-
|
130
|
-
8. TCP (tcp mode) issues
|
131
|
-
* not a recent listen gem (before 2.7.11)
|
132
|
-
* additional network delay and collecting may need a higher `:wait_for_delay` value
|
133
|
-
* changes (added, removed, deleted) not matching actual changes
|
134
|
-
|
135
|
-
If your application keeps using the polling-adapter and you can't figure out why, feel free to [open an issue](https://github.com/guard/listen/issues/new) (and be sure to [give all the details](https://github.com/guard/listen/blob/master/CONTRIBUTING.md)).
|
136
|
-
|
137
|
-
Listen traps SIGINT signal to properly finalize listeners. If you plan
|
138
|
-
on trapping this signal yourself - make sure to call `Listen.stop` in
|
139
|
-
signal handler.
|
data/listen.gemspec
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'listen/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = 'listen'
|
8
|
-
s.version = Listen::VERSION
|
9
|
-
s.license = 'MIT'
|
10
|
-
s.author = 'Thibaud Guillaume-Gentil'
|
11
|
-
s.email = 'thibaud@thibaud.gg'
|
12
|
-
s.homepage = 'https://github.com/guard/listen'
|
13
|
-
s.summary = 'Listen to file modifications'
|
14
|
-
s.description = 'The Listen gem listens to file modifications and '\
|
15
|
-
'notifies you about the changes. Works everywhere!'
|
16
|
-
|
17
|
-
s.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
18
|
-
s.test_files = s.files.grep(/^spec\//)
|
19
|
-
s.executable = 'listen'
|
20
|
-
s.require_path = 'lib'
|
21
|
-
|
22
|
-
s.required_ruby_version = '>= 1.9.3'
|
23
|
-
|
24
|
-
s.add_dependency 'celluloid', '>= 0.15.2'
|
25
|
-
s.add_dependency 'rb-fsevent', '>= 0.9.3'
|
26
|
-
s.add_dependency 'rb-inotify', '>= 0.9'
|
27
|
-
|
28
|
-
s.add_development_dependency 'bundler', '>= 1.3.5'
|
29
|
-
s.add_development_dependency 'celluloid-io', '>= 0.15.0'
|
30
|
-
s.add_development_dependency 'rake'
|
31
|
-
s.add_development_dependency 'rspec', '~> 3.0.0rc1'
|
32
|
-
s.add_development_dependency 'rspec-retry'
|
33
|
-
end
|