guard 2.12.4 → 2.12.5

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
  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