guard 2.15.0 → 2.18.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d3499725d20725a5a0e1259e9e3f74694798f4a43e503f67f28bd218553bbe8
4
- data.tar.gz: a20150e135df2bef124397c8532d85b20a5ea6d7b78259763465175c512c637e
3
+ metadata.gz: 9bc4f16fcb5313bd7482ee1968c9292198956a24f44d0a20622313ef50ea840f
4
+ data.tar.gz: 86448d1f2f36026d02dab3da8d0ba6ed1a9fcc0219708ed2f61e1e9a857e60bd
5
5
  SHA512:
6
- metadata.gz: adcd66a415123303070578f425ea3aab1ccbbd1d0fad175054232d08da2dfa8365eb12e558cc6b1bf83874d29bb467a75cd636b3a8e5330f8e1dc6d408728988
7
- data.tar.gz: 9138af75c456be233f5df7b92acedb73ca8c257ade2020a2a1eedb0b2ac1b8e7b42922a94f7169cff4084f5b1d8fdf56942086a6978a3263af8840a85f678ea5
6
+ metadata.gz: 2ad2f478c89e07aca1e113acffc7efcf556818962186b0b853353eb1e32470e821d43b3d5aab7c3313c5028ce717b05a78c5e394db67a60d0f7251c3e56ca19a
7
+ data.tar.gz: 7f2565eded7d35d4b143c164600c3e8f606f15cf307890455cdadd5dd980820faa3967f4fb30e620fbce85f92ce7c1dbe4163460eb77074f5a5137c21325ec01
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.18.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.18.0
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: 2018-11-14 00:00:00.000000000 Z
11
+ date: 2021-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -50,14 +50,14 @@ dependencies:
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 0.9.12
53
+ version: 0.13.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 0.9.12
60
+ version: 0.13.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: lumberjack
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -234,8 +234,7 @@ 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
237
+ rubygems_version: 3.1.4
239
238
  signing_key:
240
239
  specification_version: 4
241
240
  summary: Guard keeps an eye on your file modifications