guard 2.10.0 → 2.10.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -69,6 +69,8 @@ module Guard
69
69
 
70
70
  @guardfile_plugin_scope = []
71
71
  @guardfile_group_scope = []
72
+ @guardfile_ignore = []
73
+ @guardfile_ignore_bang = []
72
74
  end
73
75
 
74
76
  def guardfile_scope(scope)
@@ -78,8 +80,11 @@ module Guard
78
80
  fail "Unknown options: #{opts.inspect}" unless opts.empty?
79
81
  end
80
82
 
83
+ # TODO: create a EvaluatorResult class?
81
84
  attr_reader :guardfile_group_scope
82
85
  attr_reader :guardfile_plugin_scope
86
+ attr_accessor :guardfile_ignore
87
+ attr_accessor :guardfile_ignore_bang
83
88
 
84
89
  def clearing(on)
85
90
  @clear = on
@@ -81,11 +81,24 @@ module Guard
81
81
  attr_reader :guardfile_group_scope
82
82
  attr_reader :guardfile_plugin_scope
83
83
 
84
- # TODO: not tested
85
- def clear?
84
+ def guardfile_ignore
85
+ fail NotImplementedError
86
+ end
87
+
88
+ def guardfile_ignore_bang
89
+ fail NotImplementedError
90
+ end
91
+
92
+ def clearing(on)
93
+ @clear = on
94
+ end
95
+
96
+ def clearing?
86
97
  @clear
87
98
  end
88
99
 
100
+ alias :clear? :clearing?
101
+
89
102
  def debug?
90
103
  @debug
91
104
  end
@@ -9,8 +9,7 @@ require_relative "ui"
9
9
 
10
10
  module Guard
11
11
  # The notifier handles sending messages to different notifiers. Currently the
12
- # following
13
- # libraries are supported:
12
+ # following libraries are supported:
14
13
  #
15
14
  # * Ruby GNTP
16
15
  # * Growl
@@ -109,13 +108,13 @@ module Guard
109
108
  # @param [Hash] options the turn_on options
110
109
  # @option options [Boolean] silent disable any logging
111
110
  #
112
- def turn_on(opts = {})
111
+ def turn_on(options = {})
113
112
  _check_server!
114
113
  return unless enabled?
115
114
 
116
115
  fail "Already active!" if active?
117
116
 
118
- silent = opts[:silent]
117
+ silent = options[:silent]
119
118
 
120
119
  @detected.available.each do |klass, _|
121
120
  ::Guard::UI.info(format(USING_NOTIFIER, klass.title)) unless silent
@@ -171,7 +170,7 @@ module Guard
171
170
  # @option options [String] silent disable any error message
172
171
  # @return [Boolean] if the notification could be added
173
172
  #
174
- def add(name, opts = {})
173
+ def add(name, options = {})
175
174
  _check_server!
176
175
 
177
176
  return false unless enabled?
@@ -182,7 +181,7 @@ module Guard
182
181
  end
183
182
 
184
183
  # ok to pass new instance when called without connect (e.g. evaluator)
185
- (@detected || Detected.new(SUPPORTED)).add(name, opts)
184
+ (@detected || Detected.new(SUPPORTED)).add(name, options)
186
185
  end
187
186
 
188
187
  # TODO: deprecate/remove
@@ -173,41 +173,41 @@ module Guard
173
173
  # to true, and may further disable the colorization by setting
174
174
  # `change_color` to false.
175
175
  #
176
- # @param [String] title the notification title
177
- # @param [Hash] opts additional notification library options
178
- # @option opts [String] type the notification type. Either 'success',
176
+ # @param [String] message the notification message
177
+ # @param [Hash] options additional notification library options
178
+ # @option options [String] type the notification type. Either 'success',
179
179
  # 'pending', 'failed' or 'notify'
180
- # @option opts [String] message the notification message body
181
- # @option opts [String] image the path to the notification image
182
- # @option opts [Boolean] change_color whether to show a color
180
+ # @option options [String] message the notification message body
181
+ # @option options [String] image the path to the notification image
182
+ # @option options [Boolean] change_color whether to show a color
183
183
  # notification
184
- # @option opts [String,Array] color_location the location where to draw
184
+ # @option options [String,Array] color_location the location where to draw
185
185
  # the color notification
186
- # @option opts [Boolean] display_message whether to display a message
186
+ # @option options [Boolean] display_message whether to display a message
187
187
  # or not
188
- # @option opts [Boolean] display_on_all_clients whether to display a
188
+ # @option options [Boolean] display_on_all_clients whether to display a
189
189
  # message on all tmux clients or not
190
190
  #
191
- def notify(message, opts = {})
191
+ def notify(message, options = {})
192
192
  super
