guard 2.6.1 → 2.7.0

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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +73 -58
  3. data/bin/guard +2 -2
  4. data/lib/guard.rb +64 -59
  5. data/lib/guard/cli.rb +66 -60
  6. data/lib/guard/cli.rb.orig +215 -0
  7. data/lib/guard/commander.rb +45 -69
  8. data/lib/guard/commands/all.rb +21 -19
  9. data/lib/guard/commands/change.rb +17 -22
  10. data/lib/guard/commands/notification.rb +15 -16
  11. data/lib/guard/commands/pause.rb +14 -15
  12. data/lib/guard/commands/reload.rb +19 -20
  13. data/lib/guard/commands/scope.rb +23 -19
  14. data/lib/guard/commands/show.rb +13 -16
  15. data/lib/guard/deprecated_methods.rb +6 -10
  16. data/lib/guard/deprecator.rb +52 -37
  17. data/lib/guard/dsl.rb +55 -33
  18. data/lib/guard/dsl_describer.rb +83 -31
  19. data/lib/guard/dsl_describer.rb.orig +184 -0
  20. data/lib/guard/group.rb +7 -6
  21. data/lib/guard/guard.rb +4 -4
  22. data/lib/guard/guard.rb.orig +42 -0
  23. data/lib/guard/guardfile.rb +12 -13
  24. data/lib/guard/guardfile/evaluator.rb +77 -55
  25. data/lib/guard/guardfile/evaluator.rb.orig +275 -0
  26. data/lib/guard/guardfile/generator.rb +25 -20
  27. data/lib/guard/interactor.rb +52 -293
  28. data/lib/guard/interactor.rb.orig +85 -0
  29. data/lib/guard/jobs/base.rb +21 -0
  30. data/lib/guard/jobs/pry_wrapper.rb +290 -0
  31. data/lib/guard/jobs/pry_wrapper.rb.orig +293 -0
  32. data/lib/guard/jobs/sleep.rb +25 -0
  33. data/lib/guard/notifier.rb +42 -39
  34. data/lib/guard/notifiers/base.rb +25 -24
  35. data/lib/guard/notifiers/emacs.rb +30 -24
  36. data/lib/guard/notifiers/file_notifier.rb +3 -7
  37. data/lib/guard/notifiers/gntp.rb +22 -22
  38. data/lib/guard/notifiers/growl.rb +16 -15
  39. data/lib/guard/notifiers/libnotify.rb +7 -10
  40. data/lib/guard/notifiers/notifysend.rb +15 -14
  41. data/lib/guard/notifiers/rb_notifu.rb +8 -10
  42. data/lib/guard/notifiers/terminal_notifier.rb +15 -11
  43. data/lib/guard/notifiers/terminal_title.rb +4 -8
  44. data/lib/guard/notifiers/tmux.rb +104 -71
  45. data/lib/guard/options.rb +1 -5
  46. data/lib/guard/plugin.rb +1 -3
  47. data/lib/guard/plugin/base.rb +12 -9
  48. data/lib/guard/plugin/hooker.rb +1 -5
  49. data/lib/guard/plugin_util.rb +46 -25
  50. data/lib/guard/plugin_util.rb.orig +178 -0
  51. data/lib/guard/rake_task.rb +4 -7
  52. data/lib/guard/reevaluator.rb +13 -0
  53. data/lib/guard/runner.rb +50 -78
  54. data/lib/guard/runner.rb.orig +200 -0
  55. data/lib/guard/setuper.rb +199 -130
  56. data/lib/guard/setuper.rb.orig +348 -0
  57. data/lib/guard/sheller.rb +107 -0
  58. data/lib/guard/tags +367 -0
  59. data/lib/guard/ui.rb +50 -38
  60. data/lib/guard/ui.rb.orig +254 -0
  61. data/lib/guard/ui/colors.rb +17 -21
  62. data/lib/guard/version.rb +1 -1
  63. data/lib/guard/version.rb.orig +3 -0
  64. data/lib/guard/watcher.rb +49 -62
  65. metadata +21 -4
  66. data/lib/guard/notifiers/growl_notify.rb +0 -93
