require_all 1.3.2 → 1.3.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/.travis.yml +4 -3
- data/CHANGES +4 -0
- data/Rakefile +6 -7
- data/lib/require_all.rb +276 -277
- data/require_all.gemspec +22 -22
- data/spec/autoload_shared.rb +84 -74
- data/spec/autoload_spec.rb +65 -65
- data/spec/load_spec.rb +60 -56
- data/spec/require_shared.rb +78 -68
- data/spec/require_spec.rb +45 -45
- metadata +25 -11
- checksums.yaml +0 -7
data/spec/require_shared.rb
CHANGED
@@ -1,68 +1,78 @@
|
|
1
|
-
shared_examples_for "#require_all syntactic sugar" do
|
2
|
-
before :each do
|
3
|
-
@file_list = [
|
4
|
-
"#{@base_dir}/module1/a.rb",
|
5
|
-
"#{@base_dir}/module2/longer_name.rb",
|
6
|
-
"#{@base_dir}/module2/module3/b.rb"
|
7
|
-
]
|
8
|
-
end
|
9
|
-
|
10
|
-
it "accepts files with and without extensions" do
|
11
|
-
|
12
|
-
send(@method, @base_dir + '/module2/longer_name').
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
send(@method, @base_dir + '/module1/a.rb').
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
it "accepts lists of files" do
|
21
|
-
|
22
|
-
"Autoloaded::Module2::Module3::B")
|
23
|
-
send(@method, @file_list).
|
24
|
-
|
25
|
-
"Autoloaded::Module2::Module3::B")
|
26
|
-
end
|
27
|
-
|
28
|
-
it "is totally cool with a splatted list of arguments" do
|
29
|
-
|
30
|
-
"Autoloaded::Module2::Module3::B")
|
31
|
-
send(@method, *@file_list).
|
32
|
-
|
33
|
-
"Autoloaded::Module2::Module3::B")
|
34
|
-
end
|
35
|
-
|
36
|
-
it "will load all .rb files under a directory without a trailing slash" do
|
37
|
-
|
38
|
-
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
39
|
-
send(@method, @base_dir).
|
40
|
-
|
41
|
-
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
42
|
-
end
|
43
|
-
|
44
|
-
it "will load all .rb files under a directory with a trailing slash" do
|
45
|
-
|
46
|
-
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
47
|
-
send(@method, "#{@base_dir}/").
|
48
|
-
|
49
|
-
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
50
|
-
end
|
51
|
-
|
52
|
-
it "will load all files specified by a glob" do
|
53
|
-
|
54
|
-
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
55
|
-
send(@method, "#{@base_dir}/**/*.rb").
|
56
|
-
|
57
|
-
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
58
|
-
end
|
59
|
-
|
60
|
-
it "returns false if an empty input was given" do
|
61
|
-
send(@method, []).
|
62
|
-
send(@method).
|
63
|
-
end
|
64
|
-
|
65
|
-
it "throws LoadError if no file or directory found" do
|
66
|
-
|
67
|
-
end
|
68
|
-
|
1
|
+
shared_examples_for "#require_all syntactic sugar" do
|
2
|
+
before :each do
|
3
|
+
@file_list = [
|
4
|
+
"#{@base_dir}/module1/a.rb",
|
5
|
+
"#{@base_dir}/module2/longer_name.rb",
|
6
|
+
"#{@base_dir}/module2/module3/b.rb"
|
7
|
+
]
|
8
|
+
end
|
9
|
+
|
10
|
+
it "accepts files with and without extensions" do
|
11
|
+
is_expected.not_to be_loaded("Autoloaded::Module2::LongerName")
|
12
|
+
expect(send(@method, @base_dir + '/module2/longer_name')).to be_truthy
|
13
|
+
is_expected.to be_loaded("Autoloaded::Module2::LongerName")
|
14
|
+
|
15
|
+
is_expected.not_to be_loaded("Autoloaded::Module1::A")
|
16
|
+
expect(send(@method, @base_dir + '/module1/a.rb')).to be_truthy
|
17
|
+
is_expected.to be_loaded("Autoloaded::Module1::A")
|
18
|
+
end
|
19
|
+
|
20
|
+
it "accepts lists of files" do
|
21
|
+
is_expected.not_to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
|
22
|
+
"Autoloaded::Module2::Module3::B")
|
23
|
+
expect(send(@method, @file_list)).to be_truthy
|
24
|
+
is_expected.to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
|
25
|
+
"Autoloaded::Module2::Module3::B")
|
26
|
+
end
|
27
|
+
|
28
|
+
it "is totally cool with a splatted list of arguments" do
|
29
|
+
is_expected.not_to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
|
30
|
+
"Autoloaded::Module2::Module3::B")
|
31
|
+
expect(send(@method, *@file_list)).to be_truthy
|
32
|
+
is_expected.to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
|
33
|
+
"Autoloaded::Module2::Module3::B")
|
34
|
+
end
|
35
|
+
|
36
|
+
it "will load all .rb files under a directory without a trailing slash" do
|
37
|
+
is_expected.not_to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
|
38
|
+
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
39
|
+
expect(send(@method, @base_dir)).to be_truthy
|
40
|
+
is_expected.to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
|
41
|
+
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
42
|
+
end
|
43
|
+
|
44
|
+
it "will load all .rb files under a directory with a trailing slash" do
|
45
|
+
is_expected.not_to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
|
46
|
+
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
47
|
+
expect(send(@method, "#{@base_dir}/")).to be_truthy
|
48
|
+
is_expected.to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
|
49
|
+
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
50
|
+
end
|
51
|
+
|
52
|
+
it "will load all files specified by a glob" do
|
53
|
+
is_expected.not_to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
|
54
|
+
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
55
|
+
expect(send(@method, "#{@base_dir}/**/*.rb")).to be_truthy
|
56
|
+
is_expected.to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
|
57
|
+
"Autoloaded::Module2::Module3::B", "WrongModule::WithWrongModule")
|
58
|
+
end
|
59
|
+
|
60
|
+
it "returns false if an empty input was given" do
|
61
|
+
expect(send(@method, [])).to be_falsey
|
62
|
+
expect(send(@method)).to be_falsey
|
63
|
+
end
|
64
|
+
|
65
|
+
it "throws LoadError if no file or directory found" do
|
66
|
+
expect {send(@method, "not_found")}.to raise_error(LoadError)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "can handle empty directories" do
|
70
|
+
# Have to make these on the fly because they can't be saved as a test fixture because Git won't track directories with nothing in them.
|
71
|
+
FileUtils.mkpath("#{@base_dir}/empty_dir")
|
72
|
+
FileUtils.mkpath("#{@base_dir}/nested/empty_dir")
|
73
|
+
FileUtils.mkpath("#{@base_dir}/nested/more_nested/empty_dir")
|
74
|
+
|
75
|
+
expect {send(@method, "#{@base_dir}/empty_dir")}.to_not raise_error
|
76
|
+
expect {send(@method, "#{@base_dir}/nested")}.to_not raise_error
|
77
|
+
end
|
78
|
+
end
|
data/spec/require_spec.rb
CHANGED
@@ -1,45 +1,45 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
-
require File.dirname(__FILE__) + '/require_shared.rb'
|
3
|
-
|
4
|
-
describe "require_all" do
|
5
|
-
|
6
|
-
subject { self }
|
7
|
-
|
8
|
-
describe "dependency resolution" do
|
9
|
-
it "handles load ordering when dependencies are resolvable" do
|
10
|
-
require_all File.dirname(__FILE__) + '/fixtures/resolvable/*.rb'
|
11
|
-
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
it "raises NameError if dependencies can't be resolved" do
|
16
|
-
|
17
|
-
require_all File.dirname(__FILE__) + '/fixtures/unresolvable/*.rb'
|
18
|
-
end.
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
before(:all) do
|
23
|
-
@base_dir = File.dirname(__FILE__) + '/fixtures/autoloaded'
|
24
|
-
@method = :require_all
|
25
|
-
end
|
26
|
-
it_should_behave_like "#require_all syntactic sugar"
|
27
|
-
end
|
28
|
-
|
29
|
-
describe "require_rel" do
|
30
|
-
|
31
|
-
subject { self }
|
32
|
-
|
33
|
-
it "provides require_all functionality relative to the current file" do
|
34
|
-
require File.dirname(__FILE__) + '/fixtures/relative/b/b'
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
before(:all) do
|
41
|
-
@base_dir = './fixtures/autoloaded'
|
42
|
-
@method = :require_rel
|
43
|
-
end
|
44
|
-
it_should_behave_like "#require_all syntactic sugar"
|
45
|
-
end
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
require File.dirname(__FILE__) + '/require_shared.rb'
|
3
|
+
|
4
|
+
describe "require_all" do
|
5
|
+
|
6
|
+
subject { self }
|
7
|
+
|
8
|
+
describe "dependency resolution" do
|
9
|
+
it "handles load ordering when dependencies are resolvable" do
|
10
|
+
require_all File.dirname(__FILE__) + '/fixtures/resolvable/*.rb'
|
11
|
+
|
12
|
+
is_expected.to be_loaded("A", "B", "C", "D")
|
13
|
+
end
|
14
|
+
|
15
|
+
it "raises NameError if dependencies can't be resolved" do
|
16
|
+
expect do
|
17
|
+
require_all File.dirname(__FILE__) + '/fixtures/unresolvable/*.rb'
|
18
|
+
end.to raise_error(NameError)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
before(:all) do
|
23
|
+
@base_dir = File.dirname(__FILE__) + '/fixtures/autoloaded'
|
24
|
+
@method = :require_all
|
25
|
+
end
|
26
|
+
it_should_behave_like "#require_all syntactic sugar"
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "require_rel" do
|
30
|
+
|
31
|
+
subject { self }
|
32
|
+
|
33
|
+
it "provides require_all functionality relative to the current file" do
|
34
|
+
require File.dirname(__FILE__) + '/fixtures/relative/b/b'
|
35
|
+
|
36
|
+
is_expected.to be_loaded("RelativeA", "RelativeB", "RelativeC")
|
37
|
+
is_expected.not_to be_loaded("RelativeD")
|
38
|
+
end
|
39
|
+
|
40
|
+
before(:all) do
|
41
|
+
@base_dir = './fixtures/autoloaded'
|
42
|
+
@method = :require_rel
|
43
|
+
end
|
44
|
+
it_should_behave_like "#require_all syntactic sugar"
|
45
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: require_all
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.3
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Jarmo Pertman
|
@@ -9,39 +10,44 @@ authors:
|
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
+
date: 2015-10-26 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: rake
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
20
|
- - ~>
|
19
21
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
22
|
+
version: '10.4'
|
21
23
|
type: :development
|
22
24
|
prerelease: false
|
23
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
24
27
|
requirements:
|
25
28
|
- - ~>
|
26
29
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
30
|
+
version: '10.4'
|
28
31
|
- !ruby/object:Gem::Dependency
|
29
32
|
name: rspec
|
30
33
|
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
31
35
|
requirements:
|
32
36
|
- - ~>
|
33
37
|
- !ruby/object:Gem::Version
|
34
|
-
version: '2
|
38
|
+
version: '3.2'
|
35
39
|
type: :development
|
36
40
|
prerelease: false
|
37
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
38
43
|
requirements:
|
39
44
|
- - ~>
|
40
45
|
- !ruby/object:Gem::Version
|
41
|
-
version: '2
|
46
|
+
version: '3.2'
|
42
47
|
- !ruby/object:Gem::Dependency
|
43
48
|
name: simplecov
|
44
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
45
51
|
requirements:
|
46
52
|
- - ~>
|
47
53
|
- !ruby/object:Gem::Version
|
@@ -49,6 +55,7 @@ dependencies:
|
|
49
55
|
type: :development
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
52
59
|
requirements:
|
53
60
|
- - ~>
|
54
61
|
- !ruby/object:Gem::Version
|
@@ -99,7 +106,6 @@ files:
|
|
99
106
|
homepage: http://github.com/jarmo/require_all
|
100
107
|
licenses:
|
101
108
|
- MIT
|
102
|
-
metadata: {}
|
103
109
|
post_install_message:
|
104
110
|
rdoc_options:
|
105
111
|
- --title
|
@@ -110,20 +116,28 @@ rdoc_options:
|
|
110
116
|
require_paths:
|
111
117
|
- lib
|
112
118
|
required_ruby_version: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
113
120
|
requirements:
|
114
|
-
- - '>='
|
121
|
+
- - ! '>='
|
115
122
|
- !ruby/object:Gem::Version
|
116
123
|
version: '0'
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
hash: -3238378382384055295
|
117
127
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
|
+
none: false
|
118
129
|
requirements:
|
119
|
-
- - '>='
|
130
|
+
- - ! '>='
|
120
131
|
- !ruby/object:Gem::Version
|
121
132
|
version: '0'
|
133
|
+
segments:
|
134
|
+
- 0
|
135
|
+
hash: -3238378382384055295
|
122
136
|
requirements: []
|
123
137
|
rubyforge_project:
|
124
|
-
rubygems_version:
|
138
|
+
rubygems_version: 1.8.23.2
|
125
139
|
signing_key:
|
126
|
-
specification_version:
|
140
|
+
specification_version: 3
|
127
141
|
summary: A wonderfully simple way to load your code
|
128
142
|
test_files:
|
129
143
|
- spec/autoload_shared.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 9aca067db87a47171b1e72cddd845d4593db3fdd
|
4
|
-
data.tar.gz: 3797f5b2dc922917f5542412b4b6d752cb679e6d
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 2a16e96d69e19068ae2220a1f1ca9a3bdfc930b256cce2f4e6b2758a11ff12e67570c1657029ffc309b8235dbb8b2496c72da84fe79297f143a5c8bc57bb4736
|
7
|
-
data.tar.gz: 8b2eb02d88180f86b0e01c04592ba287d0c3ea89f0c810da0e53fd9a39462f417bfed6d8797e3e3d78efffefde4e14e797ebdae0171418893b4adf2bde312a2b
|