rubysl-find 1.0.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 98261a884ba226f4edc3b5ca5a6dec07c8be575b
4
+ data.tar.gz: db68078ee0626c07546f99fd85751acfe3241699
5
+ SHA512:
6
+ metadata.gz: b0b565be6cd0f0f74db1a8946d2b11d37e7be61a54c2f3e3d5d4939b953bb8c6ff4c47b31c5269d978e67dd025d7049de1deba3356acb3192ec7952a6548d9a3
7
+ data.tar.gz: ce82fd4483ad0d87ab9210c97c5fad0badf2511ed7ffcaffc7e4ff53fc71a0eb9c36d98870112f529442da3b52308c941598b5d71232236a81b8475387b6ffc7
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ before_install:
3
+ - gem update --system
4
+ - gem --version
5
+ - gem install rubysl-bundler
6
+ script: bundle exec mspec spec
7
+ rvm:
8
+ - rbx-nightly-18mode
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in rubysl-find.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,25 @@
1
+ Copyright (c) 2013, Brian Shirai
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ 1. Redistributions of source code must retain the above copyright notice, this
8
+ list of conditions and the following disclaimer.
9
+ 2. Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ 3. Neither the name of the library nor the names of its contributors may be
13
+ used to endorse or promote products derived from this software without
14
+ specific prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
+ DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY DIRECT,
20
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23
+ OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Rubysl::Find
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'rubysl-find'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install rubysl-find
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/lib/find.rb ADDED
@@ -0,0 +1 @@
1
+ require "rubysl/find"
@@ -0,0 +1,2 @@
1
+ require "rubysl/find/find"
2
+ require "rubysl/find/version"
@@ -0,0 +1,79 @@
1
+ #
2
+ # find.rb: the Find module for processing all files under a given directory.
3
+ #
4
+
5
+ #
6
+ # The +Find+ module supports the top-down traversal of a set of file paths.
7
+ #
8
+ # For example, to total the size of all files under your home directory,
9
+ # ignoring anything in a "dot" directory (e.g. $HOME/.ssh):
10
+ #
11
+ # require 'find'
12
+ #
13
+ # total_size = 0
14
+ #
15
+ # Find.find(ENV["HOME"]) do |path|
16
+ # if FileTest.directory?(path)
17
+ # if File.basename(path)[0] == ?.
18
+ # Find.prune # Don't look any further into this directory.
19
+ # else
20
+ # next
21
+ # end
22
+ # else
23
+ # total_size += FileTest.size(path)
24
+ # end
25
+ # end
26
+ #
27
+ module Find
28
+
29
+ #
30
+ # Calls the associated block with the name of every file and directory listed
31
+ # as arguments, then recursively on their subdirectories, and so on.
32
+ #
33
+ # See the +Find+ module documentation for an example.
34
+ #
35
+ def find(*paths) # :yield: path
36
+ paths.collect!{|d| d.dup}
37
+ while file = paths.shift
38
+ catch(:prune) do
39
+ yield file.dup.taint
40
+ next unless File.exist? file
41
+ begin
42
+ if File.lstat(file).directory? then
43
+ d = Dir.open(file)
44
+ begin
45
+ for f in d
46
+ next if f == "." or f == ".."
47
+ if File::ALT_SEPARATOR and file =~ /^(?:[\/\\]|[A-Za-z]:[\/\\]?)$/ then
48
+ f = file + f
49
+ elsif file == "/" then
50
+ f = "/" + f
51
+ else
52
+ f = File.join(file, f)
53
+ end
54
+ paths.unshift f.untaint
55
+ end
56
+ ensure
57
+ d.close
58
+ end
59
+ end
60
+ rescue Errno::ENOENT, Errno::EACCES
61
+ end
62
+ end
63
+ end
64
+ end
65
+
66
+ #
67
+ # Skips the current file or directory, restarting the loop with the next
68
+ # entry. If the current file is a directory, that directory will not be
69
+ # recursively entered. Meaningful only within the block associated with
70
+ # Find::find.
71
+ #
72
+ # See the +Find+ module documentation for an example.
73
+ #
74
+ def prune
75
+ throw :prune
76
+ end
77
+
78
+ module_function :find, :prune
79
+ end
@@ -0,0 +1,5 @@
1
+ module RubySL
2
+ module Find
3
+ VERSION = "1.0.0"
4
+ end
5
+ end
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ require './lib/rubysl/find/version'
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = "rubysl-find"
6
+ spec.version = RubySL::Find::VERSION
7
+ spec.authors = ["Brian Shirai"]
8
+ spec.email = ["brixen@gmail.com"]
9
+ spec.description = %q{Ruby standard library find.}
10
+ spec.summary = %q{Ruby standard library find.}
11
+ spec.homepage = "https://github.com/rubysl/rubysl-find"
12
+ spec.license = "BSD"
13
+
14
+ spec.files = `git ls-files`.split($/)
15
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
+ spec.require_paths = ["lib"]
18
+
19
+ spec.add_development_dependency "bundler", "~> 1.3"
20
+ spec.add_development_dependency "rake", "~> 10.0"
21
+ spec.add_development_dependency "mspec", "~> 1.5"
22
+ spec.add_development_dependency "rubysl-prettyprint", "~> 1.0"
23
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubysl-find
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Brian Shirai
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
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.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.5'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.5'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubysl-prettyprint
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
69
+ description: Ruby standard library find.
70
+ email:
71
+ - brixen@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - .travis.yml
78
+ - Gemfile
79
+ - LICENSE
80
+ - README.md
81
+ - Rakefile
82
+ - lib/find.rb
83
+ - lib/rubysl/find.rb
84
+ - lib/rubysl/find/find.rb
85
+ - lib/rubysl/find/version.rb
86
+ - rubysl-find.gemspec
87
+ homepage: https://github.com/rubysl/rubysl-find
88
+ licenses:
89
+ - BSD
90
+ metadata: {}
91
+ post_install_message:
92
+ rdoc_options: []
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ requirements: []
106
+ rubyforge_project:
107
+ rubygems_version: 2.0.3
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: Ruby standard library find.
111
+ test_files: []
112
+ has_rdoc: