maid 0.2.0.alpha.1 → 0.2.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,15 +1,24 @@
1
+ maid (0.2.0.beta.1) unstable; urgency=low
2
+
3
+ * (Development in progress)
4
+ * Change "dir" to allow multiple paths (Closes: #64)
5
+ * Change "mkdir" to return the path of the created directory (Closes: #69)
6
+ * Various development improvements
7
+
8
+ -- Benjamin Oakes <hello@benjaminoakes.com> Sun, 2 Dec 2012 00:00:00 +0000
9
+
1
10
  maid (0.2.0.alpha.1) unstable; urgency=low
2
11
 
3
12
  * Started semver.org-like version numbering. Total adoption is
4
13
  forthcoming. This forced v0.2.0 vs. v0.1.4.
5
14
  * Changed "dir" tool to always sort. (Closes: #62)
6
- * Added "version --long" command which gives information about the platform
15
+ * Added "version --long" ("-l") command which gives information about the platform
7
16
  version and Ruby version. (Closes: #65)
8
17
  * Improved user documentation, now in Markdown. (Closes: #66)
9
18
  * Updated development dependencies.
10
19
  * Various minor internal changes.
11
20
 
12
- -- Benjamin Oakes <hello@benjaminoakes.com> Mon, 26 Nov 2012 14:51:13 +0000
21
+ -- Benjamin Oakes <hello@benjaminoakes.com> Tue, 27 Nov 2012 00:00:00 +0000
13
22
 
14
23
  maid (0.1.4.alpha.2) unstable; urgency=low
15
24
 
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Be lazy! Let Maid clean up after you, based on rules you define.
4
4
 
5
- [Installation](https://github.com/benjaminoakes/maid#installation) | [Tutorial](https://github.com/benjaminoakes/maid#tutorial) | [Documentation](http://rubydoc.info/gems/maid/Maid/Tools) | [Change Log](https://github.com/benjaminoakes/maid/blob/master/ChangeLog)
5
+ [Installation](https://github.com/benjaminoakes/maid#installation) | [Tutorial](https://github.com/benjaminoakes/maid#tutorial) | [Example](https://github.com/benjaminoakes/maid-example) | [Documentation](http://rubydoc.info/gems/maid/Maid/Tools) | [Change Log](https://github.com/benjaminoakes/maid/blob/master/ChangeLog)
6
6
 
7
7
  Maid keeps files from sitting around too long, untouched. Many of the downloads and other files you collect can easily be categorized and handled appropriately by rules you define. Let the maid in your computer take care of the easy stuff, so you can spend more of your time on what matters.
8
8
 
data/Vagrantfile CHANGED
@@ -2,39 +2,8 @@
2
2
  # vi: set ft=ruby :
3
3
 
4
4
  Vagrant::Config.run do |config|
5
- # ## Base Boxes
6
- #
7
- # To add a [box](http://vagrantup.com/v1/docs/boxes.html):
8
- #
9
- # vagrant box add $box_name $box_url
10
- #
11
- # Base boxes for supported releases are listed below. The idea is to come close to the [official Canonical support timeline](http://en.wikipedia.org/wiki/Ubuntu_releases#Table_of_versions), when possible.
12
- #
13
- # ### Releases preferred with Ruby 1.8.7
14
- #
15
- # These older releases of Ubuntu don't provide a prebuilt package for Ruby 1.9.3.
16
- #
17
- # Supported until 2015-04:
18
- #
19
- # * `lucid32`: http://files.vagrantup.com/lucid32.box
20
- # * `lucid64`: http://files.vagrantup.com/lucid64.box
21
- #
22
- # ### Releases preferred with Ruby 1.9.3
23
- #
24
- # Supported until 2017-04:
25
- #
26
- # * `precise32`: http://files.vagrantup.com/precise32.box
27
- # * `precise64`: http://files.vagrantup.com/precise64.box
28
- #
29
- # Supported until 2014-04:
30
- #
31
- # * `quantal64`: https://github.com/downloads/roderik/VagrantQuantal64Box/quantal64.box
32
- #
33
- # ## See Also
34
- #
35
- # * [Vagrant Boxes List](http://www.vagrantbox.es/)
36
- # * [Contributing Guide](https://github.com/benjaminoakes/maid/wiki/Contributing)
37
- config.vm.box = 'precise64'
5
+ # See also: `script/vagrant-test`, `script/vagrant-test-all`
6
+ config.vm.box = ENV['MAID_TARGET_BOX'] || 'precise64'
38
7
 
39
- config.vm.provision(:shell, :path => 'script/vagrant-provision')
8
+ config.vm.provision(:shell, :path => 'script/vagrant-provision', :args => ENV['MAID_TARGET_RUBY'] || '1.9.3')
40
9
  end
data/lib/maid/tools.rb CHANGED
@@ -28,9 +28,9 @@ module Maid::Tools
28
28
  # move(['~/Downloads/foo.zip', '~/Downloads/bar.zip'], '~/Archive/Software/Mac OS X/')
29
29
  # move(dir('~/Downloads/*.zip'), '~/Archive/Software/Mac OS X/')
30
30
  def move(sources, destination)
31
- Array(sources).each do |source|
32
- source = File.expand_path(source)
33
- destination = File.expand_path(destination)
31
+ destination = expand(destination)
32
+
33
+ expand_all(sources).each do |source|
34
34
  target = File.join(destination, File.basename(source))
35
35
 
36
36
  unless File.exist?(target)
@@ -77,9 +77,7 @@ module Maid::Tools
77
77
  #
78
78
  # Ubuntu makes it easy to implement, and there's a Python library for doing so (see `trash-cli`). However, there's not a Ruby equivalent yet.
79
79
 
80
- Array(paths).each do |path|
81
- path = File.expand_path(path)
82
-
80
+ expand_all(paths).each do |path|
83
81
  target = File.join(@trash_path, File.basename(path))
84
82
  safe_trash_path = File.join(@trash_path, "#{ File.basename(path) } #{ Time.now.strftime('%Y-%m-%d-%H-%M-%S') }")
85
83
 
@@ -122,8 +120,7 @@ module Maid::Tools
122
120
  # remove(['~/Downloads/foo.zip', '~/Downloads/bar.zip'])
123
121
  # remove(dir('~/Downloads/*.zip'))
124
122
  def remove(paths, options = {})
125
- Array(paths).each do |path|
126
- path = File.expand_path(path)
123
+ expand_all(paths).each do |path|
127
124
  options = @file_options.merge(options)
128
125
 
129
126
  @logger.info("Removing #{ path.inspect }")
@@ -133,16 +130,35 @@ module Maid::Tools
133
130
 
134
131
  # Give all files matching the given glob.
135
132
  #
133
+ # Note that the globs are *not* regexps (they're closer to shell globs). However, some regexp-like notation can be used, e.g. `?`, `[a-z]`, `{tgz,zip}`. For more details, see Ruby's documentation on `Dir.glob`.
134
+ #
136
135
  # The matches are sorted lexically to aid in readability when using `--dry-run`.
137
136
  #
138
137
  # ## Examples
139
138
  #
139
+ # Single glob:
140
+ #
140
141
  # dir('~/Downloads/*.zip')
141
- def dir(glob)
142
- Dir[File.expand_path(glob)].sort
142
+ #
143
+ # Specifying multiple extensions succinctly:
144
+ #
145
+ # dir('~/Downloads/*.{exe,deb,dmg,pkg,rpm}')
146
+ #
147
+ # Multiple glob (both are equivalent):
148
+ #
149
+ # dir(['~/Downloads/*.zip', '~/Dropbox/*.zip'])
150
+ # dir(%w(~/Downloads/*.zip ~/Dropbox/*.zip))
151
+ #
152
+ def dir(globs)
153
+ expand_all(globs).
154
+ map { |glob| Dir.glob(glob) }.
155
+ flatten.
156
+ sort
143
157
  end
144
158
 
145
- # Creates a directory and all of its parent directories.
159
+ # Create a directory and all of its parent directories.
160
+ #
161
+ # The path of the created directory is returned, which allows for chaining (see examples).
146
162
  #
147
163
  # ## Options
148
164
  #
@@ -152,9 +168,17 @@ module Maid::Tools
152
168
  #
153
169
  # ## Examples
154
170
  #
155
- # mkdir('~/Downloads/Music/Pink.Floyd/', :mode => 0644)
171
+ # Creating a directory with a specific mode:
172
+ #
173
+ # mkdir('~/Music/Pink Floyd/', :mode => 0644)
174
+ #
175
+ # Ensuring a directory exists when moving:
176
+ #
177
+ # move('~/Downloads/Pink Floyd*.mp3', mkdir('~/Music/Pink Floyd/'))
156
178
  def mkdir(path, options = {})
157
- FileUtils.mkdir_p(File.expand_path(path), options)
179
+ path = expand(path)
180
+ FileUtils.mkdir_p(path, options)
181
+ path
158
182
  end
159
183
 
160
184
  # Find matching files, akin to the Unix utility `find`.
@@ -174,7 +198,7 @@ module Maid::Tools
174
198
  # end
175
199
  #
176
200
  def find(path, &block)
177
- expanded_path = File.expand_path(path)
201
+ expanded_path = expand(path)
178
202
 
179
203
  if block.nil?
180
204
  files = []
@@ -253,7 +277,7 @@ module Maid::Tools
253
277
  #
254
278
  # created_at('foo.zip') # => Sat Apr 09 10:50:01 -0400 2011
255
279
  def created_at(path)
256
- File.ctime(File.expand_path(path))
280
+ File.ctime(expand(path))
257
281
  end
258
282
 
259
283
  # Get the time that a file was last accessed.
@@ -264,7 +288,7 @@ module Maid::Tools
264
288
  #
265
289
  # accessed_at('foo.zip') # => Sat Apr 09 10:50:01 -0400 2011
266
290
  def accessed_at(path)
267
- File.atime(File.expand_path(path))
291
+ File.atime(expand(path))
268
292
  end
269
293
 
270
294
  # @deprecated
@@ -284,12 +308,12 @@ module Maid::Tools
284
308
  #
285
309
  # modified_at('foo.zip') # => Sat Apr 09 10:50:01 -0400 2011
286
310
  def modified_at(path)
287
- File.mtime(File.expand_path(path))
311
+ File.mtime(expand(path))
288
312
  end
289
313
 
290
314
  # @deprecated
291
315
  #
292
- # Pulls and pushes the `git` repository at the given path.
316
+ # Pull and push the `git` repository at the given path.
293
317
  #
294
318
  # Since this is deprecated, you might also be interested in [SparkleShare](http://sparkleshare.org/), a great `git`-based file syncronization project.
295
319
  #
@@ -297,14 +321,14 @@ module Maid::Tools
297
321
  #
298
322
  # git_piston('~/code/projectname')
299
323
  def git_piston(path)
300
- full_path = File.expand_path(path)
324
+ full_path = expand(path)
301
325
  stdout = cmd("cd #{full_path.inspect} && git pull && git push 2>&1")
302
326
  @logger.info "Fired git piston on #{full_path.inspect}. STDOUT:\n\n#{stdout}"
303
327
  end
304
328
 
305
329
  deprecated :git_piston, 'SparkleShare (http://sparkleshare.org/)'
306
330
 
307
- # Simple sync of two files/folders using `rsync`.
331
+ # Simple sync two files/folders using `rsync`.
308
332
  #
309
333
  # The host OS must provide `rsync`. See the `rsync` man page for a detailed description.
310
334
  #
@@ -333,10 +357,10 @@ module Maid::Tools
333
357
  #
334
358
  # sync('~/code', '/backup/code', :exclude => ['.git', '.rvmrc'])
335
359
  def sync(from, to, options = {})
336
- # expand path removes trailing slash
360
+ # expand removes trailing slash
337
361
  # cannot use str[-1] due to ruby 1.8.7 restriction
338
- from = File.expand_path(from) + (from.end_with?('/') ? '/' : '')
339
- to = File.expand_path(to) + (to.end_with?('/') ? '/' : '')
362
+ from = expand(from) + (from.end_with?('/') ? '/' : '')
363
+ to = expand(to) + (to.end_with?('/') ? '/' : '')
340
364
  # default options
341
365
  options = { :archive => true, :update => true }.merge(options)
342
366
  ops = []
@@ -354,4 +378,14 @@ module Maid::Tools
354
378
  stdout = cmd("rsync #{ ops.join(' ') } #{ from.inspect } #{ to.inspect } 2>&1")
355
379
  @logger.info("Fired sync from #{ from.inspect } to #{ to.inspect }. STDOUT:\n\n#{ stdout }")
356
380
  end
381
+
382
+ private
383
+
384
+ def expand(path)
385
+ File.expand_path(path)
386
+ end
387
+
388
+ def expand_all(paths)
389
+ Array(paths).map { |path| expand(path) }
390
+ end
357
391
  end
data/lib/maid/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Maid
2
- VERSION = '0.2.0.alpha.1'
2
+ VERSION = '0.2.0.beta.1'
3
3
  end
data/maid.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.email = %w(hello@benjaminoakes.com)
12
12
  s.license = 'GPLv2'
13
13
  s.homepage = 'http://github.com/benjaminoakes/maid'
14
- s.summary = %q{Be lazy. Let Maid clean up after you, based on rules you define.}
14
+ s.summary = 'Be lazy. Let Maid clean up after you, based on rules you define.'
15
15
  s.description = s.summary
16
16
 
17
17
  s.rubyforge_project = 'maid'
@@ -25,18 +25,21 @@ Gem::Specification.new do |s|
25
25
  s.add_dependency('ohai', '~> 6.14.0')
26
26
  s.add_development_dependency('fakefs', '~> 0.4.1')
27
27
  s.add_development_dependency('guard', '~> 1.5.4')
28
- s.add_development_dependency('guard-rspec', '~> 2.2.0')
28
+ s.add_development_dependency('guard-rspec', '~> 2.3.0')
29
+ s.add_development_dependency('rb-readline', '~> 0.4.2') # To get guard file change detection working properly
29
30
  s.add_development_dependency('rake', '~> 10.0.2')
30
31
  s.add_development_dependency('redcarpet', '~> 2.2.2') # Soft dependency of `yard`
31
32
  s.add_development_dependency('rspec', '~> 2.12.0')
32
33
  s.add_development_dependency('timecop', '~> 0.5.3')
33
34
  s.add_development_dependency('yard', '~> 0.8.3')
34
35
 
35
- if Maid::Platform.linux?
36
- s.add_development_dependency('rb-inotify', '~> 0.8.8')
37
- elsif Maid::Platform.osx?
38
- s.add_development_dependency('rb-fsevent', '~> 0.9.2')
39
- end
36
+ # In Vagrant, polling won't cross over the OS boundary if you develop in the host OS but run your tests in the
37
+ # guest. One way around this is to force polling instead:
38
+ #
39
+ # bundle exec guard --force-polling
40
+ #
41
+ s.add_development_dependency('rb-inotify', '~> 0.8.8')
42
+ s.add_development_dependency('rb-fsevent', '~> 0.9.2')
40
43
 
41
44
  s.files = `git ls-files`.split("\n")
42
45
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
data/script/smoke-test ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bash
2
+ # Check major functionality.
3
+ set -o errexit
4
+
5
+ maid version --long
6
+ maid help
7
+ maid sample
@@ -5,7 +5,7 @@
5
5
  set -o errexit
6
6
 
7
7
  # Set to '1.8.7' or '1.9.3'
8
- target_ruby_version='1.9.3'
8
+ target_ruby_version="${1:-1.9.3}"
9
9
 
10
10
  # Install the given package, no questions asked.
11
11
  function install-pkg {
data/script/vagrant-test CHANGED
@@ -4,4 +4,4 @@ set -o errexit
4
4
 
5
5
  vagrant destroy --force
6
6
  vagrant up
7
- vagrant ssh --command 'cd /vagrant && rake'
7
+ vagrant ssh --command 'cd /vagrant && rake && sudo rake install && script/smoke-test'
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env bash
2
+ # Test all officially supported Ubuntu versions.
3
+ #
4
+ # See also: `Vagrantfile`
5
+
6
+ # ## Base Boxes
7
+ #
8
+ # To add a [box](http://vagrantup.com/v1/docs/boxes.html):
9
+ #
10
+ # vagrant box add $box_name $box_url
11
+ #
12
+ # Base boxes for supported releases are listed below. The idea is to come close to the [official Canonical support timeline](http://en.wikipedia.org/wiki/Ubuntu_releases#Table_of_versions), when possible.
13
+ #
14
+ # ### Releases preferred with Ruby 1.8.7
15
+ #
16
+ # These older releases of Ubuntu don't provide a prebuilt package for Ruby 1.9.3.
17
+ #
18
+ # Supported until 2013-04:
19
+ #
20
+ # * `hardy32`: https://raw.github.com/ndj/vagrant-hardy-box-php-5.2/master/hardy-32-php-52-basebox.box
21
+ #
22
+ # Supported until 2015-04:
23
+ #
24
+ # * `lucid32`: http://files.vagrantup.com/lucid32.box
25
+ # * `lucid64`: http://files.vagrantup.com/lucid64.box
26
+ #
27
+ # Supported until 2013-04:
28
+ #
29
+ # * `oneiric64`: https://github.com/shaftoe/vagrant-ubuntu-oneiric64/raw/master/oneiric64.box
30
+ #
31
+ # ### Releases preferred with Ruby 1.9.3
32
+ #
33
+ # Supported until 2017-04:
34
+ #
35
+ # * `precise32`: http://files.vagrantup.com/precise32.box
36
+ # * `precise64`: http://files.vagrantup.com/precise64.box
37
+ #
38
+ # Supported until 2014-04:
39
+ #
40
+ # * `quantal64`: https://github.com/downloads/roderik/VagrantQuantal64Box/quantal64.box
41
+ #
42
+ # ## See Also
43
+ #
44
+ # * [Vagrant Boxes List](http://www.vagrantbox.es/)
45
+ # * [Contributing Guide](https://github.com/benjaminoakes/maid/wiki/Contributing)
46
+
47
+ MAID_TARGET_BOX='hardy32' MAID_TARGET_RUBY='1.8.7' script/vagrant-test
48
+ # TODO: Locate and add box for `hardy64`
49
+ MAID_TARGET_BOX='lucid32' MAID_TARGET_RUBY='1.8.7' script/vagrant-test
50
+ MAID_TARGET_BOX='lucid64' MAID_TARGET_RUBY='1.8.7' script/vagrant-test
51
+ # TODO: Locate and add box for `oneiric32`
52
+ MAID_TARGET_BOX='oneiric64' MAID_TARGET_RUBY='1.8.7' script/vagrant-test
53
+ MAID_TARGET_BOX='precise32' MAID_TARGET_RUBY='1.9.3' script/vagrant-test
54
+ MAID_TARGET_BOX='precise64' MAID_TARGET_RUBY='1.9.3' script/vagrant-test
55
+ # TODO: Locate and add box for `quantal32`
56
+ MAID_TARGET_BOX='quantal64' MAID_TARGET_RUBY='1.9.3' script/vagrant-test
@@ -153,8 +153,8 @@ module Maid
153
153
 
154
154
  describe '#dir' do
155
155
  before do
156
- @file = (dir = "#@home/Downloads/") + 'foo.zip'
157
- FileUtils.mkdir_p(dir)
156
+ @file = (@dir = "#@home/Downloads") + '/foo.zip'
157
+ FileUtils.mkdir_p(@dir)
158
158
  end
159
159
 
160
160
  it 'lists files in a directory' do
@@ -164,9 +164,25 @@ module Maid
164
164
 
165
165
  it 'lists multiple files in alphabetical order' do
166
166
  # It doesn't occur with `FakeFS` as far as I can tell, but Ubuntu (and possibly OS X) can give the results out of lexical order. That makes using the `dry-run` output difficult to use.
167
- Dir.stub(:[]) { %w(/home/foo/b.zip /home/foo/a.zip /home/foo/c.zip) }
167
+ Dir.stub(:glob) { %w(/home/foo/b.zip /home/foo/a.zip /home/foo/c.zip) }
168
168
  @maid.dir('~/Downloads/*.zip').should == %w(/home/foo/a.zip /home/foo/b.zip /home/foo/c.zip)
169
169
  end
170
+
171
+ context 'with multiple files' do
172
+ before do
173
+ @other_file = "#@dir/qux.tgz"
174
+ FileUtils.touch(@file)
175
+ FileUtils.touch(@other_file)
176
+ end
177
+
178
+ it 'list files in all provided directories' do
179
+ @maid.dir(%w(~/Downloads/*.tgz ~/Downloads/*.zip)).should == [@file, @other_file]
180
+ end
181
+
182
+ it 'lists files when using regexp-like glob patterns' do
183
+ @maid.dir('~/Downloads/*.{tgz,zip}').should == [@file, @other_file]
184
+ end
185
+ end
170
186
  end
171
187
 
172
188
  describe '#mkdir' do
@@ -174,6 +190,10 @@ module Maid
174
190
  @maid.mkdir('~/Downloads/Music/Pink.Floyd')
175
191
  File.exist?("#@home/Downloads/Music/Pink.Floyd").should be_true
176
192
  end
193
+
194
+ it 'returns the path of the created directory' do
195
+ @maid.mkdir('~/Reference/Foo').should == "#@home/Reference/Foo"
196
+ end
177
197
  end
178
198
 
179
199
  describe '#find' do
metadata CHANGED
@@ -1,167 +1,276 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: maid
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.0.alpha.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 62196353
5
5
  prerelease: 6
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 0
10
+ - beta
11
+ - 1
12
+ version: 0.2.0.beta.1
6
13
  platform: ruby
7
- authors:
14
+ authors:
8
15
  - Benjamin Oakes
9
16
  autorequire:
10
17
  bindir: bin
11
18
  cert_chain: []
12
- date: 2012-11-28 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
19
+
20
+ date: 2012-12-02 00:00:00 -05:00
21
+ default_executable:
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
15
24
  name: thor
16
- requirement: &10448900 !ruby/object:Gem::Requirement
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
17
27
  none: false
18
- requirements:
28
+ requirements:
19
29
  - - ~>
20
- - !ruby/object:Gem::Version
30
+ - !ruby/object:Gem::Version
31
+ hash: 95
32
+ segments:
33
+ - 0
34
+ - 16
35
+ - 0
21
36
  version: 0.16.0
22
37
  type: :runtime
23
- prerelease: false
24
- version_requirements: *10448900
25
- - !ruby/object:Gem::Dependency
38
+ version_requirements: *id001
39
+ - !ruby/object:Gem::Dependency
26
40
  name: deprecated
27
- requirement: &10447740 !ruby/object:Gem::Requirement
41
+ prerelease: false
42
+ requirement: &id002 !ruby/object:Gem::Requirement
28
43
  none: false
29
- requirements:
44
+ requirements:
30
45
  - - ~>
31
- - !ruby/object:Gem::Version
46
+ - !ruby/object:Gem::Version
47
+ hash: 5
48
+ segments:
49
+ - 3
50
+ - 0
51
+ - 1
32
52
  version: 3.0.1
33
53
  type: :runtime
34
- prerelease: false
35
- version_requirements: *10447740
36
- - !ruby/object:Gem::Dependency
54
+ version_requirements: *id002
55
+ - !ruby/object:Gem::Dependency
37
56
  name: maid-xdg
38
- requirement: &10447020 !ruby/object:Gem::Requirement
57
+ prerelease: false
58
+ requirement: &id003 !ruby/object:Gem::Requirement
39
59
  none: false
40
- requirements:
41
- - - =
42
- - !ruby/object:Gem::Version
60
+ requirements:
61
+ - - "="
62
+ - !ruby/object:Gem::Version
63
+ hash: 127
64
+ segments:
65
+ - 2
66
+ - 2
67
+ - 1
68
+ - 2
43
69
  version: 2.2.1.2
44
70
  type: :runtime
45
- prerelease: false
46
- version_requirements: *10447020
47
- - !ruby/object:Gem::Dependency
71
+ version_requirements: *id003
72
+ - !ruby/object:Gem::Dependency
48
73
  name: ohai
49
- requirement: &10445920 !ruby/object:Gem::Requirement
74
+ prerelease: false
75
+ requirement: &id004 !ruby/object:Gem::Requirement
50
76
  none: false
51
- requirements:
77
+ requirements:
52
78
  - - ~>
53
- - !ruby/object:Gem::Version
79
+ - !ruby/object:Gem::Version
80
+ hash: 23
81
+ segments:
82
+ - 6
83
+ - 14
84
+ - 0
54
85
  version: 6.14.0
55
86
  type: :runtime
56
- prerelease: false
57
- version_requirements: *10445920
58
- - !ruby/object:Gem::Dependency
87
+ version_requirements: *id004
88
+ - !ruby/object:Gem::Dependency
59
89
  name: fakefs
60
- requirement: &10443960 !ruby/object:Gem::Requirement
90
+ prerelease: false
91
+ requirement: &id005 !ruby/object:Gem::Requirement
61
92
  none: false
62
- requirements:
93
+ requirements:
63
94
  - - ~>
64
- - !ruby/object:Gem::Version
95
+ - !ruby/object:Gem::Version
96
+ hash: 13
97
+ segments:
98
+ - 0
99
+ - 4
100
+ - 1
65
101
  version: 0.4.1
66
102
  type: :development
67
- prerelease: false
68
- version_requirements: *10443960
69
- - !ruby/object:Gem::Dependency
103
+ version_requirements: *id005
104
+ - !ruby/object:Gem::Dependency
70
105
  name: guard
71
- requirement: &10442880 !ruby/object:Gem::Requirement
106
+ prerelease: false
107
+ requirement: &id006 !ruby/object:Gem::Requirement
72
108
  none: false
73
- requirements:
109
+ requirements:
74
110
  - - ~>
75
- - !ruby/object:Gem::Version
111
+ - !ruby/object:Gem::Version
112
+ hash: 11
113
+ segments:
114
+ - 1
115
+ - 5
116
+ - 4
76
117
  version: 1.5.4
77
118
  type: :development
78
- prerelease: false
79
- version_requirements: *10442880
80
- - !ruby/object:Gem::Dependency
119
+ version_requirements: *id006
120
+ - !ruby/object:Gem::Dependency
81
121
  name: guard-rspec
82
- requirement: &10442340 !ruby/object:Gem::Requirement
122
+ prerelease: false
123
+ requirement: &id007 !ruby/object:Gem::Requirement
83
124
  none: false
84
- requirements:
125
+ requirements:
85
126
  - - ~>
86
- - !ruby/object:Gem::Version
87
- version: 2.2.0
127
+ - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 2
131
+ - 3
132
+ - 0
133
+ version: 2.3.0
88
134
  type: :development
135
+ version_requirements: *id007
136
+ - !ruby/object:Gem::Dependency
137
+ name: rb-readline
89
138
  prerelease: false
90
- version_requirements: *10442340
91
- - !ruby/object:Gem::Dependency
139
+ requirement: &id008 !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ~>
143
+ - !ruby/object:Gem::Version
144
+ hash: 11
145
+ segments:
146
+ - 0
147
+ - 4
148
+ - 2
149
+ version: 0.4.2
150
+ type: :development
151
+ version_requirements: *id008
152
+ - !ruby/object:Gem::Dependency
92
153
  name: rake
93
- requirement: &10441780 !ruby/object:Gem::Requirement
154
+ prerelease: false
155
+ requirement: &id009 !ruby/object:Gem::Requirement
94
156
  none: false
95
- requirements:
157
+ requirements:
96
158
  - - ~>
97
- - !ruby/object:Gem::Version
159
+ - !ruby/object:Gem::Version
160
+ hash: 75
161
+ segments:
162
+ - 10
163
+ - 0
164
+ - 2
98
165
  version: 10.0.2
99
166
  type: :development
100
- prerelease: false
101
- version_requirements: *10441780
102
- - !ruby/object:Gem::Dependency
167
+ version_requirements: *id009
168
+ - !ruby/object:Gem::Dependency
103
169
  name: redcarpet
104
- requirement: &10418840 !ruby/object:Gem::Requirement
170
+ prerelease: false
171
+ requirement: &id010 !ruby/object:Gem::Requirement
105
172
  none: false
106
- requirements:
173
+ requirements:
107
174
  - - ~>
108
- - !ruby/object:Gem::Version
175
+ - !ruby/object:Gem::Version
176
+ hash: 3
177
+ segments:
178
+ - 2
179
+ - 2
180
+ - 2
109
181
  version: 2.2.2
110
182
  type: :development
111
- prerelease: false
112
- version_requirements: *10418840
113
- - !ruby/object:Gem::Dependency
183
+ version_requirements: *id010
184
+ - !ruby/object:Gem::Dependency
114
185
  name: rspec
115
- requirement: &10418280 !ruby/object:Gem::Requirement
186
+ prerelease: false
187
+ requirement: &id011 !ruby/object:Gem::Requirement
116
188
  none: false
117
- requirements:
189
+ requirements:
118
190
  - - ~>
119
- - !ruby/object:Gem::Version
191
+ - !ruby/object:Gem::Version
192
+ hash: 63
193
+ segments:
194
+ - 2
195
+ - 12
196
+ - 0
120
197
  version: 2.12.0
121
198
  type: :development
122
- prerelease: false
123
- version_requirements: *10418280
124
- - !ruby/object:Gem::Dependency
199
+ version_requirements: *id011
200
+ - !ruby/object:Gem::Dependency
125
201
  name: timecop
126
- requirement: &10417660 !ruby/object:Gem::Requirement
202
+ prerelease: false
203
+ requirement: &id012 !ruby/object:Gem::Requirement
127
204
  none: false
128
- requirements:
205
+ requirements:
129
206
  - - ~>
130
- - !ruby/object:Gem::Version
207
+ - !ruby/object:Gem::Version
208
+ hash: 13
209
+ segments:
210
+ - 0
211
+ - 5
212
+ - 3
131
213
  version: 0.5.3
132
214
  type: :development
133
- prerelease: false
134
- version_requirements: *10417660
135
- - !ruby/object:Gem::Dependency
215
+ version_requirements: *id012
216
+ - !ruby/object:Gem::Dependency
136
217
  name: yard
137
- requirement: &10417100 !ruby/object:Gem::Requirement
218
+ prerelease: false
219
+ requirement: &id013 !ruby/object:Gem::Requirement
138
220
  none: false
139
- requirements:
221
+ requirements:
140
222
  - - ~>
141
- - !ruby/object:Gem::Version
223
+ - !ruby/object:Gem::Version
224
+ hash: 57
225
+ segments:
226
+ - 0
227
+ - 8
228
+ - 3
142
229
  version: 0.8.3
143
230
  type: :development
144
- prerelease: false
145
- version_requirements: *10417100
146
- - !ruby/object:Gem::Dependency
231
+ version_requirements: *id013
232
+ - !ruby/object:Gem::Dependency
147
233
  name: rb-inotify
148
- requirement: &10416480 !ruby/object:Gem::Requirement
234
+ prerelease: false
235
+ requirement: &id014 !ruby/object:Gem::Requirement
149
236
  none: false
150
- requirements:
237
+ requirements:
151
238
  - - ~>
152
- - !ruby/object:Gem::Version
239
+ - !ruby/object:Gem::Version
240
+ hash: 47
241
+ segments:
242
+ - 0
243
+ - 8
244
+ - 8
153
245
  version: 0.8.8
154
246
  type: :development
247
+ version_requirements: *id014
248
+ - !ruby/object:Gem::Dependency
249
+ name: rb-fsevent
155
250
  prerelease: false
156
- version_requirements: *10416480
251
+ requirement: &id015 !ruby/object:Gem::Requirement
252
+ none: false
253
+ requirements:
254
+ - - ~>
255
+ - !ruby/object:Gem::Version
256
+ hash: 63
257
+ segments:
258
+ - 0
259
+ - 9
260
+ - 2
261
+ version: 0.9.2
262
+ type: :development
263
+ version_requirements: *id015
157
264
  description: Be lazy. Let Maid clean up after you, based on rules you define.
158
- email:
265
+ email:
159
266
  - hello@benjaminoakes.com
160
- executables:
267
+ executables:
161
268
  - maid
162
269
  extensions: []
270
+
163
271
  extra_rdoc_files: []
164
- files:
272
+
273
+ files:
165
274
  - .gitignore
166
275
  - .rspec
167
276
  - .rvmrc
@@ -190,8 +299,10 @@ files:
190
299
  - resources/OneThingWell.png
191
300
  - resources/download-for-ubuntu.png
192
301
  - resources/ruby5.gif
302
+ - script/smoke-test
193
303
  - script/vagrant-provision
194
304
  - script/vagrant-test
305
+ - script/vagrant-test-all
195
306
  - spec/dependency_spec.rb
196
307
  - spec/lib/maid/app_spec.rb
197
308
  - spec/lib/maid/maid_spec.rb
@@ -203,30 +314,51 @@ files:
203
314
  - spec/lib/maid/user_agent_spec.rb
204
315
  - spec/lib/maid_spec.rb
205
316
  - spec/spec_helper.rb
317
+ has_rdoc: true
206
318
  homepage: http://github.com/benjaminoakes/maid
207
- licenses:
319
+ licenses:
208
320
  - GPLv2
209
321
  post_install_message:
210
322
  rdoc_options: []
211
- require_paths:
323
+
324
+ require_paths:
212
325
  - lib
213
- required_ruby_version: !ruby/object:Gem::Requirement
326
+ required_ruby_version: !ruby/object:Gem::Requirement
214
327
  none: false
215
- requirements:
216
- - - ! '>='
217
- - !ruby/object:Gem::Version
218
- version: '0'
219
- required_rubygems_version: !ruby/object:Gem::Requirement
328
+ requirements:
329
+ - - ">="
330
+ - !ruby/object:Gem::Version
331
+ hash: 3
332
+ segments:
333
+ - 0
334
+ version: "0"
335
+ required_rubygems_version: !ruby/object:Gem::Requirement
220
336
  none: false
221
- requirements:
222
- - - ! '>'
223
- - !ruby/object:Gem::Version
337
+ requirements:
338
+ - - ">"
339
+ - !ruby/object:Gem::Version
340
+ hash: 25
341
+ segments:
342
+ - 1
343
+ - 3
344
+ - 1
224
345
  version: 1.3.1
225
346
  requirements: []
347
+
226
348
  rubyforge_project: maid
227
- rubygems_version: 1.8.11
349
+ rubygems_version: 1.6.2
228
350
  signing_key:
229
351
  specification_version: 3
230
352
  summary: Be lazy. Let Maid clean up after you, based on rules you define.
231
- test_files: []
232
- has_rdoc:
353
+ test_files:
354
+ - spec/dependency_spec.rb
355
+ - spec/lib/maid/app_spec.rb
356
+ - spec/lib/maid/maid_spec.rb
357
+ - spec/lib/maid/numeric_extensions_spec.rb
358
+ - spec/lib/maid/platform_spec.rb
359
+ - spec/lib/maid/rule_spec.rb
360
+ - spec/lib/maid/tools_spec.rb
361
+ - spec/lib/maid/trash_migration_spec.rb
362
+ - spec/lib/maid/user_agent_spec.rb
363
+ - spec/lib/maid_spec.rb
364
+ - spec/spec_helper.rb