guard 2.10.0 → 2.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/guard.rb +11 -2
- data/lib/guard.rb.orig +57 -154
- data/lib/guard/dsl.rb +13 -8
- data/lib/guard/dsl.rb.orig +77 -23
- data/lib/guard/internals/session.rb +5 -0
- data/lib/guard/internals/session.rb.orig +15 -2
- data/lib/guard/notifier.rb +5 -6
- data/lib/guard/notifiers/tmux.rb +24 -24
- data/lib/guard/plugin.rb +2 -2
- data/lib/guard/ui.rb +1 -7
- data/lib/guard/version.rb +1 -1
- data/lib/guard/version.rb.orig +1 -1
- metadata +2 -12
- data/lib/guard/cli.rb.orig +0 -220
- data/lib/guard/deprecated/guard.rb.orig +0 -178
- data/lib/guard/dsl_describer.rb.orig +0 -188
- data/lib/guard/notifier.rb.orig +0 -247
- data/lib/guard/notifier/detected.rb.orig +0 -83
- data/lib/guard/plugin.rb.orig +0 -300
- data/lib/guard/reevaluator.rb.orig +0 -22
- data/lib/guard/templates/Guardfile.orig +0 -2
- data/lib/guard/ui.rb.orig +0 -274
- data/lib/guard/watcher.rb.orig +0 -122
data/lib/guard/watcher.rb.orig
DELETED
@@ -1,122 +0,0 @@
|
|
1
|
-
require "guard/ui"
|
2
|
-
|
3
|
-
module Guard
|
4
|
-
# The watcher defines a RegExp that will be matched against file system
|
5
|
-
# modifications.
|
6
|
-
# When a watcher matches a change, an optional action block is executed to
|
7
|
-
# enable processing the file system change result.
|
8
|
-
#
|
9
|
-
class Watcher
|
10
|
-
attr_accessor :pattern, :action
|
11
|
-
|
12
|
-
# Initializes a file watcher.
|
13
|
-
#
|
14
|
-
# @param [String, Regexp] pattern the pattern to be watched by the Guard
|
15
|
-
# plugin
|
16
|
-
# @param [Block] action the action to execute before passing the result to
|
17
|
-
# the Guard plugin
|
18
|
-
#
|
19
|
-
def initialize(pattern, action = nil)
|
20
|
-
@pattern, @action = pattern, action
|
21
|
-
@@warning_printed ||= false
|
22
|
-
|
23
|
-
# deprecation warning
|
24
|
-
regexp = /(^(\^))|(>?(\\\.)|(\.\*))|(\(.*\))|(\[.*\])|(\$$)/
|
25
|
-
return unless @pattern.is_a?(String) && @pattern =~ regexp
|
26
|
-
|
27
|
-
unless @@warning_printed
|
28
|
-
::Guard::UI.info "*" * 20 + "\nDEPRECATION WARNING!\n" + "*" * 20
|
29
|
-
::Guard::UI.info <<-MSG
|
30
|
-
You have a string in your Guardfile watch patterns that seem to
|
31
|
-
represent a Regexp.
|
32
|
-
|
33
|
-
Guard matches String with == and Regexp with Regexp#match.
|
34
|
-
|
35
|
-
You should either use plain String (without Regexp special
|
36
|
-
characters) or real Regexp.
|
37
|
-
MSG
|
38
|
-
@@warning_printed = true
|
39
|
-
end
|
40
|
-
|
41
|
-
new_regexp = Regexp.new(@pattern).inspect
|
42
|
-
::Guard::UI.info "\"#{@pattern}\" has been converted to #{ new_regexp }\n"
|
43
|
-
@pattern = Regexp.new(@pattern)
|
44
|
-
end
|
45
|
-
|
46
|
-
# Finds the files that matches a Guard plugin.
|
47
|
-
#
|
48
|
-
# @param [Guard::Plugin] guard the Guard plugin which watchers are used
|
49
|
-
# @param [Array<String>] files the changed files
|
50
|
-
# @return [Array<Object>] the matched watcher response
|
51
|
-
#
|
52
|
-
def self.match_files(guard, files)
|
53
|
-
return [] if files.empty?
|
54
|
-
|
55
|
-
files.inject([]) do |paths, file|
|
56
|
-
guard.watchers.each do |watcher|
|
57
|
-
matches = watcher.match(file)
|
58
|
-
next unless matches
|
59
|
-
|
60
|
-
if watcher.action
|
61
|
-
result = watcher.call_action(matches)
|
62
|
-
if guard.options[:any_return]
|
63
|
-
paths << result
|
64
|
-
elsif result.respond_to?(:empty?) && !result.empty?
|
65
|
-
paths << Array(result)
|
66
|
-
else
|
67
|
-
next
|
68
|
-
end
|
69
|
-
else
|
70
|
-
paths << matches[0]
|
71
|
-
end
|
72
|
-
|
73
|
-
break if guard.options[:first_match]
|
74
|
-
end
|
75
|
-
|
76
|
-
guard.options[:any_return] ? paths : paths.flatten.map(&:to_s)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
# Tests if any of the files is the Guardfile.
|
81
|
-
#
|
82
|
-
# @param [Array<String>] files the files to test
|
83
|
-
# @return [Boolean] whether one of these files is the Guardfile
|
84
|
-
#
|
85
|
-
def self.match_guardfile?(files)
|
86
|
-
# TODO: move this method elsewhere
|
87
|
-
require "guard/guardfile/evaluator"
|
88
|
-
path = ::Guard::Guardfile::Evaluator.new(::Guard.options).guardfile_path
|
89
|
-
STDERR.puts "PATH: #{path.inspect}"
|
90
|
-
files.any? { |file| File.expand_path(file) == path }
|
91
|
-
end
|
92
|
-
|
93
|
-
# Test the watchers pattern against a file.
|
94
|
-
#
|
95
|
-
# @param [String] file the file to test
|
96
|
-
# @return [Array<String>] an array of matches (or containing a single path
|
97
|
-
# if the pattern is a string)
|
98
|
-
#
|
99
|
-
def match(string_or_pathname)
|
100
|
-
# TODO: use only match() - and show fnmatch example
|
101
|
-
file = string_or_pathname.to_s
|
102
|
-
return (file == @pattern ? [file] : nil) unless @pattern.is_a?(Regexp)
|
103
|
-
return unless (m = @pattern.match(file))
|
104
|
-
m = m.to_a
|
105
|
-
m[0] = file
|
106
|
-
m
|
107
|
-
end
|
108
|
-
|
109
|
-
# Executes a watcher action.
|
110
|
-
#
|
111
|
-
# @param [String, MatchData] matches the matched path or the match from the
|
112
|
-
# Regex
|
113
|
-
# @return [String] the final paths
|
114
|
-
#
|
115
|
-
def call_action(matches)
|
116
|
-
@action.arity > 0 ? @action.call(matches) : @action.call
|
117
|
-
rescue => ex
|
118
|
-
::Guard::UI.error "Problem with watch action!\n#{ ex.message }"
|
119
|
-
::Guard::UI.error ex.backtrace.join("\n")
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|