file-monitor 0.1.3 → 0.1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7b978751c254b8d7da4741b2250b0c1a89ce0cf5
4
+ data.tar.gz: 864c9b31b94d575560933770bb97d9d0fbad68bb
5
+ SHA512:
6
+ metadata.gz: b1f78303e045851b3c2b0a1b972d986084f6ea21b5464ff8bb42739dfb4f5fa48f1d4a9c9c79d04a9d02052f829380482cf70a8d165aaf3daae89738022b161e
7
+ data.tar.gz: f22b283565d45e4aee994733aba6f945ef272653a811c588641a288014e7ffd104fd185bd9db2975f204c28d135552a7148d86018e862a3de1a9b4d04bb8c055
data/README.md CHANGED
@@ -89,6 +89,24 @@ Usage
89
89
  }
90
90
  end
91
91
 
92
+ #### Simple
93
+
94
+ #!/usr/bin/env ruby
95
+ # coding: utf-8
96
+ # File: examples/simple.rb
97
+ require 'rubygems'
98
+ require 'file-monitor'
99
+
100
+ FileMonitor.watch '.' do
101
+ # missing 'dirs' file-monitor will watch all sub directories
102
+
103
+ # only record ruby file
104
+ files /\.rb$/
105
+ exec {
106
+ system('rake test')
107
+ }
108
+ end
109
+
92
110
  Examples
93
111
  --------
94
112
  ### Auto F5
@@ -138,3 +156,22 @@ Edit and save README.md by gvim, examples/use-block outputs
138
156
  # ./README.md
139
157
  5 events
140
158
  do something
159
+
160
+ ### File Monitor Cli
161
+
162
+ $ watch.rb
163
+
164
+ Usage: watch.rb [options] [directory]
165
+
166
+ -d, --dir the directory regexp to watch
167
+ -e, --exec the command will be execuate
168
+ -f, --file the file regexp to watch
169
+ -h, --help display this help message
170
+
171
+ Example:
172
+
173
+ Watch current working dir and sub directory lib and src,
174
+ if any ruby file(match \.rb$) changes
175
+ then execute 'ls' command
176
+
177
+ watch.rb -d 'lib$' -d 'src$' -f '\.rb$' -e 'ls'
data/bin/f5.rb CHANGED
File without changes
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'file-monitor'
5
+ require 'getoptlong'
6
+
7
+ opts = GetoptLong.new(
8
+ ['--dir', '-d', GetoptLong::OPTIONAL_ARGUMENT],
9
+ ['--file', '-f', GetoptLong::OPTIONAL_ARGUMENT],
10
+ ['--exec', '-e', GetoptLong::OPTIONAL_ARGUMENT],
11
+ ['--help', '-h', GetoptLong::OPTIONAL_ARGUMENT]
12
+ )
13
+
14
+ $dirs = []
15
+ $files = []
16
+ $command = 'echo do something'
17
+ opts.each do|opt, arg|
18
+ case opt
19
+ when '--dir'
20
+ $dirs.push Regexp.new arg
21
+ when '--file'
22
+ $files.push Regexp.new arg
23
+ when '--exec'
24
+ $command = arg
25
+ when '--help'
26
+ puts <<EOT
27
+
28
+ Usage: watch.rb [options] [directory]
29
+
30
+ -d, --dir the directory regexp to watch
31
+ -e, --exec the command will be execuate
32
+ -f, --file the file regexp to watch
33
+ -h, --help display this help message
34
+
35
+ Example:
36
+
37
+ Watch current working dir and sub directory lib and src,
38
+ if any ruby file(match \.rb$) changes
39
+ then execute 'ls' command
40
+
41
+ watch.rb -d 'lib$' -d 'src$' -f '.rb$' -e 'ls'
42
+
43
+ EOT
44
+ exit(0)
45
+ end
46
+ end
47
+
48
+ dir = ARGV[0] || '.'
49
+
50
+ print 'dirs: '
51
+ puts $dirs.inspect
52
+ print 'files: '
53
+ puts $files.inspect
54
+
55
+ FileMonitor.watch dir do
56
+ dirs *$dirs
57
+ files *$files
58
+ exec do
59
+ system $command
60
+ end
61
+ end
File without changes
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # coding: utf-8
3
+ # File: examples/simple.rb
4
+ require 'rubygems'
5
+ require 'file-monitor'
6
+
7
+ FileMonitor.watch '.' do
8
+ # missing 'dirs' file-monitor will watch all sub directories
9
+
10
+ # only record ruby file
11
+ files /\.rb$/
12
+ exec {
13
+ system('rake test')
14
+ }
15
+ end
@@ -153,16 +153,19 @@ class FileMonitor
153
153
 