193
- opts.delete(:image)
193
+ options.delete(:image)
194
194
 
195
- change_color = Defaults.option(opts, :change_color)
196
- options = Array(Defaults.option(opts, :color_location))
197
- display_the_title = Defaults.option(opts, :display_title)
198
- display_message = Defaults.option(opts, :display_message)
199
- type = opts.delete(:type).to_s
200
- title = opts.delete(:title)
195
+ change_color = Defaults.option(options, :change_color)
196
+ locations = Array(Defaults.option(options, :color_location))
197
+ display_the_title = Defaults.option(options, :display_title)
198
+ display_message = Defaults.option(options, :display_message)
199
+ type = options.delete(:type).to_s
200
+ title = options.delete(:title)
201
201
 
202
202
  if change_color
203
- color = tmux_color(type, opts)
204
- options.each { |location| Client.set(_all?, location, color) }
203
+ color = tmux_color(type, options)
204
+ locations.each { |location| Client.set(_all?, location, color) }
205
205
  end
206
206
 
207
- display_title(type, title, message, opts) if display_the_title
207
+ display_title(type, title, message, options) if display_the_title
208
208
 
209
209
  return unless display_message
210
- display_message(type, title, message, opts)
210
+ display_message(type, title, message, options)
211
211
  end
212
212
 
213
213
  # Displays a message in the title bar of the terminal.
@@ -224,10 +224,10 @@ module Guard
224
224
  # @option options [String] default_message_format a string to use as
225
225
  # formatter when no format per type is defined.
226
226
  #
227
- def display_title(type, title, message, opts = {})
227
+ def display_title(type, title, message, options = {})
228
228
  format = "#{type}_title_format".to_sym
229
- options = Defaults.option(opts, :default_title_format)
230
- title_format = opts.fetch(format, options)
229
+ default_title_format = Defaults.option(options, :default_title_format)
230
+ title_format = options.fetch(format, default_title_format)
231
231
  teaser_message = message.split("\n").first
232
232
  display_title = title_format % [title, teaser_message]
233
233
 
data/lib/guard/plugin.rb CHANGED
@@ -91,7 +91,7 @@ module Guard
91
91
  # hook :foo
92
92
  # end
93
93
  #
94
- # Here, when {Guard::Plugin::Base#run_all} is called, {#hook} will notify
94
+ # Here, when {Guard::Plugin#run_all} is called, {#hook} will notify
95
95
  # callbacks registered for the "run_all_foo" event.
96
96
  #
97
97
  # When event is a String, {#hook} will directly turn the String
@@ -103,7 +103,7 @@ module Guard
103
103
  # hook "foo_bar"
104
104
  # end
105
105
  #
106
- # When {Guard::Plugin::Base#run_all} is called, {#hook} will notify
106
+ # When {Guard::Plugin::run_all} is called, {#hook} will notify
107
107
  # callbacks registered for the "foo_bar" event.
108
108
  #
109
109
  # @param [Symbol, String] event the name of the Guard event
data/lib/guard/ui.rb CHANGED
@@ -185,13 +185,7 @@ module Guard
185
185
  yield plugin
186
186
  end
187
187
 
188
- # Display a message of the type `method` and with the color `color_name`
189
- # (no color by default) conditionnaly given a `plugin_name`.
190
- #
191
- # @param [String] plugin_name the calling plugin name
192
- # @option options [Boolean] reset whether to clean the output before
193
- # @option options [String] plugin manually define the calling plugin
194
- #
188
+ # @private
195
189
  def _filtered_logger_message(message, method, color_name, options = {})
196
190
  message = color(message, color_name) if color_name
197
191
 
data/lib/guard/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Guard
2
- VERSION = "2.10.0"
2
+ VERSION = "2.10.1"
3
3
  end
@@ -1,3 +1,3 @@
1
1
  module Guard
2
- VERSION = "2.8.2"
2
+ VERSION = "2.10.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.10.0
4
+ version: 2.10.1
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: 2014-11-29 00:00:00.000000000 Z
11
+ date: 2014-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -100,7 +100,6 @@ files:
100
100
  - lib/guard.rb.orig
101
101
  - lib/guard/aruba_adapter.rb
102
102
  - lib/guard/cli.rb
103
- - lib/guard/cli.rb.orig
104
103
  - lib/guard/commander.rb
105
104
  - lib/guard/commands/all.rb
106
105
  - lib/guard/commands/change.rb
@@ -113,13 +112,11 @@ files:
113
112
  - lib/guard/deprecated/dsl.rb
114
113
  - lib/guard/deprecated/evaluator.rb
115
114
  - lib/guard/deprecated/guard.rb