data/lib/guard/tags ADDED
@@ -0,0 +1,367 @@
1
+ !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
2
+ !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
3
+ !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
4
+ !_TAG_PROGRAM_NAME Exuberant Ctags //
5
+ !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
6
+ !_TAG_PROGRAM_VERSION 5.9~svn20110310 //
7
+ Base notifiers/base.rb /^ class Base$/;" c class:Guard.Notifier
8
+ Base plugin/base.rb /^ module Base$/;" m class:Guard.Plugin
9
+ CLI cli.rb /^ class CLI < Thor$/;" c class:Guard
10
+ ClassMethods plugin/base.rb /^ module ClassMethods$/;" m class:Guard.Plugin.Base
11
+ Colors ui/colors.rb /^ module Colors$/;" m class:Guard.UI
12
+ Commander commander.rb /^ module Commander$/;" m class:Guard
13
+ DeprecatedMethods deprecated_methods.rb /^ module DeprecatedMethods$/;" m class:Guard
14
+ Deprecator deprecator.rb /^ class Deprecator$/;" c class:Guard
15
+ Dsl dsl.rb /^ class Dsl$/;" c class:Guard
16
+ DslDescriber dsl_describer.rb /^ class DslDescriber$/;" c class:Guard
17
+ Emacs notifiers/emacs.rb /^ class Emacs < Base$/;" c class:Guard.Notifier
18
+ Evaluator guardfile/evaluator.rb /^ class Evaluator$/;" c class:Guard.Guardfile
19
+ FileNotifier notifiers/file_notifier.rb /^ class FileNotifier < Base$/;" c class:Guard.Notifier
20
+ FileSource guardfile/evaluator.rb /^ class FileSource < Source$/;" c class:Guard.Guardfile
21
+ GNTP notifiers/gntp.rb /^ class GNTP < Base$/;" c class:Guard.Notifier
22
+ Generator guardfile/generator.rb /^ class Generator$/;" c class:Guard.Guardfile
23
+ Group group.rb /^ class Group$/;" c class:Guard
24
+ Growl notifiers/growl.rb /^ class Growl < Base$/;" c class:Guard.Notifier
25
+ GrowlNotify notifiers/growl_notify.rb /^ class GrowlNotify < Base$/;" c class:Guard.Notifier
26
+ Guard cli.rb /^module Guard$/;" m
27
+ Guard commander.rb /^module Guard$/;" m
28
+ Guard commands/all.rb /^module Guard$/;" m
29
+ Guard commands/change.rb /^module Guard$/;" m
30
+ Guard commands/notification.rb /^module Guard$/;" m
31
+ Guard commands/pause.rb /^module Guard$/;" m
32
+ Guard commands/reload.rb /^module Guard$/;" m
33
+ Guard commands/scope.rb /^module Guard$/;" m
34
+ Guard commands/show.rb /^module Guard$/;" m
35
+ Guard deprecated_methods.rb /^module Guard$/;" m
36
+ Guard deprecator.rb /^module Guard$/;" m
37
+ Guard dsl.rb /^module Guard$/;" m
38
+ Guard dsl_describer.rb /^module Guard$/;" m
39
+ Guard group.rb /^module Guard$/;" m
40
+ Guard guard.rb /^ class Guard$/;" c class:Guard
41
+ Guard guard.rb /^module Guard$/;" m
42
+ Guard guardfile.rb /^module Guard$/;" m
43
+ Guard guardfile/evaluator.rb /^module Guard$/;" m
44
+ Guard guardfile/generator.rb /^module Guard$/;" m
45
+ Guard interactor.rb /^module Guard$/;" m
46
+ Guard notifier.rb /^module Guard$/;" m
47
+ Guard notifiers/base.rb /^module Guard$/;" m
48
+ Guard notifiers/emacs.rb /^module Guard$/;" m
49
+ Guard notifiers/file_notifier.rb /^module Guard$/;" m
50
+ Guard notifiers/gntp.rb /^module Guard$/;" m
51
+ Guard notifiers/growl.rb /^module Guard$/;" m
52
+ Guard notifiers/growl_notify.rb /^module Guard$/;" m
53
+ Guard notifiers/libnotify.rb /^module Guard$/;" m
54
+ Guard notifiers/notifysend.rb /^module Guard$/;" m
55
+ Guard notifiers/rb_notifu.rb /^module Guard$/;" m
56
+ Guard notifiers/terminal_notifier.rb /^module Guard$/;" m
57
+ Guard notifiers/terminal_title.rb /^module Guard$/;" m
58
+ Guard notifiers/tmux.rb /^module Guard$/;" m
59
+ Guard plugin.rb /^module Guard$/;" m
60
+ Guard plugin/base.rb /^module Guard$/;" m
61
+ Guard plugin/hooker.rb /^module Guard$/;" m
62
+ Guard plugin_util.rb /^module Guard$/;" m
63
+ Guard rake_task.rb /^module Guard$/;" m
64
+ Guard runner.rb /^module Guard$/;" m
65
+ Guard setuper.rb /^module Guard$/;" m
66
+ Guard ui.rb /^module Guard$/;" m
67
+ Guard ui/colors.rb /^module Guard$/;" m
68
+ Guard version.rb /^module Guard$/;" m
69
+ Guard watcher.rb /^module Guard$/;" m
70
+ Guardfile guardfile.rb /^ module Guardfile$/;" m class:Guard
71
+ Guardfile guardfile/evaluator.rb /^ module Guardfile$/;" m class:Guard
72
+ Guardfile guardfile/generator.rb /^ module Guardfile$/;" m class:Guard
73
+ Hooker plugin/hooker.rb /^ module Hooker$/;" m class:Guard.Plugin
74
+ InlineSource guardfile/evaluator.rb /^ class InlineSource < Source$/;" c class:Guard.Guardfile
75
+ Interactor commands/all.rb /^ class Interactor$/;" c class:Guard
76
+ Interactor commands/change.rb /^ class Interactor$/;" c class:Guard
77
+ Interactor commands/notification.rb /^ class Interactor$/;" c class:Guard
78
+ Interactor commands/pause.rb /^ class Interactor$/;" c class:Guard
79
+ Interactor commands/reload.rb /^ class Interactor$/;" c class:Guard
80
+ Interactor commands/scope.rb /^ class Interactor$/;" c class:Guard
81
+ Interactor commands/show.rb /^ class Interactor$/;" c class:Guard
82
+ Interactor interactor.rb /^ class Interactor$/;" c class:Guard
83
+ Libnotify notifiers/libnotify.rb /^ class Libnotify < Base$/;" c class:Guard.Notifier
84
+ Notifier notifier.rb /^ module Notifier$/;" m class:Guard
85
+ Notifier notifiers/base.rb /^ module Notifier$/;" m class:Guard
86
+ Notifier notifiers/emacs.rb /^ module Notifier$/;" m class:Guard
87
+ Notifier notifiers/file_notifier.rb /^ module Notifier$/;" m class:Guard
88
+ Notifier notifiers/gntp.rb /^ module Notifier$/;" m class:Guard
89
+ Notifier notifiers/growl.rb /^ module Notifier$/;" m class:Guard
90
+ Notifier notifiers/growl_notify.rb /^ module Notifier$/;" m class:Guard
91
+ Notifier notifiers/libnotify.rb /^ module Notifier$/;" m class:Guard
92
+ Notifier notifiers/notifysend.rb /^ module Notifier$/;" m class:Guard
93
+ Notifier notifiers/rb_notifu.rb /^ module Notifier$/;" m class:Guard
94
+ Notifier notifiers/terminal_notifier.rb /^ module Notifier$/;" m class:Guard
95
+ Notifier notifiers/terminal_title.rb /^ module Notifier$/;" m class:Guard
96
+ Notifier notifiers/tmux.rb /^ module Notifier$/;" m class:Guard
97
+ Notifu notifiers/rb_notifu.rb /^ class Notifu < Base$/;" c class:Guard.Notifier
98
+ NotifySend notifiers/notifysend.rb /^ class NotifySend < Base$/;" c class:Guard.Notifier
99
+ Plugin plugin.rb /^ class Plugin$/;" c class:Guard
100
+ Plugin plugin/base.rb /^ class Plugin$/;" c class:Guard
101
+ Plugin plugin/hooker.rb /^ class Plugin$/;" c class:Guard
102
+ PluginUtil plugin_util.rb /^ class PluginUtil$/;" c class:Guard
103
+ RakeTask rake_task.rb /^ class RakeTask < ::Rake::TaskLib$/;" c class:Guard
104
+ Runner runner.rb /^ class Runner$/;" c class:Guard
105
+ Setuper setuper.rb /^ module Setuper$/;" m class:Guard
106
+ Source guardfile/evaluator.rb /^ class Source$/;" c class:Guard.Guardfile
107
+ TerminalNotifier notifiers/terminal_notifier.rb /^ class TerminalNotifier < Base$/;" c class:Guard.Notifier
108
+ TerminalTitle notifiers/terminal_title.rb /^ class TerminalTitle < Base$/;" c class:Guard.Notifier
109
+ Tmux notifiers/tmux.rb /^ class Tmux < Base$/;" c class:Guard.Notifier
110
+ UI ui.rb /^ module UI$/;" m class:Guard
111
+ UI ui/colors.rb /^ module UI$/;" m class:Guard
112
+ Watcher watcher.rb /^ class Watcher$/;" c class:Guard
113
+ _add_hooks interactor.rb /^ def _add_hooks$/;" f class:Guard.Interactor
114
+ _add_load_guard_rc_hook interactor.rb /^ def _add_load_guard_rc_hook$/;" f class:Guard.Interactor
115
+ _add_load_project_guard_rc_hook interactor.rb /^ def _add_load_project_guard_rc_hook$/;" f class:Guard.Interactor
116
+ _add_restore_visibility_hook interactor.rb /^ def _add_restore_visibility_hook$/;" f class:Guard.Interactor
117
+ _after_reevaluate guardfile/evaluator.rb /^ def _after_reevaluate$/;" f class:Guard.Guardfile.Evaluator
118
+ _auto_detect_notification notifier.rb /^ def _auto_detect_notification$/;" f class:Guard.Notifier
119
+ _before_reevaluate guardfile/evaluator.rb /^ def _before_reevaluate$/;" f class:Guard.Guardfile.Evaluator
120
+ _clearable? runner.rb /^ def _clearable?(guard, modified_paths, added_paths, removed_paths)$/;" f class:Guard.Runner
121
+ _client notifiers/gntp.rb /^ def _client(opts = {})$/;" f class:Guard.Notifier.GNTP
122
+ _client_cmd_flag notifiers/tmux.rb /^ def _client_cmd_flag(cmd)$/;" f class:Guard.Notifier
123
+ _clients notifiers/tmux.rb /^ def _clients$/;" f class:Guard.Notifier
124
+ _clients notifiers/tmux.rb /^ def self._clients$/;" F class:Guard.Notifier
125
+ _clip_name interactor.rb /^ def _clip_name(target)$/;" f
126
+ _configure_prompt interactor.rb /^ def _configure_prompt$/;" f
127
+ _constant_name plugin_util.rb /^ def _constant_name$/;" f class:Guard.PluginUtil.plugin_names
128
+ _create_command_aliases interactor.rb /^ def _create_command_aliases$/;" f class:Guard
129
+ _create_group_commands interactor.rb /^ def _create_group_commands$/;" f
130
+ _create_guard_commands interactor.rb /^ def _create_guard_commands$/;" f class:Guard
131
+ _create_run_all_command interactor.rb /^ def _create_run_all_command$/;" f class:Guard
132
+ _current_groups_scope runner.rb /^ def _current_groups_scope(scope)$/;" f class:Guard.Runner
133
+ _current_plugins_scope runner.rb /^ def _current_plugins_scope(scope)$/;" f class:Guard.Runner
134
+ _debug_command_execution setuper.rb /^ def _debug_command_execution$/;" f class:Guard.Setuper
135
+ _emacs_client_available notifiers/emacs.rb /^ def self._emacs_client_available?(opts)$/;" F class:Guard.Notifier.Emacs
136
+ _evaluate_guardfile dsl_describer.rb /^ def _evaluate_guardfile$/;" f class:Guard.DslDescriber
137
+ _filter ui.rb /^ def _filter(plugin)$/;" f class:Guard.UI
138
+ _filtered_logger_message ui.rb /^ def _filtered_logger_message(message, method, color_name, options = {})$/;" f class:Guard.UI
139
+ _find_non_empty_groups_scope runner.rb /^ def _find_non_empty_groups_scope(scope)$/;" f class:Guard.Runner
140
+ _find_non_empty_plugins_scope runner.rb /^ def _find_non_empty_plugins_scope(scope)$/;" f class:Guard.Runner
141
+ _find_non_empty_scope runner.rb /^ def _find_non_empty_scope(type, local_scope, *additional_possibilities)$/;" f class:Guard.Runner
142
+ _first_non_blank_scope ui.rb /^ def _first_non_blank_scope(scope)$/;" f class:Guard.UI
143
+ _get_notifier_module notifier.rb /^ def _get_notifier_module(name)$/;" f class:Guard.Notifier
144
+ _image_path notifiers/base.rb /^ def _image_path(image)$/;" f class:Guard.Notifier.Base
145
+ _join_scope_for_prompt interactor.rb /^ def _join_scope_for_prompt(scope_name)$/;" f
146
+ _libnotify_urgency notifiers/libnotify.rb /^ def _libnotify_urgency(type)$/;" f class:Guard.Notifier.Libnotify
147
+ _listener_callback setuper.rb /^ def _listener_callback$/;" f class:Guard.Setuper
148
+ _notification_type notifiers/base.rb /^ def _notification_type(image)$/;" f class:Guard.Notifier.Base
149
+ _notifu_type notifiers/rb_notifu.rb /^ def _notifu_type(type)$/;" f class:Guard.Notifier.Notifu
150
+ _notifysend_binary_available notifiers/notifysend.rb /^ def self._notifysend_binary_available?$/;" F class:Guard.Notifier.NotifySend
151
+ _notifysend_urgency notifiers/notifysend.rb /^ def _notifysend_urgency(type)$/;" f class:Guard.Notifier.NotifySend
152
+ _plugin_constant plugin_util.rb /^ def _plugin_constant$/;" f class:Guard.PluginUtil.plugin_names
153
+ _prompt interactor.rb /^ def _prompt(ending_char)$/;" f
154
+ _quiet_option notifiers/tmux.rb /^ def _quiet_option$/;" f class:Guard.Notifier
155
+ _read guardfile/evaluator.rb /^ def _read(rel_path)$/;" f class:Guard.Guardfile.FileSource
156
+ _register notifiers/growl.rb /^ def self._register!(opts)$/;" F class:Guard.Notifier.Growl
157
+ _register notifiers/growl_notify.rb /^ def self._register!(options)$/;" F class:Guard.Notifier.GrowlNotify
158
+ _register notifiers/notifysend.rb /^ def self._register!(opts)$/;" F class:Guard.Notifier.NotifySend
159
+ _register notifiers/terminal_notifier.rb /^ def self._register!(opts)$/;" F class:Guard.Notifier.TerminalNotifier
160
+ _register notifiers/tmux.rb /^ def self._register!(opts)$/;" F class:Guard.Notifier.Tmux
161
+ _register! notifiers/gntp.rb /^ def _register!(gntp_client)$/;" f class:Guard.Notifier.GNTP
162
+ _register_callbacks plugin/hooker.rb /^ def _register_callbacks$/;" f class:Guard.Plugin
163
+ _relative_from setuper.rb /^ def _relative_from(path, base)$/;" f class:Guard.Setuper
164
+ _relative_paths setuper.rb /^ def _relative_paths(files)$/;" f class:Guard.Setuper
165
+ _relevant_changes? setuper.rb /^ def _relevant_changes?(changes)$/;" f class:Guard.Setuper
166
+ _replace_reset_command interactor.rb /^ def _replace_reset_command$/;" f class:Guard.Interactor
167
+ _reset_options_store notifiers/tmux.rb /^ def self._reset_options_store$/;" F class:Guard.Notifier
168
+ _restore_terminal_settings interactor.rb /^ def _restore_terminal_settings$/;" f
169
+ _run_client notifiers/tmux.rb /^ def _run_client(cmd, args)$/;" f class:Guard.Notifier
170
+ _run_cmd notifiers/emacs.rb /^ def _run_cmd(*args)$/;" f class:Guard.Notifier.Emacs
171
+ _run_first_task_found runner.rb /^ def _run_first_task_found(guard, tasks, task_param)$/;" f class:Guard.Runner
172
+ _scope_for_prompt interactor.rb /^ def _scope_for_prompt$/;" f
173
+ _scoped_plugins runner.rb /^ def _scoped_plugins(scopes = {})$/;" f class:Guard.Runner
174
+ _set_instance_variables_from_options plugin/base.rb /^ def _set_instance_variables_from_options(options)$/;" f class:Guard.Plugin.Base
175
+ _setup_debug setuper.rb /^ def _setup_debug$/;" f class:Guard.Setuper
176
+ _setup_listener setuper.rb /^ def _setup_listener$/;" f class:Guard.Setuper
177
+ _setup_notifier setuper.rb /^ def _setup_notifier$/;" f class:Guard.Setuper
178
+ _setup_signal_traps setuper.rb /^ def _setup_signal_traps$/;" f class:Guard.Setuper
179
+ _store_terminal_settings interactor.rb /^ def _store_terminal_settings$/;" f
180
+ _stty_exists? interactor.rb /^ def _stty_exists?$/;" f
181
+ _supported_host notifiers/base.rb /^ def self._supported_host?$/;" F class:Guard.Notifier.Base
182
+ _tmux_environment_available notifiers/tmux.rb /^ def self._tmux_environment_available?(opts)$/;" F class:Guard.Notifier.Tmux
183
+ _tmux_version notifiers/tmux.rb /^ def _tmux_version$/;" f class:Guard.Notifier
184
+ _to_arguments notifiers/notifysend.rb /^ def _to_arguments(command, supported, opts = {})$/;" f class:Guard.Notifier.NotifySend
185
+ _verify_bundler_presence cli.rb /^ def _verify_bundler_presence$/;" f class:Guard.CLI.start
186
+ _watchdirs setuper.rb /^ def _watchdirs$/;" f class:Guard.Setuper
187
+ _write notifiers/file_notifier.rb /^ def _write(path, contents)$/;" f class:Guard.Notifier.FileNotifier
188
+ action_with_scopes ui.rb /^ def action_with_scopes(action, scope)$/;" f class:Guard.UI
189
+ add_callback plugin/hooker.rb /^ def self.add_callback(listener, guard_plugin, events)$/;" F class:Guard.Plugin.Hooker
190
+ add_guard deprecated_methods.rb /^ def add_guard(*args)$/;" f class:Guard.DeprecatedMethods
191
+ add_notifier notifier.rb /^ def add_notifier(name, opts = {})$/;" f class:Guard.Notifier
192
+ add_to_guardfile plugin_util.rb /^ def add_to_guardfile$/;" f class:Guard.PluginUtil.plugin_names
193
+ available notifiers/base.rb /^ def self.available?(opts = {})$/;" F class:Guard.Notifier.Base
194
+ available notifiers/emacs.rb /^ def self.available?(opts = {})$/;" F class:Guard.Notifier.Emacs
195
+ available notifiers/file_notifier.rb /^ def self.available?(opts = {})$/;" F class:Guard.Notifier.FileNotifier
196
+ available notifiers/gntp.rb /^ def self.available?(opts = {})$/;" F class:Guard.Notifier.GNTP
197
+ available notifiers/growl.rb /^ def self.available?(opts = {})$/;" F class:Guard.Notifier.Growl
198
+ available notifiers/growl_notify.rb /^ def self.available?(opts = {})$/;" F class:Guard.Notifier.GrowlNotify
199
+ available notifiers/libnotify.rb /^ def self.available?(opts = {})$/;" F class:Guard.Notifier.Libnotify
200
+ available notifiers/notifysend.rb /^ def self.available?(opts = {})$/;" F class:Guard.Notifier.NotifySend
201
+ available notifiers/rb_notifu.rb /^ def self.available?(opts = {})$/;" F class:Guard.Notifier.Notifu
202
+ available notifiers/terminal_notifier.rb /^ def self.available?(opts = {})$/;" F class:Guard.Notifier.TerminalNotifier
203
+ available notifiers/tmux.rb /^ def self.available?(opts = {})$/;" F class:Guard.Notifier.Tmux
204
+ call_action watcher.rb /^ def call_action(matches)$/;" f class:Guard.Watcher
205
+ callback dsl.rb /^ def callback(*args, &block)$/;" f class:Guard.Dsl
206
+ callbacks plugin/hooker.rb /^ def self.callbacks$/;" F class:Guard.Plugin.Hooker
207
+ calling_plugin_name ui.rb /^ def calling_plugin_name(depth = 2)$/;" f class:Guard.UI
208
+ clear ui.rb /^ def clear(options = {})$/;" f class:Guard.UI
209
+ clear_notifiers notifier.rb /^ def clear_notifiers$/;" f class:Guard.Notifier
210
+ clear_options setuper.rb /^ def clear_options$/;" f class:Guard.Setuper
211
+ clearable ui.rb /^ def clearable$/;" f class:Guard.UI
212
+ color ui.rb /^ def color(text, *color_options)$/;" f class:Guard.UI
213
+ color_enabled? ui.rb /^ def color_enabled?$/;" f class:Guard.UI
214
+ content guardfile/evaluator.rb /^ def content$/;" f class:Guard.Guardfile.FileSource
215
+ content guardfile/evaluator.rb /^ def content$/;" f class:Guard.Guardfile.InlineSource
216
+ convert_scope interactor.rb /^ def self.convert_scope(entries)$/;" F class:Guard.Interactor
217
+ create_guardfile guardfile.rb /^ def self.create_guardfile(options = {})$/;" F class:Guard.Guardfile
218
+ create_guardfile guardfile/generator.rb /^ def create_guardfile$/;" f class:Guard.Guardfile.Generator
219
+ debug ui.rb /^ def debug(message, options = {})$/;" f class:Guard.UI
220
+ deprecation ui.rb /^ def deprecation(message, options = {})$/;" f class:Guard.UI
221
+ display_message notifiers/tmux.rb /^ def display_message(type, title, message, opts = {})$/;" f class:Guard.Notifier.Tmux
222
+ display_title notifiers/tmux.rb /^ def display_title(type, title, message, opts = {})$/;" f class:Guard.Notifier.Tmux
223
+ emacs_color notifiers/emacs.rb /^ def emacs_color(type, options = {})$/;" f class:Guard.Notifier.Emacs
224
+ enabled interactor.rb /^ def self.enabled$/;" F class:Guard.Interactor
225
+ enabled interactor.rb /^ def self.enabled=(status)$/;" F class:Guard.Interactor
226
+ enabled? notifier.rb /^ def enabled?$/;" f class:Guard.Notifier
227
+ error ui.rb /^ def error(message, options = {})$/;" f class:Guard.UI
228
+ evaluate guardfile/evaluator.rb /^ def evaluate$/;" f class:Guard.Guardfile.Evaluator
229
+ evaluate_guardfile dsl.rb /^ def self.evaluate_guardfile(options = {})$/;" F class:Guard.Dsl
230
+ gem_name notifiers/base.rb /^ def self.gem_name$/;" F class:Guard.Notifier.Base
231
+ gem_name notifiers/gntp.rb /^ def self.gem_name$/;" F class:Guard.Notifier.GNTP
232
+ gem_name notifiers/rb_notifu.rb /^ def self.gem_name$/;" F class:Guard.Notifier.Notifu
233
+ gem_name notifiers/terminal_notifier.rb /^ def self.gem_name$/;" F class:Guard.Notifier.TerminalNotifier
234
+ get_guard_class deprecated_methods.rb /^ def get_guard_class(name, fail_gracefully = false)$/;" f class:Guard.DeprecatedMethods
235
+ group dsl.rb /^ def group(*args)$/;" f class:Guard.Dsl
236
+ guard dsl.rb /^ def guard(name, options = {})$/;" f class:Guard.Dsl
237
+ guard_gem_names deprecated_methods.rb /^ def guard_gem_names$/;" f class:Guard.DeprecatedMethods
238
+ guards deprecated_methods.rb /^ def guards(filter = nil)$/;" f class:Guard.DeprecatedMethods
239
+ hook plugin/hooker.rb /^ def hook(event, *args)$/;" f class:Guard.Plugin.Hooker
240
+ ignore dsl.rb /^ def ignore(*regexps)$/;" f class:Guard
241
+ ignore! dsl.rb /^ def ignore!(*regexps)$/;" f class:Guard
242
+ images_path notifiers/base.rb /^ def images_path$/;" f class:Guard.Notifier.Base
243
+ included plugin/base.rb /^ def self.included(base)$/;" F class:Guard.Plugin.Base
244
+ info ui.rb /^ def info(message, options = {})$/;" f class:Guard.UI
245
+ init cli.rb /^ def init(*plugin_names)$/;" f class:Guard.CLI.start
246
+ initialize dsl_describer.rb /^ def initialize(options = {})$/;" f class:Guard.DslDescriber
247
+ initialize group.rb /^ def initialize(name, options = {})$/;" f class:Guard.Group
248
+ initialize guard.rb /^ def initialize(watchers = [], options = {})$/;" f class:Guard.Guard
249
+ initialize guardfile/evaluator.rb /^ def initialize(content)$/;" f class:Guard.Guardfile.InlineSource
250
+ initialize guardfile/evaluator.rb /^ def initialize(options = {})$/;" f class:Guard.Guardfile.Evaluator
251
+ initialize guardfile/evaluator.rb /^ def initialize(path)$/;" f class:Guard.Guardfile.Source
252
+ initialize guardfile/evaluator.rb /^ def initialize(path, options = {})$/;" f class:Guard.Guardfile.FileSource
253
+ initialize guardfile/generator.rb /^ def initialize(options = {})$/;" f class:Guard.Guardfile.Generator
254
+ initialize interactor.rb /^ def initialize$/;" f class:Guard.Interactor
255
+ initialize notifiers/base.rb /^ def initialize(opts = {})$/;" f class:Guard.Notifier.Base
256
+ initialize plugin.rb /^ def initialize(options = {})$/;" f class:Guard.Plugin
257
+ initialize plugin_util.rb /^ def initialize(name)$/;" f class:Guard.PluginUtil.plugin_names
258
+ initialize rake_task.rb /^ def initialize(name = :guard, options = '')$/;" f class:Guard.RakeTask
259
+ initialize watcher.rb /^ def initialize(pattern, action = nil)$/;" f class:Guard.Watcher
260
+ initialize_all_templates guardfile.rb /^ def self.initialize_all_templates$/;" F class:Guard.Guardfile
261
+ initialize_all_templates guardfile/generator.rb /^ def initialize_all_templates$/;" f class:Guard.Guardfile.Generator
262
+ initialize_plugin plugin_util.rb /^ def initialize_plugin(options)$/;" f class:Guard.PluginUtil.plugin_names
263
+ initialize_template guardfile.rb /^ def self.initialize_template(plugin_name)$/;" F class:Guard.Guardfile
264
+ initialize_template guardfile/generator.rb /^ def initialize_template(plugin_name)$/;" f class:Guard.Guardfile.Generator
265
+ interactor dsl.rb /^ def interactor(options)$/;" f class:Guard.Dsl
266
+ interactor setuper.rb /^ def interactor$/;" f class:Guard.Setuper
267
+ list cli.rb /^ def list$/;" f class:Guard.CLI.start
268
+ list dsl_describer.rb /^ def list$/;" f class:Guard.DslDescriber
269
+ locate_guard deprecated_methods.rb /^ def locate_guard(name)$/;" f class:Guard.DeprecatedMethods
270
+ logger dsl.rb /^ def logger(options)$/;" f class:Guard
271
+ logger ui.rb /^ def logger$/;" f class:Guard.UI
272
+ match watcher.rb /^ def match(file)$/;" f class:Guard.Watcher
273
+ match_files watcher.rb /^ def self.match_files(guard, files)$/;" F class:Guard.Watcher
274
+ match_files watcher.rb /^ def self.match_files?(plugins, files)$/;" F class:Guard.Watcher
275
+ match_guardfile watcher.rb /^ def self.match_guardfile?(files)$/;" F class:Guard.Watcher
276
+ name notifiers/base.rb /^ def name$/;" f class:Guard.Notifier.Base
277
+ name notifiers/base.rb /^ def self.name$/;" F class:Guard.Notifier.Base
278
+ name plugin/base.rb /^ def name$/;" f class:Guard.Plugin.Base
279
+ non_namespaced_classname plugin/base.rb /^ def non_namespaced_classname$/;" f class:Guard.Plugin.Base.ClassMethods
280
+ non_namespaced_name plugin/base.rb /^ def non_namespaced_name$/;" f class:Guard.Plugin.Base.ClassMethods
281
+ normalize_standard_options! notifiers/base.rb /^ def normalize_standard_options!(opts)$/;" f class:Guard.Notifier.Base
282
+ notification dsl.rb /^ def notification(notifier, options = {})$/;" f class:Guard.Dsl
283
+ notifiers cli.rb /^ def notifiers$/;" f class:Guard.CLI.start
284
+ notifiers dsl_describer.rb /^ def notifiers$/;" f class:Guard.DslDescriber
285
+ notifiers notifier.rb /^ def notifiers$/;" f class:Guard.Notifier
286
+ notifiers= notifier.rb /^ def notifiers=(notifiers)$/;" f class:Guard.Notifier
287
+ notify notifier.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier
288
+ notify notifiers/base.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.Base
289
+ notify notifiers/emacs.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.Emacs
290
+ notify notifiers/file_notifier.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.FileNotifier
291
+ notify notifiers/gntp.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.GNTP
292
+ notify notifiers/growl.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.Growl
293
+ notify notifiers/growl_notify.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.GrowlNotify
294
+ notify notifiers/libnotify.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.Libnotify
295
+ notify notifiers/notifysend.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.NotifySend
296
+ notify notifiers/rb_notifu.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.Notifu
297
+ notify notifiers/terminal_notifier.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.TerminalNotifier
298
+ notify notifiers/terminal_title.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.TerminalTitle
299
+ notify notifiers/tmux.rb /^ def notify(message, opts = {})$/;" f class:Guard.Notifier.Tmux
300
+ notify plugin/hooker.rb /^ def self.notify(guard_plugin, event, *args)$/;" F class:Guard.Plugin.Hooker
301
+ options interactor.rb /^ def self.options$/;" F class:Guard.Interactor
302
+ options interactor.rb /^ def self.options=(options)$/;" F class:Guard.Interactor
303
+ options ui.rb /^ def options$/;" f class:Guard.UI
304
+ options_store notifiers/tmux.rb /^ def self.options_store$/;" F class:Guard.Notifier
305
+ pause commander.rb /^ def pause$/;" f class:Guard.Commander
306
+ plugin_class plugin_util.rb /^ def plugin_class(options = {})$/;" f class:Guard.PluginUtil.plugin_names
307
+ plugin_location plugin_util.rb /^ def plugin_location$/;" f class:Guard.PluginUtil.plugin_names
308
+ plugin_names plugin_util.rb /^ def self.plugin_names$/;" F class:Guard.PluginUtil
309
+ process commands/all.rb /^ def process(*entries)$/;" f class:Guard.Interactor
310
+ process commands/change.rb /^ def process(*entries)$/;" f class:Guard.Interactor
311
+ process commands/notification.rb /^ def process$/;" f class:Guard.Interactor
312
+ process commands/pause.rb /^ def process$/;" f class:Guard.Interactor
313
+ process commands/reload.rb /^ def process(*entries)$/;" f class:Guard.Interactor
314
+ process commands/scope.rb /^ def process(*entries)$/;" f class:Guard.Interactor
315
+ process commands/show.rb /^ def process$/;" f class:Guard.Interactor
316
+ process interactor.rb /^ def process$/;" f class:Guard._create_guard_commands
317
+ process interactor.rb /^ def process$/;" f class:_create_group_commands
318
+ reevaluate guardfile/evaluator.rb /^ def reevaluate$/;" f class:Guard.Guardfile.Evaluator
319
+ reload commander.rb /^ def reload(scopes = {})$/;" f class:Guard.Commander
320
+ require_gem_safely notifiers/base.rb /^ def self.require_gem_safely(opts = {})$/;" F class:Guard.Notifier.Base
321
+ reset_callbacks plugin/hooker.rb /^ def self.reset_callbacks!$/;" F class:Guard.Plugin.Hooker
322
+ reset_groups setuper.rb /^ def reset_groups$/;" f class:Guard.Setuper
323
+ reset_line ui.rb /^ def reset_line$/;" f class:Guard.UI
324
+ reset_plugins setuper.rb /^ def reset_plugins$/;" f class:Guard.Setuper
325
+ reset_scope setuper.rb /^ def reset_scope$/;" f class:Guard.Setuper
326
+ run runner.rb /^ def run(task, scope = {})$/;" f class:Guard.Runner
327
+ run_all commander.rb /^ def run_all(scopes = {})$/;" f class:Guard.Commander
328
+ run_on_changes runner.rb /^ def run_on_changes(modified, added, removed)$/;" f class:Guard.Runner
329
+ run_supervised_task runner.rb /^ def run_supervised_task(guard, task, *args)$/;" f class:Guard.Runner
330
+ scope dsl.rb /^ def scope(scope = {})$/;" f class:Guard
331
+ setup setuper.rb /^ def setup(opts = {})$/;" f class:Guard.Setuper
332
+ setup_scope setuper.rb /^ def setup_scope(new_scope)$/;" f class:Guard.Setuper
333
+ show cli.rb /^ def show$/;" f class:Guard.CLI.start
334
+ show dsl_describer.rb /^ def show$/;" f class:Guard.DslDescriber
335
+ start cli.rb /^ def start$/;" f class:Guard.CLI
336
+ start commander.rb /^ def start(options = {})$/;" f class:Guard.Commander
337
+ start interactor.rb /^ def start$/;" f class:Guard.Interactor
338
+ stop commander.rb /^ def stop$/;" f class:Guard.Commander
339
+ stop interactor.rb /^ def stop$/;" f class:Guard.Interactor
340
+ stopping_symbol_for runner.rb /^ def self.stopping_symbol_for(guard)$/;" F class:Guard.Runner
341
+ supported_hosts notifiers/base.rb /^ def self.supported_hosts$/;" F class:Guard.Notifier.Base
342
+ supported_hosts notifiers/gntp.rb /^ def self.supported_hosts$/;" F class:Guard.Notifier.GNTP
343
+ supported_hosts notifiers/growl.rb /^ def self.supported_hosts$/;" F class:Guard.Notifier.Growl
344
+ supported_hosts notifiers/growl_notify.rb /^ def self.supported_hosts$/;" F class:Guard.Notifier.GrowlNotify
345
+ supported_hosts notifiers/libnotify.rb /^ def self.supported_hosts$/;" F class:Guard.Notifier.Libnotify
346
+ supported_hosts notifiers/notifysend.rb /^ def self.supported_hosts$/;" F class:Guard.Notifier.NotifySend
347
+ supported_hosts notifiers/rb_notifu.rb /^ def self.supported_hosts$/;" F class:Guard.Notifier.Notifu
348
+ supported_hosts notifiers/terminal_notifier.rb /^ def self.supported_hosts$/;" F class:Guard.Notifier.TerminalNotifier
349
+ system notifiers/tmux.rb /^ def system(args)$/;" f class:Guard.Notifier
350
+ template plugin/base.rb /^ def template(plugin_location)$/;" f class:Guard.Plugin.Base.ClassMethods
351
+ title group.rb /^ def title$/;" f class:Guard.Group
352
+ title notifiers/base.rb /^ def self.title$/;" F class:Guard.Notifier.Base
353
+ title notifiers/base.rb /^ def title$/;" f class:Guard.Notifier.Base
354
+ title plugin/base.rb /^ def title$/;" f class:Guard.Plugin.Base
355
+ tmux_color notifiers/tmux.rb /^ def tmux_color(type, opts = {})$/;" f class:Guard.Notifier.Tmux
356
+ to_s group.rb /^ def to_s$/;" f class:Guard.Group
357
+ to_s plugin/base.rb /^ def to_s$/;" f class:Guard.Plugin.Base
358
+ toggle notifier.rb /^ def toggle$/;" f class:Guard.Notifier
359
+ turn_off notifier.rb /^ def turn_off$/;" f class:Guard.Notifier
360
+ turn_off notifiers/terminal_title.rb /^ def self.turn_off$/;" F class:Guard.Notifier.TerminalTitle
361
+ turn_off notifiers/tmux.rb /^ def self.turn_off$/;" F class:Guard.Notifier
362
+ turn_on notifier.rb /^ def turn_on(opts = {})$/;" f class:Guard.Notifier
363
+ turn_on notifiers/tmux.rb /^ def self.turn_on$/;" F class:Guard.Notifier.Tmux
364
+ version cli.rb /^ def version$/;" f class:Guard.CLI.start
365
+ warning ui.rb /^ def warning(message, options = {})$/;" f class:Guard.UI
366
+ watch dsl.rb /^ def watch(pattern, &action)$/;" f class:Guard.Dsl
367
+ within_preserved_state commander.rb /^ def within_preserved_state$/;" f class:Guard.Commander
data/lib/guard/ui.rb CHANGED
@@ -1,28 +1,28 @@
1
- require 'lumberjack'
1
+ require "lumberjack"
2
2
 
