guard 2.15.0 → 2.17.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d3499725d20725a5a0e1259e9e3f74694798f4a43e503f67f28bd218553bbe8
4
- data.tar.gz: a20150e135df2bef124397c8532d85b20a5ea6d7b78259763465175c512c637e
3
+ metadata.gz: 909f2f0b8875294f9d73116fdcf9c0499cdd3e1e928db9fd8a0517ab7045f5e0
4
+ data.tar.gz: 0bd68633d9e2051c2912d01f941d16a601120379bdf841a688d850fa3a1be462
5
5
  SHA512:
6
- metadata.gz: adcd66a415123303070578f425ea3aab1ccbbd1d0fad175054232d08da2dfa8365eb12e558cc6b1bf83874d29bb467a75cd636b3a8e5330f8e1dc6d408728988
7
- data.tar.gz: 9138af75c456be233f5df7b92acedb73ca8c257ade2020a2a1eedb0b2ac1b8e7b42922a94f7169cff4084f5b1d8fdf56942086a6978a3263af8840a85f678ea5
6
+ metadata.gz: e25b07345fe9097d6e837ee1747e69df8c4d83d06c35e92548a96a2212dacfb1cee2016b74ad5fbb78ed74a2ade54ba17a844e305d6e45d8a194c722e3e84d25
7
+ data.tar.gz: 5ac8af0c983be8956442afa34e814865cdf3fec6616f7b3a5b8e6c7bb61339abe9b10332b45be5213ad910f2e1fb4a62fb2287a8ddb258d5b7ff45404ca562cc
data/README.md CHANGED
@@ -1,10 +1,14 @@
1
1
  # Guard
2
2
 