116
- - lib/guard/deprecated/guard.rb.orig
117
115
  - lib/guard/deprecated/guardfile.rb
118
116
  - lib/guard/deprecated/watcher.rb
119
117
  - lib/guard/dsl.rb
120
118
  - lib/guard/dsl.rb.orig
121
119
  - lib/guard/dsl_describer.rb
122
- - lib/guard/dsl_describer.rb.orig
123
120
  - lib/guard/group.rb
124
121
  - lib/guard/guardfile.rb
125
122
  - lib/guard/guardfile/evaluator.rb
@@ -141,9 +138,7 @@ files:
141
138
  - lib/guard/jobs/pry_wrapper.rb
142
139
  - lib/guard/jobs/sleep.rb
143
140
  - lib/guard/notifier.rb
144
- - lib/guard/notifier.rb.orig
145
141
  - lib/guard/notifier/detected.rb
146
- - lib/guard/notifier/detected.rb.orig
147
142
  - lib/guard/notifiers/base.rb
148
143
  - lib/guard/notifiers/emacs.rb
149
144
  - lib/guard/notifiers/file_notifier.rb
@@ -157,23 +152,18 @@ files:
157
152
  - lib/guard/notifiers/tmux.rb
158
153
  - lib/guard/options.rb
159
154
  - lib/guard/plugin.rb
160
- - lib/guard/plugin.rb.orig
161
155
  - lib/guard/plugin_util.rb
162
156
  - lib/guard/rake_task.rb
163
157
  - lib/guard/reevaluator.rb
164
- - lib/guard/reevaluator.rb.orig
165
158
  - lib/guard/runner.rb
166
159
  - lib/guard/sheller.rb
167
160
  - lib/guard/templates/Guardfile
168
- - lib/guard/templates/Guardfile.orig
169
161
  - lib/guard/terminal.rb
170
162
  - lib/guard/ui.rb
171
- - lib/guard/ui.rb.orig
172
163
  - lib/guard/ui/colors.rb
173
164
  - lib/guard/version.rb
174
165
  - lib/guard/version.rb.orig
175
166
  - lib/guard/watcher.rb
176
- - lib/guard/watcher.rb.orig
177
167
  - man/guard.1
178
168
  - man/guard.1.html
179
169
  homepage: http://guardgem.org
