guard 2.12.4 → 2.12.5

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
  SHA1:
3
- metadata.gz: 31304dcf6eb2ea4ad7677f6af161705a083b8702
4
- data.tar.gz: 1cafb2eb01a3d796457aadaacaad763fabbc4575
3
+ metadata.gz: a6cb2b065313fadd1e7938935252c4ba5ff98631
4
+ data.tar.gz: fbe543cde3dac216174ef74dbc7ef8a7d97c307c
5
5
  SHA512:
6
- metadata.gz: 2c038d3d9f9a7595800148f250cde17fd234f4026ac0ee8559ed0d8ef82d11184f20d32f707ff30128e013f46b70d63397f096fd3bdc96f994312db351a07804
7
- data.tar.gz: 4607e87c1287162050b2bf7a662b6a27021124e4a258379515cece722c319eb7c56276fbc9ed4680b533e727e8621075d327aa80c07fa80a290d1a984b09ce26
6
+ metadata.gz: 53c56440d62730e2f4b7c31006dc88854042fee6ef6abcd0f9840a7efbc01b7393176383e630078465c356da681c3d864f5747f4f1e0d62f43cb1eaabb5b11b0
7
+ data.tar.gz: 43d9c9262a46f4a0d7129be5db869db6daecf3994057e89b5f2138e74a66b934a649045ae9c58d70756f53ebec3d768ad323a49042afc997c6f87b7f6cb933f4
data/bin/guard CHANGED
@@ -22,7 +22,7 @@ def ignore_interrupts(*args)
22
22
  rescue Interrupt
23
23
  retry
24
24
  end
25
- return $? == 0
25
+ $? == 0
26
26
  end
27
27
 
28
28
  guard_core_path = Gem.bin_path("guard", "_guard-core")
data/lib/guard/cli.rb CHANGED
@@ -20,45 +20,45 @@ module Guard
20
20
  desc "start", "Starts Guard"
21
21
 
22
22
  method_option :clear,
23
- type: :boolean,
23
+ type: :boolean,
24
24
  default: false,
25
25
  aliases: "-c",
26
- banner: "Auto clear shell before each action"
26
+ banner: "Auto clear shell before each action"
27
27
 
28
28
  method_option :notify,
29
- type: :boolean,
29
+ type: :boolean,
30
30
  default: true,
31
31
  aliases: "-n",
32
- banner: "Notifications feature"
32
+ banner: "Notifications feature"
33
33
 
34
34
  method_option :debug,
35
- type: :boolean,
35
+ type: :boolean,
36
36
  default: false,
37
37
  aliases: "-d",
38
- banner: "Show debug information"
38
+ banner: "Show debug information"
39
39
 
40
40
  method_option :group,
41
- type: :array,
41
+ type: :array,
42
42
  default: [],
43
43
  aliases: "-g",
44
- banner: "Run only the passed groups"
44
+ banner: "Run only the passed groups"
45
45
 
46
46
  method_option :plugin,
47
- type: :array,
47
+ type: :array,
48
48
  default: [],
49
49
  aliases: "-P",
50
- banner: "Run only the passed plugins"
50
+ banner: "Run only the passed plugins"
51
51
 
52
52
  # TODO: make it plural
53
53
  method_option :watchdir,
54
- type: :array,
54
+ type: :array,
55
55
  aliases: "-w",
56
- banner: "Specify the directories to watch"
56
+ banner: "Specify the directories to watch"
57
57
 
58
58
  method_option :guardfile,
59
- type: :string,
59
+ type: :string,
60
60
  aliases: "-G",
61
- banner: "Specify a Guardfile"
61
+ banner: "Specify a Guardfile"
62
62
 
63
63
  method_option :no_interactions,
64
64
  type: :boolean,
@@ -74,26 +74,26 @@ module Guard
74
74
 
75
75
  # Listen options
76
76
  method_option :latency,
77
- type: :numeric,
77
+ type: :numeric,
78
78
  aliases: "-l",
79
- banner: 'Overwrite Listen\'s default latency'
79
+ banner: 'Overwrite Listen\'s default latency'
80
80
 