3
- **IMPORTANT: [Ruby 2.1 is officially outdated and unsupported!](https://www.ruby-lang.org/en/news/2016/03/30/ruby-2-1-9-released/) Please upgrade to Ruby >=2.3 or >=2.2.9 before installing Guard! To install for older versions, update Bundler at least 1.12: `gem update bundler` and Bundler should correctly resolve to earlier gems for your given Ruby version.**
3
+ **IMPORTANT: Please upgrade to Ruby >= 2.4 before installing Guard! To install for older versions, update Bundler at least 1.12: `gem update bundler` and Bundler should correctly resolve to earlier gems for your given Ruby version.**
4
+
5
+ - [Ruby 2.1 is officially outdated and unsupported!](https://www.ruby-lang.org/en/news/2016/03/30/ruby-2-1-9-released/)
6
+ - [Ruby 2.2 is officially outdated and unsupported!](https://www.ruby-lang.org/en/news/2018/06/20/support-of-ruby-2-2-has-ended/)
7
+ - [Ruby 2.3 is officially outdated and unsupported!](https://www.ruby-lang.org/en/news/2019/03/31/support-of-ruby-2-3-has-ended/)
4
8
 
5
9
  :exclamation: Guard is currently accepting more maintainers. Please [read this](https://github.com/guard/guard/wiki/Maintainers) if you're interested in joining the team.
6
10
 
7
- [![Gem Version](https://img.shields.io/gem/v/guard.svg?style=flat)](https://rubygems.org/gems/guard) [![Build Status](https://travis-ci.org/guard/guard.svg?branch=master)](https://travis-ci.org/guard/guard) [![Dependency Status](https://gemnasium.com/guard/guard.svg)](https://gemnasium.com/guard/guard) [![Code Climate](https://codeclimate.com/github/guard/guard/badges/gpa.svg)](https://codeclimate.com/github/guard/guard) [![Test Coverage](https://codeclimate.com/github/guard/guard/badges/coverage.svg)](https://codeclimate.com/github/guard/guard) [![Inline docs](http://inch-ci.org/github/guard/guard.svg)](http://inch-ci.org/github/guard/guard)
11
+ [![Gem Version](https://img.shields.io/gem/v/guard.svg?style=flat)](https://rubygems.org/gems/guard) [![Build Status](https://travis-ci.org/guard/guard.svg?branch=master)](https://travis-ci.org/guard/guard) [![Code Climate](https://codeclimate.com/github/guard/guard/badges/gpa.svg)](https://codeclimate.com/github/guard/guard) [![Test Coverage](https://codeclimate.com/github/guard/guard/badges/coverage.svg)](https://codeclimate.com/github/guard/guard) [![Inline docs](http://inch-ci.org/github/guard/guard.svg)](http://inch-ci.org/github/guard/guard) [![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com)
8
12
 
9
13
  <img src="http://f.cl.ly/items/0A0M3W2x3I1P450z341U/guard-Icon.png" alt="Guard Icon" align="right" />
10
14
  Guard automates various tasks by running custom rules whenever file or directories are modified.
@@ -31,8 +35,8 @@ Before you file an issue, make sure you have read the _[known issues](#issues)_
31
35
 
32
36
  * File system changes handled by our awesome [Listen](https://github.com/guard/listen) gem.
33
37
  * Support for visual system notifications.
34
- * Huge eco-system with [more than 220](https://rubygems.org/search?query=guard-) Guard plugins.
35
- * Tested against Ruby 2.2.9, 2.3.6, 2.4.3, 2.5.0, JRuby & Rubinius.
38
+ * Huge eco-system with [more than 300](https://rubygems.org/search?query=guard-) Guard plugins.
39
+ * Tested against the latest Ruby 2.4.x, 2.5.x, 2.6.x, JRuby & Rubinius. See [`.travis-ci.yml`](https://github.com/guard/guard/blob/master/.travis.yml) for the exact versions.
36
40
 
37
41
  ## Screencast
38
42
 
@@ -73,9 +77,7 @@ $ bundle exec guard
73
77
 
74
78
  If you are on Mac OS X and have problems with either Guard not reacting to file
75
79
  changes or Pry behaving strange, then you should [add proper Readline support
76
- to Ruby on Mac OS
77
- X](https://github.com/guard/guard/wiki/Add-Readline-support-to-Ruby-on-Mac-OS-X).
78
-
80
+ to Ruby on macOS](https://github.com/guard/guard/wiki/Add-Readline-support-to-Ruby-on-Mac-OS-X).
79
81
 
80
82
  ## Avoiding gem/dependency problems
81
83
 
@@ -86,10 +88,10 @@ If you're getting sick of typing `bundle exec` all the time, try one of the foll
86
88
  * (Recommended) Running `bundle binstub guard` will create `bin/guard` in your
87
89
  project, which means running `bin/guard` (tab completion will save you a key
88
90
  stroke or two) will have the exact same result as `bundle exec guard`.
89
-
91
+
90
92
  * Or, you can `alias be="bundle exec"` in your `.bashrc` or similar and the execute only `be guard`.
91
- **Protip**: It will work for all comands executed in `bundle exec` context!
92
-
93
+ **Protip**: It will work for all comands executed in `bundle exec` context!
94
+
93
95
 
94
96
  * Or, for RubyGems >= 2.2.0 (at least, though the more recent the better),
95
97
  simply set the `RUBYGEMS_GEMDEPS` environment variable to `-` (for autodetecting
@@ -132,8 +134,8 @@ Just launch Guard inside your Ruby or Rails project with:
132
134
  $ bundle exec guard
133
135
  ```
134
136
 
135
- Guard will look for a `Guardfile` in your current directory. If it does not find one, it will look in your `$HOME`
136
- directory for a `.Guardfile`.
137
+ Guard will look for a `Guardfile` or `guardfile.rb` in your current directory. If it does not find one, it will look
138
+ in your `$HOME` directory for a `.Guardfile`.
137
139
 
138
140
  Please look here to see all the [command line options for Guard](https://github.com/guard/guard/wiki/Command-line-options-for-Guard)
139
141
 
@@ -153,15 +155,32 @@ Before reporting a problem, please read how to [File an issue](https://github.co
153
155
  ## Development / Contributing
154
156
 
155
157
  See the [Contributing Guide](https://github.com/guard/guard/blob/master/CONTRIBUTING.md#development).
158
+
159
+ ## Releasing
160
+
161
+ ### Prerequisites
162
+
163
+ * You must have commit rights to the GitHub repository.
164
+ * You must have push rights for rubygems.org.
165
+
166
+ ### How to release
167
+
168
+ 1. Determine which would be the correct next version number according to [semver](http://semver.org/).
169
+ 1. Update the version in `./lib/guard/version.rb`.
170
+ 1. Commit the version in a single commit, the message should be "Bump VERSION to X.Y.Z".
171
+ 1. Push and open a pull request.
172
+ 1. Once CI is green, merge the pull request.
173
+ 1. Pull the changes locally and run `bundle exec rake release:full`; this will tag, push to GitHub, publish to rubygems.org, and publish the [release notes](https://github.com/guard/guard/releases) .
174
+
156
175
  ### Author
157
176
 
158
177
  [Thibaud Guillaume-Gentil](https://github.com/thibaudgg) ([@thibaudgg](https://twitter.com/thibaudgg))
159
178
 
160
179
  ### Core Team
161
180
 
162
- * R.I.P. :broken_heart: [Michael Kessler](https://github.com/netzpirat) ([flinkfinger.com](http://www.flinkfinger.com)).
181
+ * R.I.P. :broken_heart: [Michael Kessler](https://github.com/netzpirat).
163
182
  * [Rémy Coutable](https://github.com/rymai).
164
- * [Thibaud Guillaume-Gentil](https://github.com/thibaudgg) ([@thibaudgg](https://twitter.com/thibaudgg), [thibaud.gg](http://thibaud.gg/)).
183
+ * [Thibaud Guillaume-Gentil](https://github.com/thibaudgg) ([@thibaudgg](https://twitter.com/thibaudgg), [thibaud.gg](https://thibaud.gg/)).
165
184
 
166
185
  ### Contributors
167
186
 
@@ -47,13 +47,14 @@ module Guard
47
47
  exitcode = e.status
48
48
  end
49
49
 
50
- stop
51
50
  exitcode
51
+ ensure
52
+ stop
52
53
  end
53
54
 
54
55
  def stop
55
- listener.stop
56
- interactor.background
56
+ listener&.stop
57
+ interactor&.background
57
58
  UI.debug "Guard stops all plugins"
58
59
  Runner.new.run(:stop)
59
60
  Notifier.disconnect
data/lib/guard/dsl.rb CHANGED
@@ -37,7 +37,8 @@ module Guard
37
37
  #
38
38
  # There are two possible locations for the `Guardfile`:
39
39
  #
40
- # * The `Guardfile` in the current directory where Guard has been started
40
+ # * The `Guardfile` or `guardfile.rb` in the current directory where Guard
41
+ # has been started
41
42
  # * The `.Guardfile` in your home directory.
42
43
  #
43
44
  # In addition, if a user configuration `.guard.rb` in your home directory is
@@ -68,7 +69,7 @@ module Guard
68
69
  # notification :ruby_gntp, host: '192.168.1.5'
69
70
  #
70
71
  # @param [Symbol, String] notifier the name of the notifier to use
71
- # @param [Hash] options the notification library options
72
+ # @param [Hash] opts the notification library options
72
73
  #
73
74
  # @see Guard::Notifier for available notifier and its options.
74
75
  #
@@ -366,7 +367,7 @@ module Guard
366
367
  # @example Scope Guard to multiple plugins
367
368
  # scope plugins: [:jasmine, :rspec]
368
369
  #
369
- # @param [Hash] scopes the scope for the groups and plugins
370
+ # @param [Hash] scope the scope for the groups and plugins
370
371
  #
371
372
  def scope(scope = {})
372
373
  # TODO: use a Guardfile::Results class
@@ -18,6 +18,12 @@ module Guard
18
18
  class Evaluator
19
19
  Deprecated::Evaluator.add_deprecated(self) unless Config.new.strict?
20
20
 
21
+ DEFAULT_GUARDFILES = %w(
22
+ guardfile.rb
23
+ Guardfile
24
+ ~/.Guardfile
25
+ ).freeze
26
+
21
27
  ERROR_NO_GUARDFILE = "No Guardfile found,"\
22
28
  " please create one with `guard init`."
23
29
 
@@ -60,7 +66,7 @@ module Guard
60
66
  @contents = opts[:contents]
61
67
  elsif opts[:guardfile]
62
68
  @type = :custom
63
- @path = Pathname(opts[:guardfile]) # may be updated by _read
69
+ @path = Pathname.new(opts[:guardfile]) # may be updated by _read
64
70
  end
65
71
  end
66
72
 
@@ -178,19 +184,21 @@ module Guard
178
184
  end
179
185
 
180
186
  def _use_default!
181
- @path, @contents = _read("Guardfile")
182
- @type = :default
183
- rescue Errno::ENOENT
184
- begin
185
- @path, @contents = _read("~/.Guardfile")
186
- @type = :default
187
- rescue Errno::ENOENT
188
- fail NoGuardfileError, ERROR_NO_GUARDFILE
187
+ DEFAULT_GUARDFILES.each do |guardfile|
188
+ begin
189
+ @path, @contents = _read(guardfile)
190
+ @type = :default
191
+ break
192
+ rescue Errno::ENOENT
193
+ if guardfile == DEFAULT_GUARDFILES.last
194
+ fail NoGuardfileError, ERROR_NO_GUARDFILE
195
+ end
196
+ end
189
197
  end
190
198
  end
191
199
 
192
200
  def _read(path)
193
- full_path = Pathname(path).expand_path
201
+ full_path = Pathname.new(path.to_s).expand_path
194
202
  [full_path, full_path.read]
195
203
  rescue Errno::ENOENT
196
204
  fail
@@ -202,7 +210,7 @@ module Guard
202
210
  end
203
211
 
204
212
  def _guardfile_contents
205
- @user_config ||= Pathname("~/.guard.rb").expand_path.read
213
+ @user_config ||= Pathname.new("~/.guard.rb").expand_path.read
206
214
  [@contents, @user_config].compact.join("\n")
207
215
  rescue Errno::ENOENT
208
216
  @contents || ""
@@ -32,11 +32,11 @@ module Guard
32
32
 
33
33
  # The location of user defined templates
34
34
  begin
35
- HOME_TEMPLATES = Pathname("~/.guard/templates").expand_path
35
+ HOME_TEMPLATES = Pathname.new("~/.guard/templates").expand_path
36
36
  rescue ArgumentError
37
37
  # home isn't defined. Set to the root of the drive. Trust that there
38
38
  # won't be user defined templates there
39
- HOME_TEMPLATES = Pathname("/").expand_path
39
+ HOME_TEMPLATES = Pathname.new("/").expand_path
40
40
  end
41
41
 
42
42
  class Error < RuntimeError
@@ -63,7 +63,7 @@ module Guard
63
63
  # @see Guard::CLI#init
64
64
  #
65
65
  def create_guardfile
66
- path = Pathname("Guardfile").expand_path
66
+ path = Pathname.new("Guardfile").expand_path
67
67
  if path.exist?
68
68
  _ui(:error, "Guardfile already exists at #{path}")
69
69
  abort
@@ -81,7 +81,7 @@ module Guard
81
81
  # initialize
82
82
  #
83
83
  def initialize_template(plugin_name)
84
- guardfile = Pathname("Guardfile")
84
+ guardfile = Pathname.new("Guardfile")
85
85
 
86
86
  plugin_util = PluginUtil.new(plugin_name)
87
87
  # TODO: change to "valid?" method
@@ -40,11 +40,21 @@ module Guard
40
40
  class PryWrapper < Base
41
41
  # The default Ruby script to configure Guard Pry if the option `:guard_rc`
42
42
  # is not defined.
43
- GUARD_RC = "~/.guardrc"
43
+
44
+ GUARD_RC = if ENV["XDG_CONFIG_HOME"] && File.exist?(ENV["XDG_CONFIG_HOME"] + "/guard/guardrc")
45
+ ENV["XDG_CONFIG_HOME"] + "/guard/guardrc"
46
+ else
47
+ "~/.guardrc"
48
+ end
44
49
 
45
50
  # The default Guard Pry history file if the option `:history_file` is not
46
51
  # defined.
47
- HISTORY_FILE = "~/.guard_history"
52
+
53
+ HISTORY_FILE = if ENV["XDG_DATA_HOME"] && File.exist?(ENV["XDG_DATA_HOME"] + "/guard/history")
54
+ ENV["XDG_DATA_HOME"] + "/guard/history"
55
+ else
56
+ "~/.guard_history"
57
+ end
48
58
 
49
59
  # List of shortcuts for each interactor command
50
60
  SHORTCUTS = {
@@ -95,6 +105,14 @@ module Guard
95
105
 
96
106
  attr_reader :thread
97
107
 
108
+ def _pry_config
109
+ Pry.config
110
+ end
111
+
112
+ def _pry_commands
113
+ Pry.commands
114
+ end
115
+
98
116
  def _switch_to_pry
99
117
  th = nil
100
118
  @mutex.synchronize do
@@ -125,11 +143,10 @@ module Guard
125
143
  end
126
144
 
127
145
  def _setup(options)
128
- Pry.config.should_load_rc = false
129
- Pry.config.should_load_local_rc = false
130
- history_file_path = options[:history_file] || HISTORY_FILE
131
- Pry.config.history.file = File.expand_path(history_file_path)
146
+ _pry_config.should_load_rc = false
147
+ _pry_config.should_load_local_rc = false
132
148
 
149
+ _configure_history_file(options[:history_file] || HISTORY_FILE)
133
150
  _add_hooks(options)
134
151
 
135
152
  Commands::All.import
@@ -144,6 +161,17 @@ module Guard
144
161
  _configure_prompt
145
162
  end
146
163
 
164
+ def _configure_history_file(history_file)
165
+ history_file_path = File.expand_path(history_file)
166
+
167
+ # Pry >= 0.13
168
+ if _pry_config.respond_to?(:history_file=)
169
+ _pry_config.history_file = history_file_path
170
+ else
171
+ _pry_config.history.file = history_file_path
172
+ end
173
+ end
174
+
147
175
  # Add Pry hooks:
148
176
  #
149
177
  # * Load `~/.guardrc` within each new Pry session.
@@ -159,7 +187,7 @@ module Guard
159
187
  # Add a `when_started` hook that loads a global .guardrc if it exists.
160
188
  #
161
189
  def _add_load_guard_rc_hook(guard_rc)
162
- Pry.config.hooks.add_hook :when_started, :load_guard_rc do
190
+ _pry_config.hooks.add_hook :when_started, :load_guard_rc do
163
191
  guard_rc.expand_path.tap { |p| load p if p.exist? }
164
192
  end
165
193
  end
@@ -167,7 +195,7 @@ module Guard
167
195
  # Add a `when_started` hook that loads a project .guardrc if it exists.
168
196
  #
169
197
  def _add_load_project_guard_rc_hook(guard_rc)
170
- Pry.config.hooks.add_hook :when_started, :load_project_guard_rc do
198
+ _pry_config.hooks.add_hook :when_started, :load_project_guard_rc do
171
199
  load guard_rc if guard_rc.exist?
172
200
  end
173
201
  end
@@ -175,7 +203,7 @@ module Guard
175
203
  # Add a `after_eval` hook that restores visibility after a command is
176
204
  # eval.
177
205
  def _add_restore_visibility_hook
178
- Pry.config.hooks.add_hook :after_eval, :restore_visibility do
206
+ _pry_config.hooks.add_hook :after_eval, :restore_visibility do
179
207
  @terminal_settings.echo
180
208
  end
181
209
  end
@@ -192,7 +220,7 @@ module Guard
192
220
  # instead restarts guard.
193
221
  #
194
222
  def _replace_reset_command
195
- Pry.commands.command "reset", "Reset the Guard to a clean state." do
223
+ _pry_commands.command "reset", "Reset the Guard to a clean state." do
196
224
  output.puts "Guard reset."
197
225
  exec "guard"
198
226
  end
@@ -203,7 +231,7 @@ module Guard
203
231
  # beginning of a line).
204
232
  #
205
233
  def _create_run_all_command
206
- Pry.commands.block_command(/^$/, "Hit enter to run all") do
234
+ _pry_commands.block_command(/^$/, "Hit enter to run all") do
207
235
  Pry.run_command "all"
208
236
  end
209
237
  end
@@ -214,7 +242,7 @@ module Guard
214
242
  #
215
243
  def _create_command_aliases
216
244
  SHORTCUTS.each do |command, shortcut|
217
- Pry.commands.alias_command shortcut, command.to_s
245
+ _pry_commands.alias_command shortcut, command.to_s
218
246
  end
219
247
  end
220
248
 
@@ -225,8 +253,8 @@ module Guard
225
253
  #
226
254
  def _create_guard_commands
227
255
  Guard.state.session.plugins.all.each do |guard_plugin|
228
- cmd = "Run all #{ guard_plugin.title }"
229
- Pry.commands.create_command guard_plugin.name, cmd do
256
+ cmd = "Run all #{guard_plugin.title}"
257
+ _pry_commands.create_command guard_plugin.name, cmd do
230
258
  group "Guard"
231
259
 
232
260
  def process
@@ -245,8 +273,8 @@ module Guard
245
273
  Guard.state.session.groups.all.each do |group|
246
274
  next if group.name == :default
247
275
 
248
- cmd = "Run all #{ group.title }"
249
- Pry.commands.create_command group.name.to_s, cmd do
276
+ cmd = "Run all #{group.title}"
277
+ _pry_commands.create_command group.name.to_s, cmd do
250
278
  group "Guard"
251
279
 
252
280
  def process
@@ -260,7 +288,15 @@ module Guard
260
288
  # `pry`.
261
289
  #
262
290
  def _configure_prompt
263
- Pry.config.prompt = [_prompt(">"), _prompt("*")]
291
+ prompt_procs = [_prompt(">"), _prompt("*")]
292
+ prompt =
293
+ if Pry::Prompt.is_a?(Class)
294
+ Pry::Prompt.new("Guard", "Guard Pry prompt", prompt_procs)
295
+ else
296
+ prompt_procs
297
+ end
298
+
299
+ _pry_config.prompt = prompt
264
300
  end
265
301
 
266
302
  # Returns the plugins scope, or the groups scope ready for display in the
@@ -289,12 +325,11 @@ module Guard
289
325
  end
290
326
 
291
327
  def _history(pry)
292
- # https://github.com/pry/pry/blob/5bf2585d0a49a4a3666a9eae80ee31153e3ffcf4/CHANGELOG.md#v0120-november-5-2018
293
- if Gem::Version.new(Pry::VERSION) < Gem::Version.new("0.12.0")
294
- return pry.input_array.size
328
+ if pry.respond_to?(:input_ring)
329
+ pry.input_ring.size
330
+ else
331
+ pry.input_array.size
295
332
  end
296
-
297
- pry.input_ring.size
298
333
  end
299
334
  end
300
335
  end
@@ -16,7 +16,7 @@ module Guard
16
16
  end
17
17
 
18
18
  def self.disconnect
19
- @notifier.disconnect
19
+ @notifier && @notifier.disconnect
20
20
  @notifier = nil
21
21
  end
22
22
 
@@ -59,7 +59,7 @@ module Guard
59
59
  klass.new(options.delete(:watchers), options)
60
60
  else
61
61
  begin
62
- klass.new(options)
62
+ klass.new(**options)
63
63
  rescue ArgumentError => e
64
64
  fail "Failed to call #{klass}.new(options): #{e}"
65
65
  end
data/lib/guard/runner.rb CHANGED
@@ -11,7 +11,7 @@ module Guard
11
11
  #
12
12
  # @param [Symbol] task the task to run
13
13
  #
14
- # @param [Hash] scopes either the Guard plugin or the group to run the task
14
+ # @param [Hash] scope_hash either the Guard plugin or the group to run the task
15
15
  # on
16
16
  #
17
17
  def run(task, scope_hash = {})
@@ -70,7 +70,7 @@ module Guard
70
70
  # When the Group has `:halt_on_fail` disabled, we've to catch
71
71
  # `:task_has_failed` here in order to avoid an uncaught throw error.
72
72
  #
73
- # @param [Guard::Plugin] guard the Guard to execute
73
+ # @param [Guard::Plugin] plugin guard the Guard to execute
74
74
  # @param [Symbol] task the task to run
75
75
  # @param [Array] args the arguments for the task
76
76
  # @raise [:task_has_failed] when task has failed
data/lib/guard/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Guard
2
- VERSION = "2.15.0"
2
+ VERSION = "2.17.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.15.0
4
+ version: 2.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thibaud Guillaume-Gentil
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-14 00:00:00.000000000 Z
11
+ date: 2021-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -219,7 +219,7 @@ homepage: http://guardgem.org
219
219
  licenses:
220
220
  - MIT
221
221
  metadata: {}
222
- post_install_message:
222
+ post_install_message:
223
223
  rdoc_options: []
224
224
  require_paths:
225
225
  - lib
@@ -234,9 +234,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
234
  - !ruby/object:Gem::Version
235
235
  version: '0'
236
236
  requirements: []
237
- rubyforge_project:
238
- rubygems_version: 2.7.6
239
- signing_key:
237
+ rubygems_version: 3.2.15
238
+ signing_key:
240
239
  specification_version: 4
241
240
  summary: Guard keeps an eye on your file modifications
242
241
  test_files: []