3
- require 'guard/options'
4
- require 'guard/ui/colors'
3
+ require "guard/options"
4
+ require "guard/ui/colors"
5
5
 
6
6
  module Guard
7
-
8
- # The UI class helps to format messages for the user. Everything that is logged
9
- # through this class is considered either as an error message or a diagnostic
10
- # message and is written to standard error ($stderr).
7
+ # The UI class helps to format messages for the user. Everything that is
8
+ # logged through this class is considered either as an error message or a
9
+ # diagnostic message and is written to standard error ($stderr).
11
10
  #
12
- # If your Guard plugin does some output that is piped into another process for further
13
- # processing, please just write it to STDOUT with `puts`.
11
+ # If your Guard plugin does some output that is piped into another process
12
+ # for further processing, please just write it to STDOUT with `puts`.
14
13
  #
15
14
  module UI
16
15
  include Colors
17
16
 
18
17
  class << self
19
-
20
18
  # Get the Guard::UI logger instance
21
19
  #
22
20
  def logger
23
21
  @logger ||= begin
24
- Lumberjack::Logger.new(options.fetch(:device) { $stderr }, options)
25
- end
22
+ Lumberjack::Logger.new(
23
+ options.fetch(:device) { $stderr },
24
+ options)
25
+ end
26
26
  end