81
81
  method_option :force_polling,
82
- type: :boolean,
82
+ type: :boolean,
83
83
  default: false,
84
84
  aliases: "-p",
85
- banner: "Force usage of the Listen polling listener"
85
+ banner: "Force usage of the Listen polling listener"
86
86
 
87
87
  method_option :wait_for_delay,
88
- type: :numeric,
88
+ type: :numeric,
89
89
  aliases: "-y",
90
- banner: 'Overwrite Listen\'s default wait_for_delay'
90
+ banner: 'Overwrite Listen\'s default wait_for_delay'
91
91
 
92
92
  method_option :listen_on,
93
- type: :string,
93
+ type: :string,
94
94
  aliases: "-o",
95
95
  default: false,
96
- banner: "Specify a network address to Listen on for "\
96
+ banner: "Specify a network address to Listen on for "\
97
97
  "file change events (e.g. for use in VMs)"
98
98
 
99
99
  def self.help(shell, subcommand = false)
@@ -24,7 +24,7 @@ module Guard
24
24
  scopes, unknown = Guard.state.session.convert_scope(entries)
25
25
 
26
26
  unless unknown.empty?
27
- output.puts "Unknown scopes: #{ unknown.join(", ") }"
27
+ output.puts "Unknown scopes: #{ unknown.join(', ') }"
28
28
  return
29
29
  end
30
30
 
@@ -23,7 +23,7 @@ module Guard
23
23
  scopes, unknown = Guard.state.session.convert_scope(entries)
24
24
 
25
25
  unless unknown.empty?
26
- output.puts "Unknown scopes: #{ unknown.join(", ") }"
26
+ output.puts "Unknown scopes: #{ unknown.join(', ') }"
27
27
  return
28
28
  end
29
29
 
@@ -20,7 +20,7 @@ module Guard
20
20
  scope, unknown = Guard.state.session.convert_scope(entries)
21
21
 
22
22
  unless unknown.empty?
23
- output.puts "Unknown scopes: #{unknown.join(",") }"
23
+ output.puts "Unknown scopes: #{unknown.join(',') }"
24
24
  return
25
25
  end
26
26
 
@@ -29,7 +29,7 @@ module Guard
29
29
  'Guard::Guardfile::Evaluator.new(options).evaluate_guardfile'
30
30
  instead.
31
31
 
32
- #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % "#deprecated-methods-1"}
32
+ #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % '#deprecated-methods-1'}
33
33
  EOS
34
34
 
35
35
  def evaluate_guardfile(options = {})
@@ -30,7 +30,7 @@ module Guard
30
30
 
31
31
  Please use 'Guard.plugins(filter)' instead.
32
32
 
33
- #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % "#deprecated-methods"}
33
+ #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % '#deprecated-methods'}
34
34
  EOS
35
35
 
36
36
  def guards(filter = nil)
@@ -49,7 +49,7 @@ module Guard
49
49
 
50
50
  Please use 'Guard.add_plugin(name, options = {})' instead.
51
51
 
52
- #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % "#deprecated-methods"}
52
+ #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % '#deprecated-methods'}
53
53
  EOS
54
54
 
55
55
  def add_guard(*args)
@@ -71,7 +71,7 @@ module Guard
71
71
  Please use 'Guard::PluginUtil.new(name).plugin_class(fail_gracefully:
72
72
  fail_gracefully)' instead.
73
73
 
74
- #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % "#deprecated-methods"}
74
+ #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % '#deprecated-methods'}
75
75
  EOS
76
76
 
77
77
  def get_guard_class(name, fail_gracefully = false)
@@ -89,7 +89,7 @@ module Guard
89
89
 
90
90
  Please use 'Guard::PluginUtil.new(name).plugin_location' instead.
91
91
 
92
- #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % "#deprecated-methods"}
92
+ #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % '#deprecated-methods'}
93
93
  EOS
94
94
 
95
95
  def locate_guard(name)
@@ -108,7 +108,7 @@ module Guard
108
108
 
109
109
  Please use 'Guard::PluginUtil.plugin_names' instead.
110
110
 
