require_all 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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