require-magic 0.2.2 → 0.2.3
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.rdoc +6 -1
- data/VERSION +1 -1
- data/lib/require-magic.rb +27 -5
- data/require-magic.gemspec +4 -3
- data/test/test_require_folder.rb +55 -0
- data/test/{test_require_magic.rb → test_require_folders.rb} +1 -1
- data/test/{test_require_magic_adv.rb → test_require_folders_adv.rb} +1 -1
- data/test/unit_test_require.rb +1 -0
- metadata +4 -3
data/README.rdoc
CHANGED
@@ -7,15 +7,20 @@ Using this toolset should really simplify your require statements and make your
|
|
7
7
|
== USAGE
|
8
8
|
See unit tests for demonstrations of how to use it:
|
9
9
|
|
10
|
+
Set basepath to use for require
|
11
|
+
* required_files = Require.base_path = File.dirname(__FILE__)
|
12
|
+
|
10
13
|
To require all files within the top level folder 'data' (non-recursively)
|
11
14
|
* required_files = Require.folder('data')
|
12
15
|
|
16
|
+
Override base_path
|
17
|
+
* required_files = Require.folder('data', {:base_path => File.dirname(__FILE__) + '/../my/path})
|
18
|
+
|
13
19
|
The required_files returned is a list of the paths of the files that were required
|
14
20
|
|
15
21
|
To require all files within the top level folder 'data' (non-recursively) and apply tracing to see output for the process of requiring the files
|
16
22
|
* required_files = Require.folder('data')
|
17
23
|
|
18
|
-
|
19
24
|
To require all files within the top level folder 'data' recursively
|
20
25
|
* required_files = Require.rfolder('data')
|
21
26
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.3
|
data/lib/require-magic.rb
CHANGED
@@ -1,4 +1,12 @@
|
|
1
|
-
|
1
|
+
require 'singleton'
|
2
|
+
class Require
|
3
|
+
include Singleton
|
4
|
+
|
5
|
+
class << self
|
6
|
+
attr_accessor :base_path
|
7
|
+
attr_accessor :tracing
|
8
|
+
attr_accessor :verbose
|
9
|
+
end
|
2
10
|
def self.rfolder(name, options = {})
|
3
11
|
options[:recursive] = true
|
4
12
|
folder(name, options)
|
@@ -8,8 +16,14 @@ module Require
|
|
8
16
|
recursive = options[:recursive]
|
9
17
|
folder_list = options[:folders]
|
10
18
|
file_pattern = recursive ? "#{name}/**/*.rb" : "#{name}/*.rb"
|
11
|
-
|
12
|
-
|
19
|
+
|
20
|
+
base_dir = File.dirname(__FILE__)
|
21
|
+
|
22
|
+
curr_base_path = options[:base_path] || base_path || base_dir
|
23
|
+
|
24
|
+
# puts "base_path: #{curr_base_path}, base_dir:#{base_dir}, :base_path #{base_path}"
|
25
|
+
|
26
|
+
path = File.join(curr_base_path, file_pattern)
|
13
27
|
required_files = []
|
14
28
|
|
15
29
|
puts_trace "folder:: name: #{name}", options
|
@@ -47,7 +61,7 @@ protected
|
|
47
61
|
end
|
48
62
|
|
49
63
|
def self.tracing?(options)
|
50
|
-
options[:tracing] == :on
|
64
|
+
tracing == :on || options[:tracing] == :on
|
51
65
|
end
|
52
66
|
|
53
67
|
def self.is_root?(path, options)
|
@@ -94,7 +108,15 @@ protected
|
|
94
108
|
|
95
109
|
def self.do_require(name)
|
96
110
|
require name
|
97
|
-
name
|
111
|
+
list_name name
|
112
|
+
end
|
113
|
+
|
114
|
+
def self.list_name(name)
|
115
|
+
if base_path && !(verbose == :on)
|
116
|
+
name.gsub(/#{Regexp.escape(base_path)}/, '')
|
117
|
+
else
|
118
|
+
name
|
119
|
+
end
|
98
120
|
end
|
99
121
|
|
100
122
|
def self.match(f, rexp)
|
data/require-magic.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{require-magic}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristian Mandrup"]
|
@@ -38,8 +38,9 @@ Gem::Specification.new do |s|
|
|
38
38
|
s.test_files = [
|
39
39
|
"spec/require-magic_spec.rb",
|
40
40
|
"spec/spec_helper.rb",
|
41
|
-
"test/
|
42
|
-
"test/
|
41
|
+
"test/test_require_folder.rb",
|
42
|
+
"test/test_require_folders.rb",
|
43
|
+
"test/test_require_folders_adv.rb",
|
43
44
|
"test/unit_test_require.rb"
|
44
45
|
]
|
45
46
|
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'require-magic'
|
2
|
+
require "unit_test_require"
|
3
|
+
|
4
|
+
class TestRequireFolder < UnitTestRequire
|
5
|
+
|
6
|
+
def test_require_folder
|
7
|
+
required_files = Require.folder(@folder)
|
8
|
+
|
9
|
+
found0 = match? required_files[0], 'data_a.rb'
|
10
|
+
|
11
|
+
assert_equal 1, required_files.size, "Should require 1 file"
|
12
|
+
assert found0, "Should require data_a.rb in /"
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_require_folder_recursive
|
17
|
+
required_files = Require.rfolder(@folder)
|
18
|
+
assert_equal 4, required_files.size, "Should require 4 files"
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_require_folder_recursive_include
|
22
|
+
options = {:include => '_a'}
|
23
|
+
required_files = Require.folder(@folder, options)
|
24
|
+
assert_equal 1, required_files.size, "Should require 1 file"
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_require_folder_recursive_include_base_path
|
28
|
+
options = {:include => '_a'}
|
29
|
+
Require.base_path = File.dirname(__FILE__) + "/../lib"
|
30
|
+
required_files = Require.folder(@folder, options)
|
31
|
+
|
32
|
+
assert_equal 1, required_files.size, "Should require 1 file"
|
33
|
+
assert_equal "/data/data_a.rb", required_files[0], "Path of required files should be from base_path when verbose not :on"
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
def test_require_folders_recursive_exclude_base_path
|
38
|
+
options = {:exclude => '_a'}
|
39
|
+
required_files = Require.folder(@folder, options)
|
40
|
+
assert_equal 0, required_files.size, "Should require 0 files"
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_require_folder_recursive_default_base_path_override
|
44
|
+
options = {:folders => ['blip'], :base_path => File.dirname(__FILE__) + "/../lib"}
|
45
|
+
required_files = Require.folder(@folder, options)
|
46
|
+
|
47
|
+
assert_equal 3, required_files.size, "Should require 3 files"
|
48
|
+
|
49
|
+
found0 = match? required_files[0], 'data_a.rb'
|
50
|
+
assert found0, "Should require root files such as 'data_a.rb' first"
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
end
|
55
|
+
|
data/test/unit_test_require.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: require-magic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kristian Mandrup
|
@@ -75,6 +75,7 @@ summary: utility to facilitate require of .rb files and folders
|
|
75
75
|
test_files:
|
76
76
|
- spec/require-magic_spec.rb
|
77
77
|
- spec/spec_helper.rb
|
78
|
-
- test/
|
79
|
-
- test/
|
78
|
+
- test/test_require_folder.rb
|
79
|
+
- test/test_require_folders.rb
|
80
|
+
- test/test_require_folders_adv.rb
|
80
81
|
- test/unit_test_require.rb
|