111
- #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % "#deprecated-methods"}
111
+ #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % '#deprecated-methods'}
112
112
  EOS
113
113
 
114
114
  def guard_gem_names
@@ -246,7 +246,6 @@ module Guard
246
246
  "Please file an issue if you rely on this option working."
247
247
  fail NotImplementedError, format(msg, key)
248
248
  end
249
-
250
249
  end.new
251
250
  end
252
251
 
@@ -27,7 +27,7 @@ module Guard
27
27
  Please use 'Guard::Guardfile::Generator.new(options).create_guardfile'
28
28
  instead.
29
29
 
30
- #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % "#deprecated-methods-2"}
30
+ #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % '#deprecated-methods-2'}
31
31
  EOS
32
32
 
33
33
  def create_guardfile(options = {})
@@ -49,7 +49,7 @@ module Guard
49
49
  'Guard::Guardfile::Generator.new.initialize_template(plugin_name)'
50
50
  instead.
51
51
 
52
- #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % "#deprecated-methods-2"}
52
+ #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % '#deprecated-methods-2'}
53
53
  EOS
54
54
 
55
55
  def initialize_template(plugin_name)
@@ -71,7 +71,7 @@ module Guard
71
71
  Please use 'Guard::Guardfile::Generator.new.initialize_all_templates'
72
72
  instead.
73
73
 
74
- #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % "#deprecated-methods-2"}
74
+ #{MORE_INFO_ON_UPGRADING_TO_GUARD_2 % '#deprecated-methods-2'}
75
75
  EOS
76
76
 
77
77
  def initialize_all_templates
data/lib/guard/dsl.rb CHANGED
@@ -143,7 +143,7 @@ module Guard
143
143
  @current_groups.pop
144
144
  else
145
145
  UI.error \
146
- "No Guard plugins found in the group '#{ groups.join(", ") }',"\
146
+ "No Guard plugins found in the group '#{ groups.join(', ') }',"\
147
147
  " please add at least one."
148
148
  end
149
149
  end
@@ -117,8 +117,8 @@ module Guard
117
117
  final_rows = supported.each_with_object([]) do |(name, _), rows|
118
118
  available = detected_names.include?(name) ? "✔" : "✘"
119
119
 
120
- notifier = detected.detect { |n| n[:name] == name }
121
- used = notifier ? "✔" : "✘"
120
+ notifier = detected.detect { |n| n[:name] == name }
121
+ used = notifier ? "✔" : "✘"
122
122
 
123
123
  options = notifier ? notifier[:options] : {}
124
124
 
@@ -0,0 +1,51 @@
1
+ require "guard/dsl"
2
+
3
+ module Guard
4
+ # TODO: this should probably be a base class for Dsl instead (in Guard 3.x)
5
+ class DslReader < Dsl
6
+ attr_reader :plugin_names
7
+
8
+ def initialize
9
+ super
10
+ @plugin_names = []
11
+ end
12
+
13
+ def guard(name, _options = {})
14
+ @plugin_names << name
15
+ end
16
+
17
+ # Stub everything else
18
+ def notification
19
+ end
20
+
21
+ def interactor(_options)
22
+ end
23
+
24
+ def group(*_args)
25
+ end
26
+
27
+ def watch(_pattern, &_action)
28
+ end
29
+
30
+ def callback(*_args, &_block)
31
+ end
32
+
33
+ def ignore(*_regexps)
34
+ end
35
+
36
+ def ignore!(*_regexps)
37
+ end
38
+
39
+ def logger(_options)
40
+ end
41
+
42
+ def scope(_scope = {})
43
+ end
44
+
45
+ def directories(_directories)
46
+ end
47
+
48
+ def clearing(_on)
49
+ end
50
+ end
51
+ end
data/lib/guard/group.rb CHANGED
@@ -33,7 +33,7 @@ module Guard
33
33
  # throws `:task_has_failed`
34
34
  #
35
35
  def initialize(name, options = {})
36
- @name = name.to_sym
36
+ @name = name.to_sym
37
37
  @options = options
38
38
  end
39
39
 
@@ -5,6 +5,7 @@ require "guard/options"
5
5
  require "guard/plugin"