27
27
 
28
28
  # Get the logger options
@@ -30,7 +30,10 @@ module Guard
30
30
  # @return [Hash] the logger options
31
31
  #
32
32
  def options
33
- @options ||= ::Guard::Options.new(level: :info, template: ':time - :severity - :message', time_format: '%H:%M:%S')
33
+ @options ||= ::Guard::Options.new(
34
+ level: :info,
35
+ template: ":time - :severity - :message",
36
+ time_format: "%H:%M:%S")
34
37
  end
35
38
 
36
39
  # Set the logger options
@@ -82,6 +85,8 @@ module Guard
82
85
  # @option options [String] plugin manually define the calling plugin
83
86
  #
84
87
  def deprecation(message, options = {})
88
+ msg = "neither ::Guard.setup nor ::Guard.reset_options was called"
89
+ fail msg if ::Guard.options.nil?
85
90
  warning(message, options) if ::Guard.options[:show_deprecations]
86
91
  end
87
92
 
@@ -104,10 +109,9 @@ module Guard
104
109
  # Clear the output if clearable.
105
110
  #
106
111
  def clear(options = {})
107
- if ::Guard.options[:clear] && (@clearable || options[:force])
108
- @clearable = false
109
- system('clear;')
110
- end
112
+ return unless ::Guard.options[:clear] && (@clearable || options[:force])
113
+ @clearable = false
114
+ ::Guard::Sheller.run("clear;")
111
115
  end