@@ -1,220 +0,0 @@
1
- require "thor"
2
-
3
- require "guard"
4
- require "guard/version"
5
- require "guard/dsl_describer"
6
- require "guard/guardfile/evaluator"
7
- require "guard/guardfile/generator"
8
-
9
- module Guard
10
- # Facade for the Guard command line interface managed by
11
- # [Thor](https://github.com/wycats/thor).
12
- #
13
- # This is the main interface to Guard that is called by the Guard binary
14
- # `bin/guard`. Do not put any logic in here, create a class and delegate
15
- # instead.
16
- #
17
- class CLI < Thor
18
- default_task :start
19
-
20
- desc "start", "Starts Guard"
21
-
22
- method_option :clear,
23
- type: :boolean,
24
- default: false,
25
- aliases: "-c",
26
- banner: "Auto clear shell before each action"
27
-
28
- method_option :notify,
29
- type: :boolean,
30
- default: true,
31
- aliases: "-n",
32
- banner: "Notifications feature"
33
-
34
- method_option :debug,
35
- type: :boolean,
36
- default: false,
37
- aliases: "-d",
38
- banner: "Show debug information"
39
-
40
- method_option :group,
41
- type: :array,
42
- default: [],
43
- aliases: "-g",
44
- banner: "Run only the passed groups"
45
-
46
- method_option :plugin,
47
- type: :array,
48
- default: [],
49
- aliases: "-P",
50
- banner: "Run only the passed plugins"
51
-
52
- method_option :watchdir,
53
- type: :array,
54
- aliases: "-w",
55
- banner: "Specify the directories to watch"
56
-
57
- method_option :guardfile,
58
- type: :string,
59
- aliases: "-G",
60
- banner: "Specify a Guardfile"
61
-
62
- method_option :no_interactions,
63
- type: :boolean,
64
- default: false,
65
- aliases: "-i",
66
- banner: "Turn off completely any Guard terminal interactions"
67
-
68
- method_option :no_bundler_warning,
69
- type: :boolean,
70
- default: false,
71
- aliases: "-B",
72
- banner: "Turn off warning when Bundler is not present"
73
-
74
- # Listen options
75
- method_option :latency,
76
- type: :numeric,
77
- aliases: "-l",
78
- banner: 'Overwrite Listen\'s default latency'
79
-
80
- method_option :force_polling,
81
- type: :boolean,
82
- default: false,
83
- aliases: "-p",
84
- banner: "Force usage of the Listen polling listener"
85
-
86
- method_option :wait_for_delay,
87
- type: :numeric,
88
- aliases: "-y",
89
- banner: 'Overwrite Listen\'s default wait_for_delay'
90
-
91
- method_option :listen_on,
92
- type: :string,
93
- aliases: "-o",
94
- default: false,
95
- banner: "Specify a network address to Listen on for "\
96
- "file change events (e.g. for use in VMs)"
97
-
98
- # Start Guard by initializing the defined Guard plugins and watch the file
99
- # system.
100
- #
101
- # This is the default task, so calling `guard` is the same as calling
102
- # `guard start`.
103
- #
104
- # @see Guard.start
105
- #
106
- def start
107
- _verify_bundler_presence unless options[:no_bundler_warning]
108
- ::Guard.start(options)
109
- end
110
-
111
- desc "list", "Lists Guard plugins that can be used with init"
112
-
113
- # List the Guard plugins that are available for use in your system and
114
- # marks those that are currently used in your `Guardfile`.
115
- #
116
- # @see Guard::DslDescriber.list
117
- #
118
- def list
119
- ::Guard::DslDescriber.new(options).list
120
- end
121
-
122
- desc "notifiers", "Lists notifiers and its options"
123
-
124
- # List the Notifiers for use in your system.
125
- #
126
- # @see Guard::DslDescriber.notifiers
127
- #
128
- def notifiers
129
- ::Guard::DslDescriber.new(options).notifiers
130
- end
131
-
132
- desc "version", "Show the Guard version"
133
- map %w(-v --version) => :version
134
-
135
- # Shows the current version of Guard.
136
- #
137
- # @see Guard::VERSION
138
- #
139
- def version
140
- $stdout.puts "Guard version #{ ::Guard::VERSION }"
141
- end
142
-
143
- desc "init [GUARDS]", "Generates a Guardfile at the current directory"\
144
- " (if it is not already there) and adds all installed Guard plugins"\
145
- " or the given GUARDS into it"
146
-
147
- method_option :bare,
148
- type: :boolean,
149
- default: false,
150
- aliases: "-b",
151
- banner: "Generate a bare Guardfile without adding any"\
152
- " installed plugin into it"
153
-
154
- # Initializes the templates of all installed Guard plugins and adds them
155
- # to the `Guardfile` when no Guard name is passed. When passing
156
- # Guard plugin names it does the same but only for those Guard plugins.
157
- #
158
- # @see Guard::Guardfile.initialize_template
159
- # @see Guard::Guardfile.initialize_all_templates
160
- #
161
- # @param [Array<String>] plugin_names the name of the Guard plugins to
162
- # initialize
163
- #
164
- def init(*plugin_names)
165
- _verify_bundler_presence unless options[:no_bundler_warning]
166
-
167
- ::Guard.reset_options(options) # Since UI.deprecated uses config
168
-
169
- generator = Guardfile::Generator.new(abort_on_existence: options[:bare])
170
- generator.create_guardfile
171
-
172
- # Note: this reset "hack" will be fixed after refactoring
173
- ::Guard.reset_plugins
174
-
175
- # Evaluate because it might have existed and creating was skipped
176
- ::Guard::Guardfile::Evaluator.new(Guard.options).evaluate_guardfile
177
-
178
- return if options[:bare]
179
-
180
- if plugin_names.empty?
181
- generator.initialize_all_templates
182
- else
183
- plugin_names.each do |plugin_name|
184
- generator.initialize_template(plugin_name)
185
- end
186
- end
187
- end
188
-
189
- desc "show", "Show all defined Guard plugins and their options"
190
- map %w(-T) => :show
191
-
192
- # Shows all Guard plugins and their options that are defined in
193
- # the `Guardfile`
194
- #
195
- # @see Guard::DslDescriber.show
196
- #
197
- def show
198
- ::Guard::DslDescriber.new(options).show
199
- end
200
-
201
- private
202
-
203
- # Verifies if Guard is run with `bundle exec` and
204
- # shows a hint to do so if not.
205
- #
206
- def _verify_bundler_presence
207
- return unless File.exist?("Gemfile")
208
- return if ENV["BUNDLE_GEMFILE"] || ENV["RUBYGEMS_GEMDEPS"]
209
-
210
- ::Guard::UI.info <<EOF
211
-
212
- Guard here! It looks like your project has a Gemfile, yet you are running
213
- `guard` outside of Bundler. If this is your intent, feel free to ignore this
214
- message. Otherwise, consider using `bundle exec guard` to ensure your
215
- dependencies are loaded correctly.
216
- (You can run `guard` with --no-bundler-warning to get rid of this message.)
217
- EOF
218
- end
219
- end
220
- end