guard 2.15.0 → 2.16.2
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 +4 -4
- data/README.md +28 -13
- data/lib/guard/commander.rb +4 -3
- data/lib/guard/dsl.rb +4 -3
- data/lib/guard/guardfile/evaluator.rb +19 -11
- data/lib/guard/guardfile/generator.rb +4 -4
- data/lib/guard/jobs/pry_wrapper.rb +45 -20
- data/lib/guard/notifier.rb +1 -1
- data/lib/guard/runner.rb +2 -2
- data/lib/guard/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 787baab35992b3608d89a5d4a064d300a9a636ef9432510126347989fc1568b9
|
|
4
|
+
data.tar.gz: 7fda9a3ecd35de97a472292a7021b53644e473333588985cd40435e9a048662f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f94c5f80ed6f67bb9ff71e058406101ac52aca3661b00e1b82981abef890e4d15dcae871d41e883299614d1eece60b322c1265c9f007573375771bc0049353f3
|
|
7
|
+
data.tar.gz: e3748fdf116614e2063091a86728d37ee85ee871a50cbd64628c8c5189756d91e4fd0018e1966d3ef72e6ffbcad99043e19e901459eb5bd3631b564d6c73d47c
|
data/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
: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
6
|
|
|
7
|
-
[](https://rubygems.org/gems/guard) [](https://travis-ci.org/guard/guard) [](https://rubygems.org/gems/guard) [](https://travis-ci.org/guard/guard) [](https://codeclimate.com/github/guard/guard) [](https://codeclimate.com/github/guard/guard) [](http://inch-ci.org/github/guard/guard) [](https://houndci.com)
|
|
8
8
|
|
|
9
9
|
<img src="http://f.cl.ly/items/0A0M3W2x3I1P450z341U/guard-Icon.png" alt="Guard Icon" align="right" />
|
|
10
10
|
Guard automates various tasks by running custom rules whenever file or directories are modified.
|
|
@@ -31,8 +31,8 @@ Before you file an issue, make sure you have read the _[known issues](#issues)_
|
|
|
31
31
|
|
|
32
32
|
* File system changes handled by our awesome [Listen](https://github.com/guard/listen) gem.
|
|
33
33
|
* Support for visual system notifications.
|
|
34
|
-
* Huge eco-system with [more than
|
|
35
|
-
* Tested against Ruby 2.
|
|
34
|
+
* Huge eco-system with [more than 300](https://rubygems.org/search?query=guard-) Guard plugins.
|
|
35
|
+
* Tested against the latest Ruby 2.3.x, 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
36
|
|
|
37
37
|
## Screencast
|
|
38
38
|
|
|
@@ -73,9 +73,7 @@ $ bundle exec guard
|
|
|
73
73
|
|
|
74
74
|
If you are on Mac OS X and have problems with either Guard not reacting to file
|
|
75
75
|
changes or Pry behaving strange, then you should [add proper Readline support
|
|
76
|
-
to Ruby on Mac
|
|
77
|
-
X](https://github.com/guard/guard/wiki/Add-Readline-support-to-Ruby-on-Mac-OS-X).
|
|
78
|
-
|
|
76
|
+
to Ruby on macOS](https://github.com/guard/guard/wiki/Add-Readline-support-to-Ruby-on-Mac-OS-X).
|
|
79
77
|
|
|
80
78
|
## Avoiding gem/dependency problems
|
|
81
79
|
|
|
@@ -86,10 +84,10 @@ If you're getting sick of typing `bundle exec` all the time, try one of the foll
|
|
|
86
84
|
* (Recommended) Running `bundle binstub guard` will create `bin/guard` in your
|
|
87
85
|
project, which means running `bin/guard` (tab completion will save you a key
|
|
88
86
|
stroke or two) will have the exact same result as `bundle exec guard`.
|
|
89
|
-
|
|
87
|
+
|
|
90
88
|
* 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
|
-
|
|
89
|
+
**Protip**: It will work for all comands executed in `bundle exec` context!
|
|
90
|
+
|
|
93
91
|
|
|
94
92
|
* Or, for RubyGems >= 2.2.0 (at least, though the more recent the better),
|
|
95
93
|
simply set the `RUBYGEMS_GEMDEPS` environment variable to `-` (for autodetecting
|
|
@@ -132,8 +130,8 @@ Just launch Guard inside your Ruby or Rails project with:
|
|
|
132
130
|
$ bundle exec guard
|
|
133
131
|
```
|
|
134
132
|
|
|
135
|
-
Guard will look for a `Guardfile` in your current directory. If it does not find one, it will look
|
|
136
|
-
directory for a `.Guardfile`.
|
|
133
|
+
Guard will look for a `Guardfile` or `guardfile.rb` in your current directory. If it does not find one, it will look
|
|
134
|
+
in your `$HOME` directory for a `.Guardfile`.
|
|
137
135
|
|
|
138
136
|
Please look here to see all the [command line options for Guard](https://github.com/guard/guard/wiki/Command-line-options-for-Guard)
|
|
139
137
|
|
|
@@ -153,15 +151,32 @@ Before reporting a problem, please read how to [File an issue](https://github.co
|
|
|
153
151
|
## Development / Contributing
|
|
154
152
|
|
|
155
153
|
See the [Contributing Guide](https://github.com/guard/guard/blob/master/CONTRIBUTING.md#development).
|
|
154
|
+
|
|
155
|
+
## Releasing
|
|
156
|
+
|
|
157
|
+
### Prerequisites
|
|
158
|
+
|
|
159
|
+
* You must have commit rights to the GitHub repository.
|
|
160
|
+
* You must have push rights for rubygems.org.
|
|
161
|
+
|
|
162
|
+
### How to release
|
|
163
|
+
|
|
164
|
+
1. Determine which would be the correct next version number according to [semver](http://semver.org/).
|
|
165
|
+
1. Update the version in `./lib/guard/version.rb`.
|
|
166
|
+
1. Commit the version in a single commit, the message should be "Bump VERSION to X.Y.Z".
|
|
167
|
+
1. Push and open a pull request.
|
|
168
|
+
1. Once CI is green, merge the pull request.
|
|
169
|
+
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) .
|
|
170
|
+
|
|
156
171
|
### Author
|
|
157
172
|
|
|
158
173
|
[Thibaud Guillaume-Gentil](https://github.com/thibaudgg) ([@thibaudgg](https://twitter.com/thibaudgg))
|
|
159
174
|
|
|
160
175
|
### Core Team
|
|
161
176
|
|
|
162
|
-
* R.I.P. :broken_heart: [Michael Kessler](https://github.com/netzpirat)
|
|
177
|
+
* R.I.P. :broken_heart: [Michael Kessler](https://github.com/netzpirat).
|
|
163
178
|
* [Rémy Coutable](https://github.com/rymai).
|
|
164
|
-
* [Thibaud Guillaume-Gentil](https://github.com/thibaudgg) ([@thibaudgg](https://twitter.com/thibaudgg), [thibaud.gg](
|
|
179
|
+
* [Thibaud Guillaume-Gentil](https://github.com/thibaudgg) ([@thibaudgg](https://twitter.com/thibaudgg), [thibaud.gg](https://thibaud.gg/)).
|
|
165
180
|
|
|
166
181
|
### Contributors
|
|
167
182
|
|
data/lib/guard/commander.rb
CHANGED
|
@@ -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
|
|
56
|
-
interactor
|
|
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
|
|
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]
|
|
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]
|
|
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
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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
|
|
@@ -95,6 +95,14 @@ module Guard
|
|
|
95
95
|
|
|
96
96
|
attr_reader :thread
|
|
97
97
|
|
|
98
|
+
def _pry_config
|
|
99
|
+
Pry.config
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def _pry_commands
|
|
103
|
+
Pry.commands
|
|
104
|
+
end
|
|
105
|
+
|
|
98
106
|
def _switch_to_pry
|
|
99
107
|
th = nil
|
|
100
108
|
@mutex.synchronize do
|
|
@@ -125,11 +133,10 @@ module Guard
|
|
|
125
133
|
end
|
|
126
134
|
|
|
127
135
|
def _setup(options)
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
history_file_path = options[:history_file] || HISTORY_FILE
|
|
131
|
-
Pry.config.history.file = File.expand_path(history_file_path)
|
|
136
|
+
_pry_config.should_load_rc = false
|
|
137
|
+
_pry_config.should_load_local_rc = false
|
|
132
138
|
|
|
139
|
+
_configure_history_file(options[:history_file] || HISTORY_FILE)
|
|
133
140
|
_add_hooks(options)
|
|
134
141
|
|
|
135
142
|
Commands::All.import
|
|
@@ -144,6 +151,17 @@ module Guard
|
|
|
144
151
|
_configure_prompt
|
|
145
152
|
end
|
|
146
153
|
|
|
154
|
+
def _configure_history_file(history_file)
|
|
155
|
+
history_file_path = File.expand_path(history_file)
|
|
156
|
+
|
|
157
|
+
# Pry >= 0.13
|
|
158
|
+
if _pry_config.respond_to?(:history_file=)
|
|
159
|
+
_pry_config.history_file = history_file_path
|
|
160
|
+
else
|
|
161
|
+
_pry_config.history.file = history_file_path
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
147
165
|
# Add Pry hooks:
|
|
148
166
|
#
|
|
149
167
|
# * Load `~/.guardrc` within each new Pry session.
|
|
@@ -159,7 +177,7 @@ module Guard
|
|
|
159
177
|
# Add a `when_started` hook that loads a global .guardrc if it exists.
|
|
160
178
|
#
|
|
161
179
|
def _add_load_guard_rc_hook(guard_rc)
|
|
162
|
-
|
|
180
|
+
_pry_config.hooks.add_hook :when_started, :load_guard_rc do
|
|
163
181
|
guard_rc.expand_path.tap { |p| load p if p.exist? }
|
|
164
182
|
end
|
|
165
183
|
end
|
|
@@ -167,7 +185,7 @@ module Guard
|
|
|
167
185
|
# Add a `when_started` hook that loads a project .guardrc if it exists.
|
|
168
186
|
#
|
|
169
187
|
def _add_load_project_guard_rc_hook(guard_rc)
|
|
170
|
-
|
|
188
|
+
_pry_config.hooks.add_hook :when_started, :load_project_guard_rc do
|
|
171
189
|
load guard_rc if guard_rc.exist?
|
|
172
190
|
end
|
|
173
191
|
end
|
|
@@ -175,7 +193,7 @@ module Guard
|
|
|
175
193
|
# Add a `after_eval` hook that restores visibility after a command is
|
|
176
194
|
# eval.
|
|
177
195
|
def _add_restore_visibility_hook
|
|
178
|
-
|
|
196
|
+
_pry_config.hooks.add_hook :after_eval, :restore_visibility do
|
|
179
197
|
@terminal_settings.echo
|
|
180
198
|
end
|
|
181
199
|
end
|
|
@@ -192,7 +210,7 @@ module Guard
|
|
|
192
210
|
# instead restarts guard.
|
|
193
211
|
#
|
|
194
212
|
def _replace_reset_command
|
|
195
|
-
|
|
213
|
+
_pry_commands.command "reset", "Reset the Guard to a clean state." do
|
|
196
214
|
output.puts "Guard reset."
|
|
197
215
|
exec "guard"
|
|
198
216
|
end
|
|
@@ -203,7 +221,7 @@ module Guard
|
|
|
203
221
|
# beginning of a line).
|
|
204
222
|
#
|
|
205
223
|
def _create_run_all_command
|
|
206
|
-
|
|
224
|
+
_pry_commands.block_command(/^$/, "Hit enter to run all") do
|
|
207
225
|
Pry.run_command "all"
|
|
208
226
|
end
|
|
209
227
|
end
|
|
@@ -214,7 +232,7 @@ module Guard
|
|
|
214
232
|
#
|
|
215
233
|
def _create_command_aliases
|
|
216
234
|
SHORTCUTS.each do |command, shortcut|
|
|
217
|
-
|
|
235
|
+
_pry_commands.alias_command shortcut, command.to_s
|
|
218
236
|
end
|
|
219
237
|
end
|
|
220
238
|
|
|
@@ -225,8 +243,8 @@ module Guard
|
|
|
225
243
|
#
|
|
226
244
|
def _create_guard_commands
|
|
227
245
|
Guard.state.session.plugins.all.each do |guard_plugin|
|
|
228
|
-
cmd = "Run all #{
|
|
229
|
-
|
|
246
|
+
cmd = "Run all #{guard_plugin.title}"
|
|
247
|
+
_pry_commands.create_command guard_plugin.name, cmd do
|
|
230
248
|
group "Guard"
|
|
231
249
|
|
|
232
250
|
def process
|
|
@@ -245,8 +263,8 @@ module Guard
|
|
|
245
263
|
Guard.state.session.groups.all.each do |group|
|
|
246
264
|
next if group.name == :default
|
|
247
265
|
|
|
248
|
-
cmd = "Run all #{
|
|
249
|
-
|
|
266
|
+
cmd = "Run all #{group.title}"
|
|
267
|
+
_pry_commands.create_command group.name.to_s, cmd do
|
|
250
268
|
group "Guard"
|
|
251
269
|
|
|
252
270
|
def process
|
|
@@ -260,7 +278,15 @@ module Guard
|
|
|
260
278
|
# `pry`.
|
|
261
279
|
#
|
|
262
280
|
def _configure_prompt
|
|
263
|
-
|
|
281
|
+
prompt_procs = [_prompt(">"), _prompt("*")]
|
|
282
|
+
prompt =
|
|
283
|
+
if Pry::Prompt.is_a?(Class)
|
|
284
|
+
Pry::Prompt.new("Guard", "Guard Pry prompt", prompt_procs)
|
|
285
|
+
else
|
|
286
|
+
prompt_procs
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
_pry_config.prompt = prompt
|
|
264
290
|
end
|
|
265
291
|
|
|
266
292
|
# Returns the plugins scope, or the groups scope ready for display in the
|
|
@@ -289,12 +315,11 @@ module Guard
|
|
|
289
315
|
end
|
|
290
316
|
|
|
291
317
|
def _history(pry)
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
318
|
+
if pry.respond_to?(:input_ring)
|
|
319
|
+
pry.input_ring.size
|
|
320
|
+
else
|
|
321
|
+
pry.input_array.size
|
|
295
322
|
end
|
|
296
|
-
|
|
297
|
-
pry.input_ring.size
|
|
298
323
|
end
|
|
299
324
|
end
|
|
300
325
|
end
|
data/lib/guard/notifier.rb
CHANGED
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]
|
|
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
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.
|
|
4
|
+
version: 2.16.2
|
|
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:
|
|
11
|
+
date: 2020-03-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
@@ -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
|
-
|
|
238
|
-
rubygems_version: 2.7.6
|
|
237
|
+
rubygems_version: 3.0.3
|
|
239
238
|
signing_key:
|
|
240
239
|
specification_version: 4
|
|
241
240
|
summary: Guard keeps an eye on your file modifications
|