112
116
 
113
117
  # Allow the screen to be cleared again.
@@ -119,13 +123,15 @@ module Guard
119
123
  # Show a scoped action message.
120
124
  #
121
125
  # @param [String] action the action to show
122
- # @param [Hash] scopes hash with a guard or a group scope
126
+ # @param [Hash] scope hash with a guard or a group scope
123
127
  #
124
128
  def action_with_scopes(action, scope)
125
129
  first_non_blank_scope = _first_non_blank_scope(scope)
126
- scope_message = first_non_blank_scope.map(&:title).join(', ') unless first_non_blank_scope.nil?
130
+ unless first_non_blank_scope.nil?
131
+ scope_message = first_non_blank_scope.map(&:title).join(", ")
132
+ end
127
133
 
128
- info "#{ action } #{ scope_message || 'all' }"
134
+ info "#{ action } #{ scope_message || "all" }"
129
135
  end
130
136
 
131
137
  private
@@ -152,11 +158,13 @@ module Guard
152
158
  def _filter(plugin)
153
159
  only = options[:only]
154
160
  except = options[:except]
155
- plugin = plugin || calling_plugin_name
161
+ plugin ||= calling_plugin_name
156
162
 
157
- if (!only && !except) || (only && only.match(plugin)) || (except && !except.match(plugin))
158
- yield plugin
159
- end
163
+ match = !(only || except)
164
+ match ||= (only && only.match(plugin))
165
+ match ||= (except && !except.match(plugin))
166
+ return unless match
167
+ yield plugin
160
168
  end
