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.
@@ -1,22 +1,22 @@
1
- Gem::Specification.new do |s|
2
- s.name = "require_all"
3
- s.version = "1.3.2"
4
- s.authors = ["Jarmo Pertman", "Tony Arcieri"]
5
- s.email = "jarmo.p@gmail.com"
6
- s.summary = "A wonderfully simple way to load your code"
7
-
8
- s.files = `git ls-files`.split($\)
9
- s.test_files = s.files.grep(%r{^(test|spec|features)/})
10
- s.require_paths = ["lib"]
11
-
12
- s.homepage = "http://github.com/jarmo/require_all"
13
- s.license = "MIT"
14
-
15
- s.has_rdoc = true
16
- s.rdoc_options = %w(--title require_all --main README.md --line-numbers)
17
- s.extra_rdoc_files = ["LICENSE", "README.md", "CHANGES"]
18
-
19
- s.add_development_dependency "rake", "~>0.9"
20
- s.add_development_dependency "rspec", "~>2.14"
21
- s.add_development_dependency "simplecov", "~>0.7"
22
- end
1
+ Gem::Specification.new do |s|
2
+ s.name = "require_all"
3
+ s.version = "1.3.3"
4
+ s.authors = ["Jarmo Pertman", "Tony Arcieri"]
5
+ s.email = "jarmo.p@gmail.com"
6
+ s.summary = "A wonderfully simple way to load your code"
7
+
8
+ s.files = `git ls-files`.split($\)
9
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
10
+ s.require_paths = ["lib"]
11
+
12
+ s.homepage = "http://github.com/jarmo/require_all"
13
+ s.license = "MIT"
14
+
15
+ s.has_rdoc = true
16
+ s.rdoc_options = %w(--title require_all --main README.md --line-numbers)
17
+ s.extra_rdoc_files = ["LICENSE", "README.md", "CHANGES"]
18
+
19
+ s.add_development_dependency "rake", "~> 10.4"
20
+ s.add_development_dependency "rspec", "~> 3.2"
21
+ s.add_development_dependency "simplecov", "~> 0.7"
22
+ end
@@ -1,74 +1,84 @@
1
- shared_examples_for "#autoload_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
- should_not be_loaded("Autoloaded::Module2::LongerName")
12
- send(@method, @base_dir + '/module2/longer_name', :base_dir => @autoload_base_dir).should be_true
13
- should be_loaded("Autoloaded::Module2::LongerName")
14
-
15
- should_not be_loaded("Autoloaded::Module1::A")
16
- send(@method, @base_dir + '/module1/a.rb', :base_dir => @autoload_base_dir).should be_true
17
- should be_loaded("Autoloaded::Module1::A")
18
- end
19
-
20
- it "accepts lists of files" do
21
- should_not be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
22
- "Autoloaded::Module2::Module3::B")
23
- send(@method, @file_list, :base_dir => @autoload_base_dir).should be_true
24
- should 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
- should_not be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
30
- "Autoloaded::Module2::Module3::B")
31
- send(@method, *(@file_list << {:base_dir => @autoload_base_dir})).should be_true
32
- should 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
- should_not be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
38
- "Autoloaded::Module2::Module3::B")
39
- send(@method, @base_dir, :base_dir => @autoload_base_dir).should be_true
40
- should be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
41
- "Autoloaded::Module2::Module3::B")
42
- end
43
-
44
- it "will load all .rb files under a directory with a trailing slash" do
45
- should_not be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
46
- "Autoloaded::Module2::Module3::B")
47
- send(@method, "#{@base_dir}/", :base_dir => @autoload_base_dir).should be_true
48
- should be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
49
- "Autoloaded::Module2::Module3::B")
50
- end
51
-
52
- it "will load all files specified by a glob" do
53
- should_not be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
54
- "Autoloaded::Module2::Module3::B")
55
- send(@method, "#{@base_dir}/**/*.rb", :base_dir => @autoload_base_dir).should be_true
56
- should be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
57
- "Autoloaded::Module2::Module3::B")
58
- end
59
-
60
- it "returns false if an empty input was given" do
61
- send(@method, [])
62
- send(@method, []).should be_false
63
- send(@method).should be_false
64
- end
65
-
66
- it "raises LoadError if no file or directory found" do
67
- lambda {send(@method, "not_found")}.should raise_error(LoadError)
68
- end
69
-
70
- it "raises LoadError if :base_dir doesn't exist" do
71
- lambda {send(@method, @base_dir, :base_dir => @base_dir + "/non_existing_dir")}.
72
- should raise_exception(LoadError)
73
- end
74
- end
1
+ shared_examples_for "#autoload_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', :base_dir => @autoload_base_dir)).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', :base_dir => @autoload_base_dir)).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, :base_dir => @autoload_base_dir)).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 << {:base_dir => @autoload_base_dir}))).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")
39
+ expect(send(@method, @base_dir, :base_dir => @autoload_base_dir)).to be_truthy
40
+ is_expected.to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
41
+ "Autoloaded::Module2::Module3::B")
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")
47
+ expect(send(@method, "#{@base_dir}/", :base_dir => @autoload_base_dir)).to be_truthy
48
+ is_expected.to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
49
+ "Autoloaded::Module2::Module3::B")
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")
55
+ expect(send(@method, "#{@base_dir}/**/*.rb", :base_dir => @autoload_base_dir)).to be_truthy
56
+ is_expected.to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName",
57
+ "Autoloaded::Module2::Module3::B")
58
+ end
59
+
60
+ it "returns false if an empty input was given" do
61
+ send(@method, [])
62
+ expect(send(@method, [])).to be_falsey
63
+ expect(send(@method)).to be_falsey
64
+ end
65
+
66
+ it "raises LoadError if no file or directory found" do
67
+ expect {send(@method, "not_found")}.to raise_error(LoadError)
68
+ end
69
+
70
+ it "can handle empty directories" do
71
+ # 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.
72
+ FileUtils.mkpath("#{@base_dir}/empty_dir")
73
+ FileUtils.mkpath("#{@base_dir}/nested/empty_dir")
74
+ FileUtils.mkpath("#{@base_dir}/nested/more_nested/empty_dir")
75
+
76
+ expect {send(@method, "#{@base_dir}/empty_dir")}.to_not raise_error
77
+ expect {send(@method, "#{@base_dir}/nested")}.to_not raise_error
78
+ end
79
+
80
+ it "raises LoadError if :base_dir doesn't exist" do
81
+ expect {send(@method, @base_dir, :base_dir => @base_dir + "/non_existing_dir")}.
82
+ to raise_exception(LoadError)
83
+ end
84
+ end
@@ -1,65 +1,65 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
2
- require File.dirname(__FILE__) + '/autoload_shared.rb'
3
-
4
- describe "autoload_all" do
5
-
6
- subject { self }
7
-
8
- it "provides require_all functionality by using 'autoload' instead of 'require'" do
9
- should_not be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
10
- autoload_all File.dirname(__FILE__) + "/fixtures/autoloaded"
11
- should be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
12
- end
13
-
14
- it "doesn't autoload files with wrong module names" do
15
- autoload_all File.dirname(__FILE__) + "/fixtures/autoloaded"
16
- should_not be_loaded("Autoloaded::WrongModule::WithWrongModule", "WrongModule::WithWrongModule")
17
- end
18
-
19
- it "needs to specify base_dir for autoloading if loading something from under top-level module directory" do
20
- should_not be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
21
- autoload_all File.dirname(__FILE__) + "/fixtures/autoloaded/module1"
22
- should_not be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
23
-
24
- autoload_all File.dirname(__FILE__) + "/fixtures/autoloaded/module1",
25
- :base_dir => File.dirname(__FILE__) + "/fixtures/autoloaded"
26
- should be_loaded("Autoloaded::Module1::A")
27
- should_not be_loaded("Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
28
- end
29
-
30
- before(:all) do
31
- @base_dir = File.dirname(__FILE__) + '/fixtures/autoloaded'
32
- @method = :autoload_all
33
- @autoload_base_dir = @base_dir
34
- end
35
- it_should_behave_like "#autoload_all syntactic sugar"
36
- end
37
-
38
- describe "autoload_rel" do
39
-
40
- subject { self }
41
-
42
- it "provides autoload_all functionality relative to the current file" do
43
- should_not be_loaded("Modules::Module1::First", "Modules::Module2::Second", "Modules::Zero")
44
- require File.dirname(__FILE__) + '/fixtures/autoloaded_rel/modules/zero'
45
- should be_loaded("Modules::Module1::First", "Modules::Module2::Second", "Modules::Zero")
46
- end
47
-
48
- it "needs to specify base_dir for autoloading if loading something from under top-level module directory" do
49
- should_not be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
50
- autoload_rel "./fixtures/autoloaded/module1"
51
- should_not be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
52
-
53
- autoload_rel "./fixtures/autoloaded/module1",
54
- :base_dir => File.dirname(__FILE__) + "/fixtures/autoloaded"
55
- should be_loaded("Autoloaded::Module1::A")
56
- should_not be_loaded("Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
57
- end
58
-
59
- before(:all) do
60
- @base_dir = './fixtures/autoloaded'
61
- @method = :autoload_rel
62
- @autoload_base_dir = File.dirname(__FILE__) + "/fixtures/autoloaded"
63
- end
64
- it_should_behave_like "#autoload_all syntactic sugar"
65
- end
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+ require File.dirname(__FILE__) + '/autoload_shared.rb'
3
+
4
+ describe "autoload_all" do
5
+
6
+ subject { self }
7
+
8
+ it "provides require_all functionality by using 'autoload' instead of 'require'" do
9
+ is_expected.not_to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
10
+ autoload_all File.dirname(__FILE__) + "/fixtures/autoloaded"
11
+ is_expected.to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
12
+ end
13
+
14
+ it "doesn't autoload files with wrong module names" do
15
+ autoload_all File.dirname(__FILE__) + "/fixtures/autoloaded"
16
+ is_expected.not_to be_loaded("Autoloaded::WrongModule::WithWrongModule", "WrongModule::WithWrongModule")
17
+ end
18
+
19
+ it "needs to specify base_dir for autoloading if loading something from under top-level module directory" do
20
+ is_expected.not_to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
21
+ autoload_all File.dirname(__FILE__) + "/fixtures/autoloaded/module1"
22
+ is_expected.not_to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
23
+
24
+ autoload_all File.dirname(__FILE__) + "/fixtures/autoloaded/module1",
25
+ :base_dir => File.dirname(__FILE__) + "/fixtures/autoloaded"
26
+ is_expected.to be_loaded("Autoloaded::Module1::A")
27
+ is_expected.not_to be_loaded("Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
28
+ end
29
+
30
+ before(:all) do
31
+ @base_dir = File.dirname(__FILE__) + '/fixtures/autoloaded'
32
+ @method = :autoload_all
33
+ @autoload_base_dir = @base_dir
34
+ end
35
+ it_should_behave_like "#autoload_all syntactic sugar"
36
+ end
37
+
38
+ describe "autoload_rel" do
39
+
40
+ subject { self }
41
+
42
+ it "provides autoload_all functionality relative to the current file" do
43
+ is_expected.not_to be_loaded("Modules::Module1::First", "Modules::Module2::Second", "Modules::Zero")
44
+ require File.dirname(__FILE__) + '/fixtures/autoloaded_rel/modules/zero'
45
+ is_expected.to be_loaded("Modules::Module1::First", "Modules::Module2::Second", "Modules::Zero")
46
+ end
47
+
48
+ it "needs to specify base_dir for autoloading if loading something from under top-level module directory" do
49
+ is_expected.not_to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
50
+ autoload_rel "./fixtures/autoloaded/module1"
51
+ is_expected.not_to be_loaded("Autoloaded::Module1::A", "Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
52
+
53
+ autoload_rel "./fixtures/autoloaded/module1",
54
+ :base_dir => File.dirname(__FILE__) + "/fixtures/autoloaded"
55
+ is_expected.to be_loaded("Autoloaded::Module1::A")
56
+ is_expected.not_to be_loaded("Autoloaded::Module2::LongerName", "Autoloaded::Module2::Module3::B")
57
+ end
58
+
59
+ before(:all) do
60
+ @base_dir = './fixtures/autoloaded'
61
+ @method = :autoload_rel
62
+ @autoload_base_dir = File.dirname(__FILE__) + "/fixtures/autoloaded"
63
+ end
64
+ it_should_behave_like "#autoload_all syntactic sugar"
65
+ end
@@ -1,56 +1,60 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
2
- require File.dirname(__FILE__) + '/require_shared.rb'
3
-
4
- describe "load_all" do
5
-
6
- subject { self }
7
-
8
- it "provides require_all functionality but using 'load' instead of 'require'" do
9
- require_all File.dirname(__FILE__) + '/fixtures/resolvable'
10
- C.new.should be_cool
11
-
12
- class C
13
- def cool?
14
- false
15
- end
16
- end
17
- C.new.should_not be_cool
18
-
19
- load_all File.dirname(__FILE__) + '/fixtures/resolvable'
20
- C.new.should be_cool
21
- end
22
-
23
- before(:all) do
24
- @base_dir = File.dirname(__FILE__) + '/fixtures/autoloaded'
25
- @method = :load_all
26
- end
27
- it_should_behave_like "#require_all syntactic sugar"
28
- end
29
-
30
- describe "load_rel" do
31
-
32
- subject { self }
33
-
34
- it "provides load_all functionality relative to the current file" do
35
- require File.dirname(__FILE__) + '/fixtures/relative/d/d'
36
-
37
- should be_loaded("RelativeA", "RelativeC", "RelativeD")
38
- RelativeD.new.should be_ok
39
-
40
- class RelativeD
41
- def ok?
42
- false
43
- end
44
- end
45
- RelativeD.new.should_not be_ok
46
-
47
- load File.dirname(__FILE__) + '/fixtures/relative/d/d.rb'
48
- RelativeD.new.should be_ok
49
- end
50
-
51
- before(:all) do
52
- @base_dir = './fixtures/autoloaded'
53
- @method = :load_rel
54
- end
55
- it_should_behave_like "#require_all syntactic sugar"
56
- end
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+ require File.dirname(__FILE__) + '/require_shared.rb'
3
+
4
+ describe "load_all" do
5
+
6
+ subject { self }
7
+
8
+ it "provides require_all functionality but using 'load' instead of 'require'" do
9
+ require_all File.dirname(__FILE__) + '/fixtures/resolvable'
10
+ expect(C.new).to be_cool
11
+
12
+ class C
13
+ remove_method :cool?
14
+ def cool?
15
+ false
16
+ end
17
+ end
18
+ expect(C.new).not_to be_cool
19
+ C.send :remove_method, :cool?
20
+
21
+ load_all File.dirname(__FILE__) + '/fixtures/resolvable'
22
+ expect(C.new).to be_cool
23
+ end
24
+
25
+ before(:all) do
26
+ @base_dir = File.dirname(__FILE__) + '/fixtures/autoloaded'
27
+ @method = :load_all
28
+ end
29
+ it_should_behave_like "#require_all syntactic sugar"
30
+ end
31
+
32
+ describe "load_rel" do
33
+
34
+ subject { self }
35
+
36
+ it "provides load_all functionality relative to the current file" do
37
+ require File.dirname(__FILE__) + '/fixtures/relative/d/d'
38
+
39
+ is_expected.to be_loaded("RelativeA", "RelativeC", "RelativeD")
40
+ expect(RelativeD.new).to be_ok
41
+
42
+ class RelativeD
43
+ remove_method :ok?
44
+ def ok?
45
+ false
46
+ end
47
+ end
48
+ expect(RelativeD.new).not_to be_ok
49
+ RelativeD.send :remove_method, :ok?
50
+
51
+ load File.dirname(__FILE__) + '/fixtures/relative/d/d.rb'
52
+ expect(RelativeD.new).to be_ok
53
+ end
54
+
55
+ before(:all) do
56
+ @base_dir = './fixtures/autoloaded'
57
+ @method = :load_rel
58
+ end
59
+ it_should_behave_like "#require_all syntactic sugar"
60
+ end