guard 1.0.3 → 1.1.0.alpha

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 (77) hide show
  1. data/CHANGELOG.md +0 -6
  2. data/README.md +38 -30
  3. data/lib/guard.rb +158 -285
  4. data/lib/guard/cli.rb +16 -2
  5. data/lib/guard/dsl.rb +41 -20
  6. data/lib/guard/dsl_describer.rb +1 -1
  7. data/lib/guard/group.rb +1 -1
  8. data/lib/guard/guard.rb +39 -5
  9. data/lib/guard/guardfile.rb +70 -0
  10. data/lib/guard/runner.rb +179 -0
  11. data/lib/guard/ui.rb +1 -1
  12. data/lib/guard/version.rb +2 -4
  13. data/lib/guard/watcher.rb +1 -0
  14. metadata +16 -77
  15. data/bin/fsevent_watch_guard_guard +0 -0
  16. data/lib/guard/listener.rb +0 -376
  17. data/lib/guard/listeners/darwin.rb +0 -62
  18. data/lib/guard/listeners/linux.rb +0 -93
  19. data/lib/guard/listeners/polling.rb +0 -55
  20. data/lib/guard/listeners/windows.rb +0 -63
  21. data/lib/vendor/darwin/Gemfile +0 -6
  22. data/lib/vendor/darwin/Guardfile +0 -8
  23. data/lib/vendor/darwin/LICENSE +0 -20
  24. data/lib/vendor/darwin/README.rdoc +0 -255
  25. data/lib/vendor/darwin/Rakefile +0 -21
  26. data/lib/vendor/darwin/bin/fsevent_watch +0 -0
  27. data/lib/vendor/darwin/ext/fsevent_watch/Info.plist +0 -38
  28. data/lib/vendor/darwin/ext/fsevent_watch/LICENSE +0 -21
  29. data/lib/vendor/darwin/ext/fsevent_watch/fsevent_watch.xcodeproj/project.pbxproj +0 -254
  30. data/lib/vendor/darwin/ext/fsevent_watch/fsevent_watch/TSICTString.c +0 -394
  31. data/lib/vendor/darwin/ext/fsevent_watch/fsevent_watch/TSICTString.h +0 -74
  32. data/lib/vendor/darwin/ext/fsevent_watch/fsevent_watch/cli.c +0 -160
  33. data/lib/vendor/darwin/ext/fsevent_watch/fsevent_watch/cli.h +0 -45
  34. data/lib/vendor/darwin/ext/fsevent_watch/fsevent_watch/common.h +0 -34
  35. data/lib/vendor/darwin/ext/fsevent_watch/fsevent_watch/compat.c +0 -20
  36. data/lib/vendor/darwin/ext/fsevent_watch/fsevent_watch/compat.h +0 -40
  37. data/lib/vendor/darwin/ext/fsevent_watch/fsevent_watch/main.c +0 -509
  38. data/lib/vendor/darwin/ext/fsevent_watch/xcconfig/Common.xcconfig +0 -82
  39. data/lib/vendor/darwin/ext/fsevent_watch/xcconfig/Debug.xcconfig +0 -19
  40. data/lib/vendor/darwin/ext/fsevent_watch/xcconfig/Release.xcconfig +0 -23
  41. data/lib/vendor/darwin/ext/fsevent_watch/xcconfig/fsevent_watch.xcconfig +0 -17
  42. data/lib/vendor/darwin/ext/rakefile.rb +0 -47
  43. data/lib/vendor/darwin/ext/rb-fsevent.xcconfig +0 -33
  44. data/lib/vendor/darwin/lib/rb-fsevent.rb +0 -2
  45. data/lib/vendor/darwin/lib/rb-fsevent/fsevent.rb +0 -111
  46. data/lib/vendor/darwin/lib/rb-fsevent/version.rb +0 -3
  47. data/lib/vendor/darwin/rb-fsevent.gemspec +0 -25
  48. data/lib/vendor/darwin/spec/fixtures/folder1/file1.txt +0 -0
  49. data/lib/vendor/darwin/spec/fixtures/folder1/folder2/file2.txt +0 -0
  50. data/lib/vendor/darwin/spec/rb-fsevent/fsevent_spec.rb +0 -88
  51. data/lib/vendor/darwin/spec/spec_helper.rb +0 -23
  52. data/lib/vendor/linux/MIT-LICENSE +0 -20
  53. data/lib/vendor/linux/README.md +0 -66
  54. data/lib/vendor/linux/Rakefile +0 -54
  55. data/lib/vendor/linux/VERSION +0 -1
  56. data/lib/vendor/linux/lib/rb-inotify.rb +0 -17
  57. data/lib/vendor/linux/lib/rb-inotify/event.rb +0 -139
  58. data/lib/vendor/linux/lib/rb-inotify/native.rb +0 -31
  59. data/lib/vendor/linux/lib/rb-inotify/native/flags.rb +0 -89
  60. data/lib/vendor/linux/lib/rb-inotify/notifier.rb +0 -308
  61. data/lib/vendor/linux/lib/rb-inotify/watcher.rb +0 -83
  62. data/lib/vendor/linux/rb-inotify.gemspec +0 -53
  63. data/lib/vendor/windows/Gemfile +0 -4
  64. data/lib/vendor/windows/README.md +0 -34
  65. data/lib/vendor/windows/Rakefile +0 -18
  66. data/lib/vendor/windows/lib/rb-fchange.rb +0 -14
  67. data/lib/vendor/windows/lib/rb-fchange/event.rb +0 -29
  68. data/lib/vendor/windows/lib/rb-fchange/native.rb +0 -45
  69. data/lib/vendor/windows/lib/rb-fchange/native/flags.rb +0 -78
  70. data/lib/vendor/windows/lib/rb-fchange/notifier.rb +0 -149
  71. data/lib/vendor/windows/lib/rb-fchange/version.rb +0 -3
  72. data/lib/vendor/windows/lib/rb-fchange/watcher.rb +0 -99
  73. data/lib/vendor/windows/rb-fchange.gemspec +0 -34
  74. data/lib/vendor/windows/spec/fixtures/folder1/file1.txt +0 -0
  75. data/lib/vendor/windows/spec/fixtures/folder1/folder2/file2.txt +0 -0
  76. data/lib/vendor/windows/spec/rb-fchange/fchange_spec.rb +0 -119
  77. data/lib/vendor/windows/spec/spec_helper.rb +0 -21