161
169
 
162
170
  # Display a message of the type `method` and with the color `color_name`
@@ -183,7 +191,10 @@ module Guard
183
191
  #
184
192
  def calling_plugin_name(depth = 2)
185
193
  name = /(guard\/[a-z_]*)(\/[a-z_]*)?.rb:/i.match(caller[depth])
186
- name ? name[1].split('/').map { |part| part.split(/[^a-z0-9]/i).map { |word| word.capitalize }.join }.join('::') : 'Guard'
194
+ return "Guard" unless name
195
+ name[1].split("/").map do |part|
196
+ part.split(/[^a-z0-9]/i).map(&:capitalize).join
197
+ end.join("::")
187
198
  end
188
199
 
189
200
  # Checks if color output can be enabled.
@@ -191,18 +202,21 @@ module Guard
191
202
  # @return [Boolean] whether color is enabled or not
192
203
  #
193
204
  def color_enabled?
205
+ @color_enabled_initialized ||= false
206
+ @color_enabled = nil unless @color_enabled_initialized
207
+ @color_enabled_initialized = true
194
208
  if @color_enabled.nil?
195
- if RbConfig::CONFIG['target_os'] =~ /mswin|mingw/i
196
- if ENV['ANSICON']
209
+ if RbConfig::CONFIG["target_os"] =~ /mswin|mingw/i
210
+ if ENV["ANSICON"]
197
211
  @color_enabled = true
