filewatcher 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 24a9b40e9d109eadc83d2299a577b701c376a5c8
4
- data.tar.gz: 159e4cf47ace11192f7ccae447008d2af2343a6a
3
+ metadata.gz: 580b8d90d111cb7706b3c3a4f587bbb44ef3589c
4
+ data.tar.gz: b91ab8f3512252cda8da5a6e137f6919857df4e8
5
5
  SHA512:
6
- metadata.gz: badd71331331d31b5e2bcd5db3654794332fa629fac3cdf46ae82db47d31f790e8e3952411b347816952433c8aa56864d64154ee1eac1c76feb3a302e27e7844
7
- data.tar.gz: fcd7f82251d8dcc1625f9e8e74b5e9c171e3b1d0da493ad5551f3c36f9154fbb98c33f341cdf1656cf2d3c0bac44877bfde2ecc44401768ee1e75c1db32b57a5
6
+ metadata.gz: a76f9a6b2153aae280c48357a32df976123da3c8f5f8a9e726812ab4a4b9cfe2292b2789b337da7b759d36b8962c373b7e372c27ce5fd5e8bfc891af8ceda307
7
+ data.tar.gz: 82e485c94aba35cae31403d8f9d043135bde656cd3a34b37b4d8abe31eed628bb74375b675ed027611b22b071aacb7f97cc73cd4aa513739b8c7d71e295a6364
@@ -0,0 +1,175 @@
1
+ Filewatcher
2
+ ===========
3
+
4
+ [![Build Status](https://secure.travis-ci.org/judofyr/temple.png?branch=master)](http://travis-ci.org/judofyr/temple) [![Dependency Status](https://gemnasium.com/judofyr/temple.png?travis)](https://gemnasium.com/judofyr/temple) [![Code Climate](https://codeclimate.com/github/judofyr/temple.png)](https://codeclimate.com/github/judofyr/temple)
5
+
6
+ Lightweight filewatcher weighing less than 200 LoC. No dependencies or platform specific code.
7
+ Works everywhere. Monitors changes in the filesystem by polling. No config files needed to run.
8
+
9
+ Install
10
+ -------
11
+
12
+ Needs Ruby and Rubygems:
13
+
14
+ $ [sudo] gem install filewatcher
15
+
16
+ Command line utility
17
+ --------------------
18
+
19
+ Filewatcher scans the filesystem and execute shell commands when files are
20
+ changed.
21
+
22
+ Usage:
23
+ filewatcher [-i interval] "<filename>" "<shell command>"
24
+
25
+ Where
26
+ filename: filename(s) to scan.
27
+ shell command: shell command to execute when a file is changed
28
+
29
+ Examples
30
+ --------
31
+
32
+ Run the echo command when the file myfile is changed:
33
+
34
+ $ filewatcher "myfile" "echo 'myfile has changed'"
35
+
36
+ Run any javascript in the current directory when it is updated in Windows
37
+ Powershell:
38
+
39
+ > filewatcher *.js "node %FILENAME%"
40
+
41
+ In Linux/OSX:
42
+
43
+ $ filewatcher *.js 'node $FILENAME'
44
+
45
+ Place filenames or filenames in quotes to use ruby filename globbing instead
46
+ of shell filename globbing. This will make filewatcher look for files in
47
+ subdirectories too.
48
+
49
+ > filewatcher "*.js" "node %FILENAME%"
50
+
51
+ In Linux/OSX:
52
+
53
+ > filewatcher '*.js' 'node $FILENAME'
54
+
55
+ Try to run the updated file as a script when it is updated by using the
56
+ --exec/-e option. Works with files with file extensions that looks like a
57
+ python, ruby, perl, php, javascript or awk script.
58
+
59
+ $ filewatcher -e *.rb
60
+
61
+ Print a list of all files matching *.css first and then output the filename
62
+ when a file is beeing updated by using the --list/-l option:
63
+
64
+ $ filewatcher -l *.css 'echo file: $FILENAME'
65
+
66
+ Watch the "src" and "test" folders recursively, and run test when the
67
+ filesystem gets updated:
68
+
69
+ $ filewatcher "src test" "ruby test/test_suite.rb"
70
+
71
+ Available enviroment variables
72
+ ------------------------------
73
+
74
+ The environment variable $FILENAME is available in the shell command argument.
75
+ On unix like systems the command has to be enclosed in single quotes. To run
76
+ node whenever a javascript file is updated:
77
+
78
+ $ filewatcher *.js 'node $FILENAME'
79
+
80
+ The environment variables $FILEPATH, $FILEDIR and $FSEVENT is also available.
81
+
82
+ Command line options
83
+ --------------------
84
+
85
+ --interval, -i <f>: Interval in seconds to scan filesystem. Defaults to 0.5 seconds.
86
+ --exec, -e: Execute file as a script when file is updated.
87
+ --recurse, -r <s>: Recurse into the directory, watching everything matching 'expression'
88
+ --include, -n <s>: Include files (default: *)
89
+ --exclude, -x <s>: Exclude file(s) matching (default: "")
90
+ --list, -l: Print name of files being watched
91
+ --version, -v: Print version and exit
92
+ --help, -h: Show this message
93
+
94
+ Ruby API
95
+ --------
96
+
97
+ Watch a list of files and directories:
98
+
99
+ require 'filewatcher'
100
+
101
+ FileWatcher.new(["lib/", "Rakefile"]).watch do |filename|
102
+ puts "Updated " + filename
103
+ end
104
+
105
+ To detect if a file is updated, added or deleted:
106
+
107
+ FileWatcher.new(["README.rdoc"]).watch() do |filename, event|
108
+ if(event == :changed)
109
+ puts "File updated: " + filename
110
+ end
111
+ if(event == :delete)
112
+ puts "File deleted: " + filename
113
+ end
114
+ if(event == :new)
115
+ puts "Added file: " + filename
116
+ end
117
+ end
118
+
119
+ To check for changes more often than the default once every second:
120
+
121
+ FileWatcher.new(["README.rdoc"]).watch(0.5) do |filename|
122
+ puts "Updated " + filename
123
+ end
124
+
125
+ Print the names of the files found before watching files and folders:
126
+
127
+ FileWatcher.new(["lib/"],true).watch do |filename|
128
+ puts "Updated " + filename
129
+ end
130
+ => Watching files:
131
+ lib/filewatcher.rb
132
+
133
+ Use patterns to match filenames in current directory and subdirectories. The
134
+ pattern is not a regular expression; instead it follows rules similar to shell
135
+ filename globbing. See Ruby
136
+ [documentation](http://www.ruby-doc.org/core-2.1.1/File.html#method-c-fnmatch)
137
+ for syntax.
138
+
139
+ FileWatcher.new(["*.rb", "*.xml"]).watch do |filename|
140
+ puts "Updated " + filename
141
+ end
142
+
143
+ The filewatcher library is just a single file with 96 LOC (including comments)
144
+ with no dependencies.
145
+
146
+ TODO
147
+ ----
148
+
149
+ Use thor in the command line utility.
150
+ The Ruby API is fairly well tested but the command line program has been
151
+ buggy.
152
+
153
+ Credits
154
+ -------
155
+
156
+ Code inspired by Tom Lieber's blogg posting: http://alltom.com/pages/detecting-file-changes-with-ruby
157
+
158
+ Find method by c00lrguy: http://snippets.dzone.com/posts/show/5457
159
+
160
+ Globbing by Kristoffer Roupé https://github.com/kitofr
161
+
162
+ Note on Patches/Pull Requests
163
+ -----------------------------
164
+
165
+ * Fork the project.
166
+ * Make your feature addition or bug fix.
167
+ * Add tests for it. This is important so I don't break it in a future version unintentionally.
168
+ * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
169
+ * Send me a pull request. Bonus points for topic branches.
170
+
171
+
172
+ Copyright
173
+ ---------
174
+
175
+ Copyright (c) 2011 - 2014 Thomas Flemming. See LICENSE for details.
data/Rakefile CHANGED
@@ -1,46 +1,29 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
+ require 'rake/testtask'
3
4
 
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "filewatcher"
8
- gem.summary = %Q{Simple filewatcher.}
9
- gem.description = %Q{Detect changes in filesystem.}
10
- gem.email = "thomas.flemming@gmail.com"
11
- gem.homepage = "http://github.com/thomasfl/filewatcher"
12
- gem.executables = ["filewatcher"]
13
- gem.authors = ["Thomas Flemming"]
14
- gem.add_dependency 'trollop', '~> 2.0'
15
- gem.licenses = ["MIT"]
16
- end
17
- rescue LoadError
18
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
19
- end
20
-
21
- begin
22
- require 'rcov/rcovtask'
23
- Rcov::RcovTask.new do |test|
24
- test.libs << 'test'
25
- test.pattern = 'test/**/test_*.rb'
26
- test.verbose = true
27
- end
28
- rescue LoadError
29
- task :rcov do
30
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
31
- end
5
+ task :default => :test
6
+ task :test do
7
+ sh "bacon -Ilib -Itest --automatic --quiet"
32
8
  end
33
9
 
34
- task :test => :check_dependencies
10
+ # begin
11
+ # require 'jeweler'
12
+ # Jeweler::Tasks.new do |gem|
13
+ # gem.name = "filewatcher"
14
+ # gem.summary = %Q{Simple filewatcher.}
15
+ # gem.description = %Q{Detect changes in filesystem.}
16
+ # gem.email = "thomas.flemming@gmail.com"
17
+ # gem.homepage = "http://github.com/thomasfl/filewatcher"
18
+ # gem.executables = ["filewatcher"]
19
+ # gem.authors = ["Thomas Flemming"]
20
+ # gem.add_dependency 'trollop', '~> 2.0'
21
+ # gem.licenses = ["MIT"]
22
+ # end
23
+ # rescue LoadError
24
+ # puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
25
+ # end
35
26
 
36
- task :default => :test
37
-
38
- require 'rdoc/task'
39
- Rake::RDocTask.new do |rdoc|
40
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
27
+ # task :test => :check_dependencies
41
28
 
42
- rdoc.rdoc_dir = 'rdoc'
43
- rdoc.title = "filewatcher #{version}"
44
- rdoc.rdoc_files.include('README*')
45
- rdoc.rdoc_files.include('lib/**/*.rb')
46
- end
29
+ # task :default => :test
@@ -4,7 +4,7 @@
4
4
  class FileWatcher
5
5
 
6
6
  def self.VERSION
7
- return "0.3.4"
7
+ return '0.3.5'
8
8
  end
9
9
 
10
10
  def initialize(unexpanded_filenames, print_filelist=false)
@@ -12,9 +12,9 @@ class FileWatcher
12
12
  @last_mtimes = { }
13
13
  @filenames = expand_directories(@unexpanded_filenames)
14
14
 
15
- puts "Watching:" if print_filelist
15
+ puts 'Watching:' if print_filelist
16
16
  @filenames.each do |filename|
17
- raise "File does not exist" unless File.exist?(filename)
17
+ raise 'File does not exist' unless File.exist?(filename)
18
18
  @last_mtimes[filename] = File.stat(filename).mtime
19
19
  puts filename if print_filelist
20
20
  end
@@ -62,6 +62,7 @@ class FileWatcher
62
62
  end
63
63
  mtime = File.stat(filename).mtime
64
64
  updated = @last_mtimes[filename] < mtime
65
+
65
66
  @last_mtimes[filename] = mtime
66
67
  if(updated)
67
68
  @updated_file = filename
@@ -82,15 +83,15 @@ class FileWatcher
82
83
  if(File.directory?(filename))
83
84
  filenames = filenames + find(filename)
84
85
  else
85
- filenames = filenames + find(".", filename, true)
86
+ filenames = filenames + find('.', filename, true)
86
87
  end
87
88
  end
88
89
 
89
90
  return filenames.uniq
90
91
  end
91
92
 
92
- def find(dir, filename="*.*", subdirs=true)
93
- Dir[ subdirs ? File.join(dir.split(/\\/), "**", filename) : File.join(dir.split(/\\/), filename) ]
93
+ def find(dir, filename='*.*', subdirs=true)
94
+ Dir[ subdirs ? File.join(dir.split(/\\/), '**', filename) : File.join(dir.split(/\\/), filename) ]
94
95
  end
95
96
 
96
97
  end
@@ -1 +1 @@
1
-
1
+ content2
@@ -1 +1 @@
1
-
1
+ content
@@ -0,0 +1,47 @@
1
+ require 'rubygems'
2
+ require 'bacon'
3
+ require 'fileutils'
4
+ require File.expand_path("../lib/filewatcher.rb",File.dirname(__FILE__))
5
+
6
+ describe FileWatcher do
7
+
8
+ it "should detect file deletions" do
9
+ filename = "test/fixtures/file1.txt"
10
+ open(filename,"w") { |f| f.puts "content1" }
11
+ filewatcher = FileWatcher.new(["test/fixtures"])
12
+ filewatcher.filesystem_updated?.should.be.false
13
+ FileUtils.rm(filename)
14
+ filewatcher.filesystem_updated?.should.be.true
15
+ end
16
+
17
+ it "should detect file additions" do
18
+ filename = "test/fixtures/file1.txt"
19
+ FileUtils.rm(filename) if File.exists?(filename)
20
+ filewatcher = FileWatcher.new(["test/fixtures"])
21
+ filewatcher.filesystem_updated?.should.be.false
22
+ open(filename,"w") { |f| f.puts "content1" }
23
+ filewatcher.filesystem_updated?.should.be.true
24
+ end
25
+
26
+ it "should detect file updates" do
27
+ filename = "test/fixtures/file1.txt"
28
+ open(filename,"w") { |f| f.puts "content1" }
29
+ filewatcher = FileWatcher.new(["test/fixtures"])
30
+ filewatcher.filesystem_updated?.should.be.false
31
+ sleep 1
32
+ open(filename,"w") { |f| f.puts "content2" }
33
+ filewatcher.filesystem_updated?.should.be.true
34
+ end
35
+
36
+ it "should detect new files in subfolders" do
37
+ subfolder = 'test/fixtures/new_sub_folder'
38
+ filewatcher = FileWatcher.new(["test/fixtures"])
39
+ filewatcher.filesystem_updated?.should.be.false
40
+ FileUtils::mkdir_p subfolder
41
+ filewatcher.filesystem_updated?.should.be.false
42
+ open(subfolder + "/file.txt","w") { |f| f.puts "xyz" }
43
+ filewatcher.filesystem_updated?.should.be.true
44
+ FileUtils.rm_rf subfolder
45
+ end
46
+
47
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filewatcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Flemming
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-05 00:00:00.000000000 Z
11
+ date: 2014-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: trollop
@@ -24,28 +24,54 @@ dependencies:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '10.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '10.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bacon
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.2'
27
55
  description: Detect changes in filesystem.
28
- email: thomas.flemming@gmail.com
56
+ email:
57
+ - thomas.flemming@gmail.com
29
58
  executables:
30
59
  - filewatcher
31
60
  extensions: []
32
- extra_rdoc_files:
33
- - LICENSE
34
- - README.rdoc
61
+ extra_rdoc_files: []
35
62
  files:
36
63
  - LICENSE
37
- - README.rdoc
64
+ - README.md
38
65
  - Rakefile
39
- - VERSION
40
66
  - bin/filewatcher
41
67
  - lib/filewatcher.rb
42
- - test/filewatcher_spec.rb
43
68
  - test/fixtures/file1.txt
44
69
  - test/fixtures/file2.txt
45
70
  - test/fixtures/file3.rb
46
71
  - test/fixtures/file4.rb
47
72
  - test/fixtures/subdir/file5.rb
48
73
  - test/fixtures/subdir/file6.rb
74
+ - test/test_filewatcher.rb
49
75
  homepage: http://github.com/thomasfl/filewatcher
50
76
  licenses:
51
77
  - MIT
@@ -69,5 +95,12 @@ rubyforge_project:
69
95
  rubygems_version: 2.2.2
70
96
  signing_key:
71
97
  specification_version: 4
72
- summary: Simple filewatcher.
73
- test_files: []
98
+ summary: Lighweight filewatcher.
99
+ test_files:
100
+ - test/fixtures/file1.txt
101
+ - test/fixtures/file2.txt
102
+ - test/fixtures/file3.rb
103
+ - test/fixtures/file4.rb
104
+ - test/fixtures/subdir/file5.rb
105
+ - test/fixtures/subdir/file6.rb
106
+ - test/test_filewatcher.rb
@@ -1,147 +0,0 @@
1
- = Filewatcher
2
-
3
- Simple file watcher. Monitors changes in filesystem by polling. API has no dependencies.
4
-
5
- = Install
6
-
7
- Needs Ruby and Rubygems:
8
-
9
- $ [sudo] gem install filewatcher
10
-
11
- = Command line utility
12
-
13
- Filewatcher scans filesystem and execute shell commands when files changes.
14
-
15
- Usage:
16
- filewatcher [-i interval] "<filename>" "<shell command>"
17
- Where
18
- filename: filename(s) to scan.
19
- shell command: shell command to execute when file changes on disk.
20
-
21
- = Examples
22
-
23
- Run the echo command when the file myfile is changed:
24
-
25
- $ filewatcher "myfile" "echo 'myfile has changed'"
26
-
27
- Run any javascript in the current directory when it is updated in Windows Powershell:
28
-
29
- > filewatcher *.js "node %FILENAME%"
30
-
31
- In Linux/OSX:
32
-
33
- $ filewatcher *.js 'node $FILENAME'
34
-
35
- Place filenames or filenames in quotes to use ruby filename globbing instead of shell filename globbing. This will make filewatcher look for files in subdirectories too.
36
-
37
- > filewatcher "*.js" "node %FILENAME%"
38
-
39
- In Linux/OSX:
40
-
41
- > filewatcher '*.js' 'node $FILENAME'
42
-
43
- Try to run the updated file as a script when it is updated by using the --exec/-e option. Works with files with file extensions that looks like a python, ruby, perl, php,
44
- javascript or awk script.
45
-
46
- $ filewatcher -e *.rb
47
-
48
- Print a list of all files matching *.css first and then output the filename when a file is beeing updated by using the --list/-l option:
49
-
50
- $ filewatcher -l *.css 'echo file: $FILENAME'
51
-
52
- Watch the "src" and "test" folders recursively, and run test when the filesystem gets updated:
53
-
54
- $ filewatcher "src test" "ruby test/test_suite.rb"
55
-
56
- = Available enviroment variables
57
-
58
- The environment variable $FILENAME is available in the command. On unix like systems the command
59
- has to be enclosed in single quotes. To run node whenever a javascript file is updated:
60
-
61
- $ filewatcher *.js 'node $FILENAME'
62
-
63
- The environment variables $FILEPATH, $FILEDIR and $FSEVENT is also available.
64
-
65
- = Command line options
66
-
67
- --interval, -i <f>: Interval in seconds to scan filesystem. Defaults to 0.5 seconds.
68
- --exec, -e: Execute file as a script when file is updated.
69
- --recurse, -r <s>: Recurse into the directory, watching everything matching 'expression'
70
- --include, -n <s>: Include files (default: *)
71
- --exclude, -x <s>: Exclude file(s) matching (default: "")
72
- --list, -l: Print name of files being watched
73
- --version, -v: Print version and exit
74
- --help, -h: Show this message
75
-
76
- = Ruby API
77
-
78
- Examples:
79
-
80
- Watch a list of files and directories:
81
-
82
- require 'filewatcher'
83
-
84
- FileWatcher.new(["lib/", "Rakefile"]).watch do |filename|
85
- puts "Updated " + filename
86
- end
87
-
88
- To detect if a file is updated, added or deleted:
89
-
90
- FileWatcher.new(["README.rdoc"]).watch() do |filename, event|
91
- if(event == :changed)
92
- puts "File updated: " + filename
93
- end
94
- if(event == :delete)
95
- puts "File deleted: " + filename
96
- end
97
- if(event == :new)
98
- puts "Added file: " + filename
99
- end
100
- end
101
-
102
- To check for changes more often than the default once every second:
103
-
104
- FileWatcher.new(["README.rdoc"]).watch(0.5) do |filename|
105
- puts "Updated " + filename
106
- end
107
-
108
- Print the names of the files found before watching files and folders:
109
-
110
- FileWatcher.new(["lib/"],true).watch do |filename|
111
- puts "Updated " + filename
112
- end
113
- => Watching files:
114
- lib/filewatcher.rb
115
-
116
- Use patterns to match filenames in current directory and subdirectories. The pattern is not a regular expression; instead it follows rules similar to shell filename globbing. Se Ruby documentation[http://www.ruby-doc.org/core-2.1.1/File.html#method-c-fnmatch] for syntax.
117
-
118
- FileWatcher.new(["*.rb", "*.xml"]).watch do |filename|
119
- puts "Updated " + filename
120
- end
121
-
122
- = TODO
123
-
124
- The Ruby API is fairly well tested but the command line program is buggy at the time beeing.
125
-
126
- = Credits
127
-
128
- Code inspired by Tom Lieber's blogg posting: http://alltom.com/pages/detecting-file-changes-with-ruby
129
-
130
- Find method by c00lrguy: http://snippets.dzone.com/posts/show/5457
131
-
132
- Globbing by Kristoffer Roupé https://github.com/kitofr
133
-
134
- == Note on Patches/Pull Requests
135
-
136
- * Fork the project.
137
- * Make your feature addition or bug fix.
138
- * Add tests for it. This is important so I don't break it in a
139
- future version unintentionally.
140
- * Commit, do not mess with rakefile, version, or history.
141
- (if you want to have your own version, that is fine but
142
- bump version in a commit by itself I can ignore when I pull)
143
- * Send me a pull request. Bonus points for topic branches.
144
-
145
- == Copyright
146
-
147
- Copyright (c) 2011 - 2014 Thomas Flemming. See LICENSE for details.
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.3.4
@@ -1,28 +0,0 @@
1
- require 'rubygems'
2
- require 'minitest/autorun'
3
- require_relative '../lib/filewatcher'
4
-
5
- describe FileWatcher do
6
-
7
- filewatcher = FileWatcher.new([])
8
-
9
- it "can find single files" do
10
- files = filewatcher.expand_directories(["fixtures/file1.txt"])
11
- assert files.size == 1
12
- end
13
-
14
- it "can expand directories recursively" do
15
- files = filewatcher.expand_directories(["fixtures/"])
16
- assert files.size == 6
17
- files = filewatcher.expand_directories(["fixtures"])
18
- assert files.size == 6
19
- files = filewatcher.expand_directories(["./fixtures"])
20
- assert files.size == 6
21
- end
22
-
23
- it "can use filename globbing to filter names" do
24
- files = filewatcher.expand_directories(["fixtures/*.rb"])
25
- assert files.size == 2
26
- end
27
-
28
- end