mlightner-require_directory 0.1.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.
- data/README +0 -0
- data/Rakefile +37 -0
- data/lib/require_directory.rb +20 -0
- data/require_directory.gemspec +14 -0
- data/test/sample_requires/stuff.rb +3 -0
- data/test/sample_requires/things.rb +3 -0
- data/test/sample_requires/widgets.rb +3 -0
- data/test/sample_requires_with_error/gremlins.rb +5 -0
- data/test/sample_requires_with_error/stuff.rb +3 -0
- data/test/sample_requires_with_error/things.rb +3 -0
- data/test/sample_requires_with_error/widgets.rb +3 -0
- data/test/test_directory_reqiire.rb +23 -0
- data/test/test_helper.rb +3 -0
- metadata +74 -0
data/README
ADDED
File without changes
|
data/Rakefile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'rake/rdoctask'
|
4
|
+
|
5
|
+
desc 'Test the library.'
|
6
|
+
Rake::TestTask.new(:test) do |t|
|
7
|
+
t.libs << 'lib'
|
8
|
+
t.pattern = 'test/**/*_test.rb'
|
9
|
+
t.verbose = true
|
10
|
+
end
|
11
|
+
task :default => [':test']
|
12
|
+
|
13
|
+
desc "Update gem files list"
|
14
|
+
task :gemfiles do
|
15
|
+
file_name = "require_directory.gemspec"
|
16
|
+
files = `find ./ | grep -v \.git`.each_line.collect { |f| f.strip }.reject { |e| e =~ /^[^\W]*$$/ }
|
17
|
+
files.shift
|
18
|
+
file = File.new(file_name)
|
19
|
+
lines = file.readlines
|
20
|
+
file.close
|
21
|
+
|
22
|
+
newf = []
|
23
|
+
lines.each do |line|
|
24
|
+
if line =~ /^\s+s\.files\s*\=/
|
25
|
+
newf.push " s.files = [\"#{files.join('","')}\"]\n"
|
26
|
+
else
|
27
|
+
newf.push(line.rstrip + "\n")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# Don't write the file if there are no changes
|
32
|
+
file = File.new(file_name,'w')
|
33
|
+
newf.each do |line|
|
34
|
+
file.write(line)
|
35
|
+
end
|
36
|
+
file.close
|
37
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
module Kernel
|
4
|
+
|
5
|
+
# Require all the ruby files in a directory (which must be in the load path
|
6
|
+
def require_directory(dir, add_to_load_path = false, skip_invalid_syntax = false)
|
7
|
+
raise "Not a directory: #{dir}" unless File.directory?(dir)
|
8
|
+
if add_to_load_path
|
9
|
+
$LOAD_PATH << dir
|
10
|
+
end
|
11
|
+
Dir.glob(File.join(dir + '/*.rb')).each do |file|
|
12
|
+
if (skip_invalid_syntax && !(`/usr/bin/env ruby -c #{file}` =~ /Syntax OK/m))
|
13
|
+
warn "Invalid syntax in: #{file}"
|
14
|
+
next
|
15
|
+
end
|
16
|
+
require file
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = %q{require_directory}
|
3
|
+
s.version = "0.1.0"
|
4
|
+
s.author = "Matt Lightner"
|
5
|
+
s.default_executable = %q{require_directory}
|
6
|
+
s.description = %q{Require all files in a directory easily.}
|
7
|
+
s.email = %q{mlightner@gmail.com}
|
8
|
+
s.files = ["./README","./lib","./lib/require_directory.rb","./test","./test/test_directory_reqiire.rb","./test/sample_requires","./test/sample_requires/things.rb","./test/sample_requires/stuff.rb","./test/sample_requires/widgets.rb","./test/sample_requires_with_error","./test/sample_requires_with_error/gremlins.rb","./test/sample_requires_with_error/things.rb","./test/sample_requires_with_error/stuff.rb","./test/sample_requires_with_error/widgets.rb","./test/test_helper.rb","./Rakefile","./require_directory.gemspec"]
|
9
|
+
s.has_rdoc = false
|
10
|
+
s.homepage = %q{http://github.com/mlightner/require_directory}
|
11
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "require_directory", "--main"]
|
12
|
+
s.require_paths = ["lib"]
|
13
|
+
s.summary = %q{Require all files in a directory.}
|
14
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestDirectoryRequires < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_require_directory_good
|
6
|
+
require_directory File.dirname(__FILE__) + '/sample_requires'
|
7
|
+
%w{ Widgets Things Stuff }.each do |cl|
|
8
|
+
assert Object.const_defined?(cl.to_sym)
|
9
|
+
assert_equal Class, eval("#{cl}").class
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_require_directory_bad
|
14
|
+
begin
|
15
|
+
assert_raises(Exception) do
|
16
|
+
require_directory File.dirname(__FILE__) + '/sample_requires_with_error'
|
17
|
+
end
|
18
|
+
rescue Exception => e
|
19
|
+
assert e.kind_of?(Exception)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mlightner-require_directory
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Matt Lightner
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-05-16 00:00:00 -07:00
|
13
|
+
default_executable: require_directory
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Require all files in a directory easily.
|
17
|
+
email: mlightner@gmail.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
24
|
+
files:
|
25
|
+
- ./README
|
26
|
+
- ./lib
|
27
|
+
- ./lib/require_directory.rb
|
28
|
+
- ./test
|
29
|
+
- ./test/test_directory_reqiire.rb
|
30
|
+
- ./test/sample_requires
|
31
|
+
- ./test/sample_requires/things.rb
|
32
|
+
- ./test/sample_requires/stuff.rb
|
33
|
+
- ./test/sample_requires/widgets.rb
|
34
|
+
- ./test/sample_requires_with_error
|
35
|
+
- ./test/sample_requires_with_error/gremlins.rb
|
36
|
+
- ./test/sample_requires_with_error/things.rb
|
37
|
+
- ./test/sample_requires_with_error/stuff.rb
|
38
|
+
- ./test/sample_requires_with_error/widgets.rb
|
39
|
+
- ./test/test_helper.rb
|
40
|
+
- ./Rakefile
|
41
|
+
- ./require_directory.gemspec
|
42
|
+
has_rdoc: false
|
43
|
+
homepage: http://github.com/mlightner/require_directory
|
44
|
+
licenses:
|
45
|
+
post_install_message:
|
46
|
+
rdoc_options:
|
47
|
+
- --line-numbers
|
48
|
+
- --inline-source
|
49
|
+
- --title
|
50
|
+
- require_directory
|
51
|
+
- --main
|
52
|
+
require_paths:
|
53
|
+
- lib
|
54
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: "0"
|
59
|
+
version:
|
60
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: "0"
|
65
|
+
version:
|
66
|
+
requirements: []
|
67
|
+
|
68
|
+
rubyforge_project:
|
69
|
+
rubygems_version: 1.3.5
|
70
|
+
signing_key:
|
71
|
+
specification_version: 2
|
72
|
+
summary: Require all files in a directory.
|
73
|
+
test_files: []
|
74
|
+
|