198
212
  else
199
213
  begin
200
- require 'rubygems' unless ENV['NO_RUBYGEMS']
201
- require 'Win32/Console/ANSI'
214
+ require "rubygems" unless ENV["NO_RUBYGEMS"]
215
+ require "Win32/Console/ANSI"
202
216
  @color_enabled = true
203
217
  rescue LoadError
204
218
  @color_enabled = false
205
- info "You must 'gem install win32console' to use color on Windows"
219
+ info "Run 'gem install win32console' to use color on Windows"
206
220
  end
207
221
  end
208
222
  else
@@ -225,20 +239,18 @@ module Guard
225
239
  # @param [Array] color_options the color options
226
240
  #
227
241
  def color(text, *color_options)
228
- color_code = ''
242
+ color_code = ""
229
243
  color_options.each do |color_option|
230
244
  color_option = color_option.to_s
231
- if color_option != ''
232
- unless color_option =~ /\d+/
233
- color_option = const_get("ANSI_ESCAPE_#{ color_option.upcase }")
234
- end
235
- color_code += ';' + color_option
245
+ next if color_option == ""
246
+
247
+ unless color_option =~ /\d+/
248
+ color_option = const_get("ANSI_ESCAPE_#{ color_option.upcase }")
236
249
  end
250
+ color_code += ";" + color_option
237
251
  end
238
252
  color_enabled? ? "\e[0#{ color_code }m#{ text }\e[0m" : text
239
253
  end
240
-
241
254
  end
242
-
243
255
  end
244
256
  end