@@ -1,82 +0,0 @@
1
- // local defines
2
- COMMON_CFLAGS = -pipe
3
- COMMON_GCC_PREPROCESSOR_DEFINITIONS = NS_BUILD_32_LIKE_64 NS_BLOCK_ASSERTIONS
4
-
5
-
6
- // architectures
7
- ARCHS = $(ARCHS_STANDARD_32_64_BIT)
8
- VALID_ARCHS = i386 x86_64
9
- SDKROOT = macosx
10
- SUPPORTED_PLATFORMS = macosx
11
- ONLY_ACTIVE_ARCH = NO
12
-
13
-
14
- // build options
15
- DEBUG_INFORMATION_FORMAT = dwarf
16
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0
17
- RUN_CLANG_STATIC_ANALYZER = YES
18
-
19
-
20
- // deployment
21
- MACOSX_DEPLOYMENT_TARGET = 10.6
22
-
23
-
24
- // linking
25
- DEAD_CODE_STRIPPING = YES
26
- PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES
27
- LINK_WITH_STANDARD_LIBRARIES = YES
28
-
29
-
30
- // search paths
31
- FRAMEWORK_SEARCH_PATHS = $(value) $(SYSTEM_LIBRARY_DIR)/Frameworks $(LOCAL_LIBRARY_DIR)/Frameworks
32
-
33
-
34
- // code generation
35
- GCC_DYNAMIC_NO_PIC = NO
36
- GCC_FAST_OBJC_DISPATCH = YES
37
- GCC_GENERATE_DEBUGGING_SYMBOLS = YES
38
- GCC_STRICT_ALIASING = YES
39
- LLVM_LTO = YES
40
-
41
-
42
- // language
43
- GCC_C_LANGUAGE_STANDARD = gnu99
44
- OTHER_CFLAGS = $(COMMON_CFLAGS)
45
-
46
-
47
- // preprocessing
48
- GCC_PREPROCESSOR_DEFINITIONS = $(COMMON_GCC_PREPROCESSOR_DEFINITIONS)
49
-
50
-
51
- // warnings
52
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
53
- CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES
54
- CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES
55
- CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES
56
- GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES
57
- GCC_TREAT_WARNINGS_AS_ERRORS = NO
58
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES
59
- GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES
60
- GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES
61
- GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
62
- GCC_WARN_ABOUT_MISSING_NEWLINE = YES
63
- GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO
64
- GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES
65
- GCC_WARN_ABOUT_RETURN_TYPE = YES
66
- GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES
67
- GCC_WARN_CHECK_SWITCH_STATEMENTS = YES
68
- GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO
69
- GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES
70
- GCC_WARN_MISSING_PARENTHESES = YES
71
- GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO
72
- GCC_WARN_SHADOW = YES
73
- GCC_WARN_SIGN_COMPARE = YES
74
- GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES
75
- GCC_WARN_UNINITIALIZED_AUTOS = YES
76
- GCC_WARN_UNKNOWN_PRAGMAS = YES
77
- GCC_WARN_UNUSED_FUNCTION = YES
78
- GCC_WARN_UNUSED_LABEL = YES
79
- GCC_WARN_UNUSED_PARAMETER = NO
80
- GCC_WARN_UNUSED_VALUE = YES
81
- GCC_WARN_UNUSED_VARIABLE = YES
82
- WARNING_CFLAGS = -Wall -Wextra -Wpointer-arith -Wformat=2 -Wfloat-equal -Wstrict-overflow=4 -Wbad-function-cast -Winline -Wconversion -Wstrict-aliasing -Wno-unused-parameter -Wno-arc-performSelector-leaks
@@ -1,19 +0,0 @@
1
- #include "Common.xcconfig"
2
-
3
-
4
- // deployment
5
- COPY_PHASE_STRIP = NO
6
- STRIP_INSTALLED_PRODUCT = NO
7
-
8
-
9
- // code generation
10
- GCC_OPTIMIZATION_LEVEL = 0
11
- GCC_GENERATE_DEBUGGING_SYMBOLS = YES
12
-
13
-
14
- // language
15
- OTHER_CFLAGS = $(COMMON_CFLAGS) -fcatch-undefined-behavior -ftrapv -fverbose-asm
16
-
17
-
18
- // preprocessing
19
- GCC_PREPROCESSOR_DEFINITIONS = $(COMMON_GCC_PREPROCESSOR_DEFINITIONS) DEBUG DEBUG_$(USER)
@@ -1,23 +0,0 @@
1
- #include "Common.xcconfig"
2
-
3
-
4
- // build options
5
- VALIDATE_PRODUCT = YES
6
-
7
-
8
- // code signing
9
- CODE_SIGN_IDENTITY = 3rd Party Mac Developer Application: Travis Tilley
10
-
11
-
12
- // deployment
13
- COPY_PHASE_STRIP = YES
14
- STRIP_INSTALLED_PRODUCT = YES
15
-
16
-
17
- // code generation
18
- GCC_OPTIMIZATION_LEVEL = 4
19
- GCC_UNROLL_LOOPS = YES
20
-
21
-
22
- // preprocessing
23
- GCC_PREPROCESSOR_DEFINITIONS = $(COMMON_GCC_PREPROCESSOR_DEFINITIONS) NDEBUG
@@ -1,17 +0,0 @@
1
- // linking
2
- MACH_O_TYPE = mh_execute
3
- OTHER_LDFLAGS = -sectcreate __TEXT __info_plist "$(DERIVED_FILE_DIR)/Info.plist"
4
- GENERATE_MASTER_OBJECT_FILE = YES
5
-
6
-
7
- // packaging
8
- INFOPLIST_FILE = Info.plist
9
- PRODUCT_NAME = $(TARGET_NAME)
10
-
11
-
12
- // versioning
13
- CURRENT_PROJECT_VERSION = 0.1.1
14
-
15
-
16
- // preprocessing
17
- GCC_PREPROCESSOR_DEFINITIONS = $(inherited) PROJECT_VERSION="$(CURRENT_PROJECT_VERSION)"
@@ -1,47 +0,0 @@
1
- # vim: fileencoding=UTF-8 nobomb sw=2 ts=2 et
2
-
3
- XCODEBUILD = '/usr/bin/xcodebuild'
4
- XCCONFIG = File.expand_path('rb-fsevent.xcconfig')
5
-
6
- namespace :xcode do
7
- $target = 'fsevent_watch'
8
- $configuration = ENV['FWDEBUG'] ? 'Debug' : 'Release'
9
-
10
- def xcb(action, extra='')
11
- command = [
12
- XCODEBUILD,
13
- "-target", $target,
14
- "-configuration", $configuration,
15
- action,
16
- "-xcconfig", XCCONFIG,
17
- extra
18
- ].join(' ')
19
-
20
- Dir.chdir 'fsevent_watch' do
21
- results = `#{command}`
22
- STDERR.puts results
23
- raise "xcodebuild failure" unless $?.success?
24
- end
25
- end
26
-
27
- desc 'run xcodebuild clean'
28
- task :clean do
29
- xcb 'clean'
30
- end
31
-
32
- desc 'run xcodebuild build'
33
- task :build => :clean do
34
- xcb 'build'
35
- end
36
-
37
- desc 'run xcodebuild install'
38
- task :install => :build do
39
- xcb 'install', "DEPLOYMENT_LOCATION='YES'"
40
- end
41
-
42
- task :remove_turds do
43
- rm_rf File.join('fsevent_watch', 'build')
44
- end
45
- end
46
-
47
- task :default => ['xcode:install', 'xcode:remove_turds']
@@ -1,33 +0,0 @@
1
- // settings in this file will override those defined in the xcode project
2
-
3
- // - deployment -
4
- INSTALL_MODE_FLAG = u+w,go-w,a+rX
5
- MACOSX_DEPLOYMENT_TARGET = 10.5
6
- DSTROOT = ../../
7
- INSTALL_PATH = /bin
8
- SKIP_INSTALL = NO
9
-
10
- // - build locations -
11
- SYMROOT = build
12
- OBJROOT = $(SYMROOT)
13
-
14
- // - architectures -
15
- ARCHS = $(NATIVE_ARCH_ACTUAL)
16
- SDKROOT =
17
-
18
- // - build options -
19
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0
20
-
21
- // etc
22
- RUN_CLANG_STATIC_ANALYZER = YES
23
- DEAD_CODE_STRIPPING = YES
24
- PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES
25
- LD_NO_PIE = NO
26
- GCC_GENERATE_DEBUGGING_SYMBOLS = YES
27
- LLVM_LTO = NO
28
- LLVM_LTO[arch=x86_64] = YES
29
- GCC_C_LANGUAGE_STANDARD = gnu99
30
- GCC_ENABLE_OBJC_EXCEPTIONS = YES
31
- GCC_ENABLE_OBJC_GC = unsupported
32
- GCC_ENABLE_EXCEPTIONS = YES
33
-
@@ -1,2 +0,0 @@
1
- require 'rb-fsevent/fsevent'
2
- require 'rb-fsevent/version'
@@ -1,111 +0,0 @@
1
- class FSEvent
2
- class << self
3
- class_eval <<-END
4
- def root_path
5
- "#{File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', '..', '..'))}"
6
- end
7
- END
8
- class_eval <<-END
9
- def watcher_path
10
- "#{File.join(FSEvent.root_path, 'bin', 'fsevent_watch_guard')}"
11
- end
12
- END
13
- end
14
-
15
- attr_reader :paths, :callback
16
-
17
- def initialize args = nil, &block
18
- watch(args, &block) unless args.nil?
19
- end
20
-
21
- def watch(watch_paths, options=nil, &block)
22
- @paths = watch_paths.kind_of?(Array) ? watch_paths : [watch_paths]
23
- @callback = block
24
-
25
- if options.kind_of?(Hash)
26
- @options = parse_options(options)
27
- elsif options.kind_of?(Array)
28
- @options = options
29
- else
30
- @options = []
31
- end
32
- end
33
-
34
- def run
35
- @pipe = open_pipe
36
- @running = true
37
-
38
- # please note the use of IO::select() here, as it is used specifically to
39
- # preserve correct signal handling behavior in ruby 1.8.
40
- while @running && IO::select([@pipe], nil, nil, nil)
41
- if line = @pipe.readline
42
- modified_dir_paths = line.split(':').select { |dir| dir != "\n" }
43
- callback.call(modified_dir_paths)
44
- end
45
- end
46
- rescue Interrupt, IOError
47
- ensure
48
- stop
49
- end
50
-
51
- def stop
52
- unless @pipe.nil?
53
- Process.kill('KILL', @pipe.pid)
54
- @pipe.close
55
- end
56
- rescue IOError
57
- ensure
58
- @running = false
59
- end
60
-
61
- if RUBY_VERSION < '1.9'
62
- def open_pipe
63
- IO.popen("#{self.class.watcher_path} #{options_string} #{shellescaped_paths}")
64
- end
65
-
66
- private
67
-
68
- def options_string
69
- @options.join(' ')
70
- end
71
-
72
- def shellescaped_paths
73
- @paths.map {|path| shellescape(path)}.join(' ')
74
- end
75
-
76
- # for Ruby 1.8.6 support
77
- def shellescape(str)
78
- # An empty argument will be skipped, so return empty quotes.
79
- return "''" if str.empty?
80
-
81
- str = str.dup
82
-
83
- # Process as a single byte sequence because not all shell
84
- # implementations are multibyte aware.
85
- str.gsub!(/([^A-Za-z0-9_\-.,:\/@\n])/n, "\\\\\\1")
86
-
87
- # A LF cannot be escaped with a backslash because a backslash + LF
88
- # combo is regarded as line continuation and simply ignored.
89
- str.gsub!(/\n/, "'\n'")
90
-
91
- return str
92
- end
93
- else
94
- def open_pipe
95
- IO.popen([self.class.watcher_path] + @options + @paths)
96
- end
97
- end
98
-
99
- private
100
-
101
- def parse_options(options={})
102
- opts = []
103
- opts.concat(['--since-when', options[:since_when]]) if options[:since_when]
104
- opts.concat(['--latency', options[:latency]]) if options[:latency]
105
- opts.push('--no-defer') if options[:no_defer]
106
- opts.push('--watch-root') if options[:watch_root]
107
- # ruby 1.9's IO.popen(array-of-stuff) syntax requires all items to be strings
108
- opts.map {|opt| "#{opt}"}
109
- end
110
-
111
- end
@@ -1,3 +0,0 @@
1
- class FSEvent
2
- VERSION = "0.9.1"
3
- end
@@ -1,25 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "rb-fsevent/version"
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "rb-fsevent"
7
- s.version = FSEvent::VERSION
8
- s.platform = Gem::Platform::RUBY
9
- s.authors = ['Thibaud Guillaume-Gentil', 'Travis Tilley']
10
- s.email = ['thibaud@thibaud.me', 'ttilley@gmail.com']
11
- s.homepage = "http://rubygems.org/gems/rb-fsevent"
12
- s.summary = "Very simple & usable FSEvents API"
13
- s.description = "FSEvents API with Signals catching (without RubyCocoa)"
14
-
15
- s.rubyforge_project = "rb-fsevent"
16
-
17
- s.add_development_dependency 'bundler', '~> 1.0'
18
- s.add_development_dependency 'rspec', '~> 2.5.0'
19
- s.add_development_dependency 'guard-rspec', '~> 0.1.9'
20
-
21
- s.files = Dir.glob('{bin,lib,ext}/**/*') + %w[LICENSE README.rdoc]
22
- # s.extensions = ['ext/rakefile.rb']
23
- s.require_path = 'lib'
24
- end
25
-
File without changes
@@ -1,88 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FSEvent do
4
-
5
- before(:each) do
6
- @results = []
7
- @fsevent = FSEvent.new
8
- @fsevent.watch @fixture_path.to_s, {:latency => 0.5} do |paths|
9
- @results += paths
10
- end
11
- end
12
-
13
- it "shouldn't pass anything to watch when instantiated without a path" do
14
- fsevent = FSEvent.new
15
- fsevent.paths.should be_nil
16
- fsevent.callback.should be_nil
17
- end
18
-
19
- it "should pass path and block to watch when instantiated with them" do
20
- blk = proc { }
21
- fsevent = FSEvent.new(@fixture_path, &blk)
22
- fsevent.paths.should == [@fixture_path]
23
- fsevent.callback.should == blk
24
- end
25
-
26
- it "should have a watcher_path that resolves to an executable file" do
27
- File.exists?(FSEvent.watcher_path).should be_true
28
- File.executable?(FSEvent.watcher_path).should be_true
29
- end
30
-
31
- it "should work with path with an apostrophe" do
32
- custom_path = @fixture_path.join("custom 'path")
33
- file = custom_path.join("newfile.rb").to_s
34
- File.delete file if File.exists? file
35
- @fsevent.watch custom_path.to_s do |paths|
36
- @results += paths
37
- end
38
- @fsevent.paths.should == ["#{custom_path}"]
39
- run
40
- FileUtils.touch file
41
- stop
42
- File.delete file
43
- @results.should == [custom_path.to_s + '/']
44
- end
45
-
46
- it "should catch new file" do
47
- file = @fixture_path.join("newfile.rb")
48
- File.delete file if File.exists? file
49
- run
50
- FileUtils.touch file
51
- stop
52
- File.delete file
53
- @results.should == [@fixture_path.to_s + '/']
54
- end
55
-
56
- it "should catch file update" do
57
- file = @fixture_path.join("folder1/file1.txt")
58
- File.exists?(file).should be_true
59
- run
60
- FileUtils.touch file
61
- stop
62
- @results.should == [@fixture_path.join("folder1/").to_s]
63
- end
64
-
65
- it "should catch files update" do
66
- file1 = @fixture_path.join("folder1/file1.txt")
67
- file2 = @fixture_path.join("folder1/folder2/file2.txt")
68
- File.exists?(file1).should be_true
69
- File.exists?(file2).should be_true
70
- run
71
- FileUtils.touch file1
72
- FileUtils.touch file2
73
- stop
74
- @results.should == [@fixture_path.join("folder1/").to_s, @fixture_path.join("folder1/folder2/").to_s]
75
- end
76
-
77
- def run
78
- sleep 1
79
- Thread.new { @fsevent.run }
80
- sleep 1
81
- end
82
-
83
- def stop
84
- sleep 1
85
- @fsevent.stop
86
- end
87
-
88
- end