154
154
  # Watch a directory
155
155
  def watch(dir)
156
- dir = trim_dir(dir)
157
- if !@follow_symlink and File.symlink? dir
158
- puts "ignore symlink directory #{dir}"
159
- return false
160
- end
161
- if ignored_dir?(dir)
162
- puts "ignore #{dir}"
163
- return false
164
- else
165
- puts "watching #{dir}"
156
+ # always allow watching @project_dir
157
+ if dir != @project_dir
158
+ dir = trim_dir(dir)
159
+ if !@follow_symlink and File.symlink? dir
160
+ puts "ignore symlink directory #{dir}"
161
+ return false
162
+ end
163
+ if ignored_dir?(dir)
164
+ puts "ignore #{dir}"
165
+ return false
166
+ else
167
+ puts "watching #{dir}"
168
+ end
166
169
  end
167
170
 
168
171
  @notifier.watch dir, :modify, :create, :move, :delete, :onlydir do|event|
metadata CHANGED
@@ -1,82 +1,70 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: file-monitor
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.1.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.5
6
5
  platform: ruby
7
- authors:
6
+ authors:
8
7
  - JiangMiao
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
-
13
- date: 2011-10-17 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
11
+ date: 2016-03-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
16
14
  name: rb-inotify
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
21
17
  - - ">="
22
- - !ruby/object:Gem::Version
18
+ - !ruby/object:Gem::Version
23
19
  version: 0.8.8
24
20
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: rb-inotify
28
21
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
30
- none: false
31
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
32
24
  - - ">="
33
- - !ruby/object:Gem::Version
25
+ - !ruby/object:Gem::Version
34
26
  version: 0.8.8
35
- type: :development
36
- version_requirements: *id002
37
- description: Ruby File Monitor is a easy way to watch the directories and files, execute commands when them changed.
27
+ description: Ruby File Monitor is a easy way to watch the directories and files, execute
28
+ commands when them changed.
38
29
  email: jiangfriend@gmail.com
39
- executables:
30
+ executables:
40
31
  - f5.rb
32
+ - watch.rb
41
33
  extensions: []
42
-
43
34
  extra_rdoc_files: []
44
-
45
- files:
46
- - lib/file-monitor.rb
35
+ files:
36
+ - README.md
37
+ - bin/f5.rb
38
+ - bin/watch.rb
39
+ - examples/f5.rb
40
+ - examples/simple.rb
47
41
  - examples/use-block.rb
48
- - examples/use-inherit.rb
49
- - examples/use-filter.rb
50
42
  - examples/use-creator.rb
51
- - examples/f5.rb
52
- - bin/f5.rb
53
- - README.md
43
+ - examples/use-filter.rb
44
+ - examples/use-inherit.rb
45
+ - lib/file-monitor.rb
54
46
  homepage: https://github.com/jiangmiao/ruby-file-monitor
55
- licenses: []
56
-
47
+ licenses:
48
+ - MIT
49
+ metadata: {}
57
50
  post_install_message:
58
51
  rdoc_options: []
59
-
60
- require_paths:
52
+ require_paths:
61
53
  - lib
62
- required_ruby_version: !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ requirements:
65
56
  - - ">="
66
- - !ruby/object:Gem::Version
57
+ - !ruby/object:Gem::Version
67
58
  version: 1.8.7
68
- required_rubygems_version: !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
71
61
  - - ">="
72
- - !ruby/object:Gem::Version
73
- version: "0"
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
74
64
  requirements: []
75
-
76
65
  rubyforge_project: file-monitor
77
- rubygems_version: 1.8.11
66
+ rubygems_version: 2.2.5
78
67
  signing_key:
79
- specification_version: 3
68
+ specification_version: 4
80
69
  summary: File Monitor Library
81
70
  test_files: []
82
-