require_pattern 1.0 → 1.1
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.
- checksums.yaml +4 -4
- data/Gemfile +0 -0
- data/LICENSE +0 -0
- data/README.md +9 -1
- data/lib/coloring.rb +11 -0
- data/lib/require_pattern.rb +9 -7
- data/require_pattern.gemspec +4 -4
- data/spec/dummy/bad.rb +0 -0
- data/spec/dummy/colors/green.rb +0 -0
- data/spec/dummy/colors/red.rb +0 -0
- data/spec/dummy/dependancies/car.rb +0 -0
- data/spec/dummy/dependancies/golf.rb +0 -0
- data/spec/dummy/dependancies/vehicle.rb +0 -0
- data/spec/dummy/dependancies/volkswagen.rb +0 -0
- data/spec/dummy/loaded.rb +0 -0
- data/spec/dummy/shapes/cirlcle.rb +0 -0
- data/spec/dummy/shapes/square.rb +0 -0
- data/spec/dummy/sizes/short.rb +0 -0
- data/spec/dummy/sizes/tall.rb +0 -0
- data/spec/{spec.rb → require_pattern_test.rb} +24 -19
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 306c0f36d5cf455c9a918f67e8aa751f46f4e674
|
4
|
+
data.tar.gz: d408e62fdfe7ed191913483a28b8e6d7ec8c60ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5d518fe6dc8f76624d8b97606a0ca13eafb95d7dde695dfa69cf6dbb247c830217c2da68eeddd0a8e7a68b923561327f35dae39e93f6435bc6061ac6638b712
|
7
|
+
data.tar.gz: 8be2a0b4ff662265a041c73d7c4ed97ac8fdb484b7fc0a971e10c5fd6599cfd396c7ff9534553069e978fbea470fd7ec2739fcbcab4b01e73b20ec590ba5df9a
|
data/Gemfile
CHANGED
File without changes
|
data/LICENSE
CHANGED
File without changes
|
data/README.md
CHANGED
@@ -22,4 +22,12 @@ Usage is relatively intuitive. Simply call either `require_pattern` or `require_
|
|
22
22
|
require_pattern 'lib/**/*.rb', 'models/**/*.rb'
|
23
23
|
```
|
24
24
|
|
25
|
-
Any files that refuse to load will be reported to STDERR with backtrace information.
|
25
|
+
Any files that refuse to load will be reported to STDERR with backtrace information.
|
26
|
+
|
27
|
+
|
28
|
+
Tests
|
29
|
+
-----
|
30
|
+
|
31
|
+
```bash
|
32
|
+
mtest spec
|
33
|
+
```
|
data/lib/coloring.rb
ADDED
data/lib/require_pattern.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
require '
|
1
|
+
require 'coloring'
|
2
2
|
|
3
3
|
module Kernel
|
4
|
-
|
5
4
|
# Requires all files matching the glob patterns provided.
|
6
5
|
# If a file fails to load, it keeps retrying until all remaining files fail to load, in which case the exception is
|
7
6
|
# output to STDERR for each failed file.
|
@@ -21,17 +20,20 @@ module Kernel
|
|
21
20
|
if require_map.empty?
|
22
21
|
break loaded
|
23
22
|
elsif remaining.nil?
|
24
|
-
STDERR.puts "\nSome files failed:"
|
25
|
-
require_map.each { |file, e| STDERR.puts
|
23
|
+
STDERR.puts ReqPat::Coloring.red("\nSome files failed:")
|
24
|
+
require_map.each { |file, e| STDERR.puts
|
25
|
+
ReqPat::Coloring.red(" #{file}: ") +
|
26
|
+
ReqPat::Coloring.yellow("#{e.backtrace[0]} #{e}")
|
27
|
+
}
|
26
28
|
STDERR.puts
|
27
|
-
raise LoadError, "One or more files failed to load. See STDERR output for details."
|
29
|
+
raise LoadError, "One or more files failed to load. See STDERR output for details."
|
28
30
|
end
|
29
31
|
end
|
30
32
|
end
|
31
|
-
|
33
|
+
|
32
34
|
def require_relative_pattern(*patterns)
|
33
35
|
caller_path = caller_locations(1,1)[0].path
|
34
36
|
patterns.map! { |pattern| File.join(File.dirname(caller_path), pattern) }
|
35
37
|
require_pattern(*patterns)
|
36
38
|
end
|
37
|
-
end
|
39
|
+
end
|
data/require_pattern.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
$LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
|
2
2
|
|
3
|
-
Gem::Specification.new 'require_pattern', '1.
|
3
|
+
Gem::Specification.new 'require_pattern', '1.1' do |s|
|
4
4
|
s.summary = 'Requires files based on a pattern in a robust and optimistic manner.'
|
5
5
|
s.authors = ['Tom Wardrop']
|
6
6
|
s.email = 'tom@tomwardrop.com'
|
@@ -11,6 +11,6 @@ Gem::Specification.new 'require_pattern', '1.0' do |s|
|
|
11
11
|
s.rdoc_options = %w[--line-numbers --inline-source --title Scorched --encoding=UTF-8]
|
12
12
|
|
13
13
|
s.required_ruby_version = '>= 1.9.3'
|
14
|
-
s.
|
15
|
-
s.add_development_dependency '
|
16
|
-
end
|
14
|
+
s.add_development_dependency 'maxitest'
|
15
|
+
s.add_development_dependency 'mocha'
|
16
|
+
end
|
data/spec/dummy/bad.rb
CHANGED
File without changes
|
data/spec/dummy/colors/green.rb
CHANGED
File without changes
|
data/spec/dummy/colors/red.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/spec/dummy/loaded.rb
CHANGED
File without changes
|
File without changes
|
data/spec/dummy/shapes/square.rb
CHANGED
File without changes
|
data/spec/dummy/sizes/short.rb
CHANGED
File without changes
|
data/spec/dummy/sizes/tall.rb
CHANGED
File without changes
|
@@ -1,43 +1,48 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.setup
|
3
|
+
require "maxitest/autorun"
|
4
|
+
require "mocha/mini_test"
|
5
|
+
|
1
6
|
require_relative '../lib/require_pattern'
|
2
7
|
Dir.chdir File.expand_path('../dummy', __FILE__)
|
3
8
|
|
4
9
|
describe 'require_pattern' do
|
5
10
|
it "requires relative to the current working directory by default" do
|
6
11
|
require_pattern 'colors/*.rb'
|
7
|
-
$red.
|
8
|
-
$green.
|
12
|
+
$red.must_equal true
|
13
|
+
$green.must_equal true
|
9
14
|
end
|
10
15
|
|
11
16
|
it "can require relative to the current file" do
|
12
17
|
require_relative_pattern 'dummy/sizes/*.rb'
|
13
|
-
$tall.
|
14
|
-
$short.
|
18
|
+
$tall.must_equal true
|
19
|
+
$short.must_equal true
|
15
20
|
end
|
16
|
-
|
21
|
+
|
17
22
|
it "overcomes file ordering issues by intelligently retrying" do
|
18
23
|
require_relative_pattern 'dummy/dependancies/*.rb'
|
19
24
|
Golf
|
20
25
|
end
|
21
|
-
|
26
|
+
|
22
27
|
it "reports true only if a file was loaded" do
|
23
|
-
require_pattern('loaded.rb').
|
24
|
-
require_pattern('loaded.rb').
|
28
|
+
require_pattern('loaded.rb').must_equal true
|
29
|
+
require_pattern('loaded.rb').wont_equal true
|
25
30
|
end
|
26
|
-
|
31
|
+
|
27
32
|
it "can take multiple patterns" do
|
28
|
-
require_pattern('colors/*.rb', 'shapes/*.rb').
|
29
|
-
$circle
|
30
|
-
$square
|
33
|
+
require_pattern('colors/*.rb', 'shapes/*.rb').must_equal true
|
34
|
+
assert $circle
|
35
|
+
assert $square
|
31
36
|
end
|
32
|
-
|
37
|
+
|
33
38
|
it "outputs to STDERR on failure" do
|
34
|
-
STDERR.
|
35
|
-
|
39
|
+
STDERR.expects(:puts).at_least(2)
|
40
|
+
lambda {
|
36
41
|
require_pattern 'bad.*'
|
37
|
-
}.
|
42
|
+
}.must_raise LoadError
|
38
43
|
end
|
39
|
-
|
44
|
+
|
40
45
|
it "doesn't care if it doesn't match any files" do
|
41
|
-
require_pattern('good luck matching this').
|
46
|
+
require_pattern('good luck matching this').must_equal false
|
42
47
|
end
|
43
|
-
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: require_pattern
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.1'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Wardrop
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: maxitest
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
|
-
type: :
|
20
|
+
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: mocha
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
description:
|
@@ -47,6 +47,7 @@ files:
|
|
47
47
|
- Gemfile
|
48
48
|
- LICENSE
|
49
49
|
- README.md
|
50
|
+
- lib/coloring.rb
|
50
51
|
- lib/require_pattern.rb
|
51
52
|
- require_pattern.gemspec
|
52
53
|
- spec/dummy/bad.rb
|
@@ -61,35 +62,34 @@ files:
|
|
61
62
|
- spec/dummy/shapes/square.rb
|
62
63
|
- spec/dummy/sizes/short.rb
|
63
64
|
- spec/dummy/sizes/tall.rb
|
64
|
-
- spec/
|
65
|
+
- spec/require_pattern_test.rb
|
65
66
|
homepage: http://github.com/wardrop/RequirePattern
|
66
67
|
licenses:
|
67
68
|
- MIT
|
68
69
|
metadata: {}
|
69
70
|
post_install_message:
|
70
71
|
rdoc_options:
|
71
|
-
- --line-numbers
|
72
|
-
- --inline-source
|
73
|
-
- --title
|
72
|
+
- "--line-numbers"
|
73
|
+
- "--inline-source"
|
74
|
+
- "--title"
|
74
75
|
- Scorched
|
75
|
-
- --encoding=UTF-8
|
76
|
+
- "--encoding=UTF-8"
|
76
77
|
require_paths:
|
77
78
|
- lib
|
78
79
|
required_ruby_version: !ruby/object:Gem::Requirement
|
79
80
|
requirements:
|
80
|
-
- -
|
81
|
+
- - ">="
|
81
82
|
- !ruby/object:Gem::Version
|
82
83
|
version: 1.9.3
|
83
84
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
85
|
requirements:
|
85
|
-
- -
|
86
|
+
- - ">="
|
86
87
|
- !ruby/object:Gem::Version
|
87
88
|
version: '0'
|
88
89
|
requirements: []
|
89
90
|
rubyforge_project:
|
90
|
-
rubygems_version: 2.
|
91
|
+
rubygems_version: 2.2.2
|
91
92
|
signing_key:
|
92
93
|
specification_version: 4
|
93
94
|
summary: Requires files based on a pattern in a robust and optimistic manner.
|
94
|
-
test_files:
|
95
|
-
- spec/spec.rb
|
95
|
+
test_files: []
|