6
6
 
7
7
  require "guard/dsl"
8
+ require "guard/dsl_reader"
8
9
 
9
10
  module Guard
10
11
  module Guardfile
@@ -105,7 +106,9 @@ module Guard
105
106
  # @return [Boolean] whether the Guard plugin has been declared
106
107
  #
107
108
  def guardfile_include?(plugin_name)
108
- /^\s*guard\s*\(?\s*['":]#{plugin_name}['"]?/.match(@contents)
109
+ reader = DslReader.new
110
+ reader.evaluate(@contents, @path || "", 1)
111
+ reader.plugin_names.include?(plugin_name)
109
112
  end
110
113
 
111
114
  attr_reader :path
@@ -160,7 +163,7 @@ module Guard
160
163
 
161
164
  return false unless (source_from_option) || inline
162
165
 
163
- @source = :inline
166
+ @source = :inline
164
167
  @guardfile_contents = options[:guardfile_contents]
165
168
 
166
169
  UI.info "Using inline Guardfile."
@@ -66,8 +66,18 @@ module Guard
66
66
 
67
67
  plugin_util = PluginUtil.new(plugin_name)
68
68
  # TODO: change to "valid?" method
69
- if plugin_util.plugin_class(fail_gracefully: true)
70
- plugin_util.add_to_guardfile
69
+ plugin_class = plugin_util.plugin_class(fail_gracefully: true)
70
+ if plugin_class
71
+ begin
72
+ plugin_util.add_to_guardfile
73
+ rescue Errno::ENOENT => error
74
+ # TODO: refactor
75
+ template = plugin_class.template(plugin_util.plugin_location)
76
+ _ui(:error, "Found class #{plugin_class} but loading it's template"\
77
+ "failed: '#{template}'")
78
+ _ui(:error, "Error is: #{error}")
79
+ return
80
+ end
71
81
  return
72
82
  end
73
83
 
@@ -43,7 +43,7 @@ module Guard
43
43
  private
44
44
 
45
45
  def _notify(*args)
46
- UI.debug "Command execution: #{args.join(" ")}"
46
+ UI.debug "Command execution: #{args.join(' ')}"
47
47
  end
48
48
 
49
49
  # reset singleton - called by tests
@@ -162,7 +162,7 @@ module Guard
162
162
 
163
163
  # TODO: call this from within action, not within interactor command
164
164
  def convert_scope(entries)
165
- scopes = { plugins: [], groups: [] }
165
+ scopes = { plugins: [], groups: [] }
166
166
  unknown = []
167
167
 
168
168
  entries.each do |entry|
@@ -48,16 +48,16 @@ module Guard
48
48
 
49
49
  # List of shortcuts for each interactor command
50
50
  SHORTCUTS = {
51
- help: "h",
52
- all: "a",
53
- reload: "r",
54
- change: "c",
55
- show: "s",
56
- scope: "o",
51
+ help: "h",
52
+ all: "a",
53
+ reload: "r",
54
+ change: "c",
55
+ show: "s",
56
+ scope: "o",
57
57
  notification: "n",
58
- pause: "p",
59
- exit: "e",
60
- quit: "q"
58
+ pause: "p",
59
+ exit: "e",
60
+ quit: "q"
61
61
  }
62
62
 
63
63
  def initialize(options)
@@ -246,7 +246,7 @@ module Guard
246
246
  next if group.name == :default
247
247
 
248
248
  cmd = "Run all #{ group.title }"
249
- Pry.commands.create_command group.name.to_s, cmd do
249
+ Pry.commands.create_command group.name.to_s, cmd do
250
250
  group "Guard"
251
251
 
252
252
  def process
@@ -278,7 +278,7 @@ module Guard
278
278
  proc do |target_self, nest_level, pry|
279
279
  history = pry.input_array.size
280
280
  process = Guard.listener.paused? ? "pause" : "guard"
281
- level = ":#{ nest_level }" unless nest_level.zero?
281
+ level = ":#{ nest_level }" unless nest_level.zero?
282
282
 
283
283
  "[#{ history }] #{ _scope_for_prompt }#{ process }"\
284
284
  "(#{ _clip_name(target_self) })#{ level }#{ ending_char } "
@@ -20,8 +20,9 @@ module Guard
20
20
  @notifier = nil
21
21
  end
22
22
 
23
- DEPRECATED_IMPLICIT_CONNECT = "Calling Notiffany::Notifier.notify()" +
24
- " without a prior Notifier.connect() is deprecated"
23
+ DEPRECATED_IMPLICIT_CONNECT = "Calling Notiffany::Notifier.notify()"\
24
+ " without a prior Notifier.connect() is"\
25
+ " deprecated"
25
26
 
26
27
  def self.notify(message, options = {})
27
28
  unless @notifier
data/lib/guard/plugin.rb CHANGED
@@ -287,7 +287,7 @@ module Guard
287
287
  @group = Guard.state.session.groups.add(group_name)
288
288
  @watchers = options.delete(:watchers) { [] }
289
289
  @callbacks = options.delete(:callbacks) { [] }
290
- @options = options
290
+ @options = options
291
291
  _register_callbacks
292
292
  end
293
293
 
@@ -109,11 +109,13 @@ module Guard
109
109
  rescue TypeError => error
110
110
  UI.error "Could not find class Guard::#{ _constant_name }"
111
111
  UI.error error.backtrace.join("\n")
112
+ # TODO: return value or move exception higher
112
113
  rescue LoadError => error
113
114
  unless options[:fail_gracefully]
114
115
  UI.error ERROR_NO_GUARD_OR_CLASS % [name.downcase, _constant_name]
115
116
  UI.error "Error is: #{error}"
116
117
  UI.error error.backtrace.join("\n")
118
+ # TODO: return value or move exception higher
117
119
  end
118
120
  end
119
121
  end
@@ -164,7 +166,7 @@ module Guard
164
166
  #
165
167
  def _constant_name
166
168
  @_constant_name ||= name.gsub(/\/(.?)/) { "::#{ $1.upcase }" }.
167
- gsub(/(?:^|[_-])(.)/) { $1.upcase }
169
+ gsub(/(?:^|[_-])(.)/) { $1.upcase }
168
170
  end
169
171
 
170
172
  def self._gem_valid?(gem)
@@ -32,12 +32,10 @@ module Guard
32
32
  task name => ["#{name}:start"]
33
33
 
34
34
  namespace(name) do
35
-
36
35
  desc "Starts Guard with options: '#{options}'"
37
36
  task(:start) do
38
37
  ::Guard::CLI.start(options.split)
39
38
  end
40
-
41
39
  end
42
40
  end
43
41
  end
data/lib/guard/runner.rb CHANGED
@@ -31,8 +31,8 @@ module Guard
31
31
  :run_on_modifications, :run_on_changes, :run_on_change
32
32
  ]
33
33
 
34
- ADDITION_TASKS = [:run_on_additions, :run_on_changes, :run_on_change]
35
- REMOVAL_TASKS = [:run_on_removals, :run_on_changes, :run_on_deletion]
34
+ ADDITION_TASKS = [:run_on_additions, :run_on_changes, :run_on_change]
35
+ REMOVAL_TASKS = [:run_on_removals, :run_on_changes, :run_on_deletion]
36
36
 
37
37
  # Runs the appropriate tasks on all registered plugins
38
38
  # based on the passed changes.
@@ -4,7 +4,7 @@ module Guard
4
4
  class Terminal
5
5
  class << self
6
6
  def clear
7
- cmd = Gem.win_platform? ? "cls" : "clear;"
7
+ cmd = Gem.win_platform? ? "cls" : "clear;"
8
8
  exit_code, _, stderr = Shellany::Sheller.system(cmd)
9
9
  fail Errno::ENOENT, stderr unless exit_code == 0
10
10
  end
data/lib/guard/ui.rb CHANGED
@@ -161,7 +161,7 @@ module Guard
161
161
  #
162
162
  def action_with_scopes(action, scope)
163
163
  titles = Guard.state.scope.titles(scope)
164
- info "#{action} #{titles.join(", ")}"
164
+ info "#{action} #{titles.join(', ')}"
165
165
  end
166
166
 
167
167
  private
@@ -174,7 +174,7 @@ module Guard
174
174
  # @yieldparam [String] param the calling plugin name
175
175
  #
176
176
  def _filter(plugin)
177
- only = options[:only]
177
+ only = options[:only]
178
178
  except = options[:except]
179
179
  plugin ||= calling_plugin_name
180
180
 
@@ -2,55 +2,55 @@ module Guard
2
2
  module UI
3
3
  module Colors
4
4
  # Brighten the color
5
- ANSI_ESCAPE_BRIGHT = "1"
5
+ ANSI_ESCAPE_BRIGHT = "1"
6
6
 
7
7
  # Black foreground color
8
- ANSI_ESCAPE_BLACK = "30"
8
+ ANSI_ESCAPE_BLACK = "30"
9
9
 
10
10
  # Red foreground color
11
- ANSI_ESCAPE_RED = "31"
11
+ ANSI_ESCAPE_RED = "31"
12
12
 
13
13
  # Green foreground color
14
- ANSI_ESCAPE_GREEN = "32"
14
+ ANSI_ESCAPE_GREEN = "32"
15
15
 
16
16
  # Yellow foreground color
17
- ANSI_ESCAPE_YELLOW = "33"
17
+ ANSI_ESCAPE_YELLOW = "33"
18
18
 
19
19
  # Blue foreground color
20
- ANSI_ESCAPE_BLUE = "34"
20
+ ANSI_ESCAPE_BLUE = "34"
21
21
 
22
22
  # Magenta foreground color
23
- ANSI_ESCAPE_MAGENTA = "35"
23
+ ANSI_ESCAPE_MAGENTA = "35"
24
24
 
25
25
  # Cyan foreground color
26
- ANSI_ESCAPE_CYAN = "36"
26
+ ANSI_ESCAPE_CYAN = "36"
27
27
 
28
28
  # White foreground color
29
- ANSI_ESCAPE_WHITE = "37"
29
+ ANSI_ESCAPE_WHITE = "37"
30
30
 
31
31
  # Black background color
32
- ANSI_ESCAPE_BGBLACK = "40"
32
+ ANSI_ESCAPE_BGBLACK = "40"
33
33
 
34
34
  # Red background color
35
- ANSI_ESCAPE_BGRED = "41"
35
+ ANSI_ESCAPE_BGRED = "41"
36
36
 
37
37
  # Green background color
38
- ANSI_ESCAPE_BGGREEN = "42"
38
+ ANSI_ESCAPE_BGGREEN = "42"
39
39
 
40
40
  # Yellow background color
41
- ANSI_ESCAPE_BGYELLOW = "43"
41
+ ANSI_ESCAPE_BGYELLOW = "43"
42
42
 
43
43
  # Blue background color
44
- ANSI_ESCAPE_BGBLUE = "44"
44
+ ANSI_ESCAPE_BGBLUE = "44"
45
45
 
46
46
  # Magenta background color
47
47
  ANSI_ESCAPE_BGMAGENTA = "45"
48
48
 
49
49
  # Cyan background color
50
- ANSI_ESCAPE_BGCYAN = "46"
50
+ ANSI_ESCAPE_BGCYAN = "46"
51
51
 
52
52
  # White background color
53
- ANSI_ESCAPE_BGWHITE = "47"
53
+ ANSI_ESCAPE_BGWHITE = "47"
54
54
  end
55
55
  end
56
56
  end
data/lib/guard/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Guard
2
- VERSION = "2.12.4"
2
+ VERSION = "2.12.5"
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.12.4
4
+ version: 2.12.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: 2015-02-23 00:00:00.000000000 Z
11
+ date: 2015-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -162,6 +162,7 @@ files:
162
162
  - lib/guard/deprecated/watcher.rb
163
163
  - lib/guard/dsl.rb
164
164
  - lib/guard/dsl_describer.rb
165
+ - lib/guard/dsl_reader.rb
165
166
  - lib/guard/group.rb
166
167
  - lib/guard/guardfile.rb
167
168
  - lib/guard/guardfile/evaluator.rb