require-magic 0.4.1 → 0.5.0
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 +12 -10
- data/lib/require-dsl.rb +18 -12
- data/spec/require-dsl_spec.rb +22 -5
- metadata +2 -2
data/README.rdoc
CHANGED
@@ -11,31 +11,33 @@ require 'require_magic'
|
|
11
11
|
# alternatively to only include require_dsl
|
12
12
|
require 'require_dsl'
|
13
13
|
|
14
|
-
|
14
|
+
Folder.enter [path relative to current file location] do |folder|
|
15
15
|
# from new location, enter a subdir
|
16
|
-
|
17
|
-
|
16
|
+
folder.enter [subdir] do |path|
|
17
|
+
folder.all('**/*.rb').except(/sound\/*.rb/).require
|
18
18
|
end
|
19
19
|
|
20
20
|
# from new location, enter a subdir
|
21
|
-
|
21
|
+
folder.enter [another subdir] do |path|
|
22
22
|
# use file blobs here
|
23
|
-
|
23
|
+
folder.all('**/*.rb').require
|
24
24
|
end
|
25
25
|
|
26
26
|
# from new location, enter a subdir
|
27
|
-
|
27
|
+
folder.enter [yet another subdir] do |path|
|
28
28
|
# matching and except are to be used as include and exclude filters
|
29
29
|
# they each take a list containing regular expressions and strings
|
30
30
|
# string arguments are postfixed with .rb internally if not present
|
31
|
-
|
31
|
+
folder.all('blip/**/*.rb').matching(/_mixin.rb/, /.*\/power/).except(/sound/, /disco/).require
|
32
32
|
end
|
33
33
|
|
34
34
|
end
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
# use current path as folder
|
37
|
+
Folder.enter do |folder|
|
38
|
+
folder.all('**/*.rb').require
|
39
|
+
folder.enter 'game' do |path|
|
40
|
+
list = folder.all('**/*.rb')
|
39
41
|
# puts list.matching('sound', 'network').except(/sound/).show_require(:relative)
|
40
42
|
list.matching('sound', 'network').except(/sound/).require
|
41
43
|
end
|
data/lib/require-dsl.rb
CHANGED
@@ -2,18 +2,24 @@ require 'rake'
|
|
2
2
|
require 'fileutils'
|
3
3
|
require 'util/util'
|
4
4
|
|
5
|
-
module
|
5
|
+
module Folder
|
6
6
|
|
7
|
-
def self.
|
8
|
-
|
7
|
+
def self.enter(path = '.', &block)
|
8
|
+
m = Magic.new
|
9
|
+
m.enter path
|
10
|
+
yield m
|
11
|
+
m.dir_stack.pop
|
9
12
|
end
|
10
13
|
|
11
14
|
module MagicList
|
12
15
|
attr_accessor :base_path
|
13
16
|
attr_accessor :rel_path
|
14
17
|
|
15
|
-
def
|
16
|
-
|
18
|
+
def do_require
|
19
|
+
each do |file|
|
20
|
+
require file
|
21
|
+
end
|
22
|
+
self
|
17
23
|
end
|
18
24
|
|
19
25
|
def show_require(*options)
|
@@ -77,25 +83,25 @@ module Require
|
|
77
83
|
attr_accessor :current_path
|
78
84
|
attr_accessor :dir_stack
|
79
85
|
|
80
|
-
def initialize
|
86
|
+
def initialize
|
81
87
|
@dir_stack = []
|
82
88
|
@current_path = FileUtils.pwd
|
83
|
-
@current_path = enter(dir)
|
84
89
|
end
|
85
90
|
|
86
91
|
def enter(dir)
|
87
92
|
FileUtils.cd dir
|
88
|
-
dir_stack.push path = FileUtils.pwd
|
93
|
+
dir_stack.push path = FileUtils.pwd
|
89
94
|
@current_path = path
|
90
95
|
if block_given?
|
91
|
-
yield path
|
92
|
-
|
93
|
-
|
96
|
+
yield path
|
97
|
+
current_path = dir_stack.last
|
98
|
+
old_dir = dir_stack.last if dir_stack.pop
|
99
|
+
FileUtils.cd old_dir if old_dir
|
94
100
|
end
|
95
101
|
path
|
96
102
|
end
|
97
103
|
|
98
|
-
def
|
104
|
+
def all(*globs)
|
99
105
|
list = FileList.new(globs)
|
100
106
|
list.extend(MagicList)
|
101
107
|
list.base_path = dir_stack.first
|
data/spec/require-dsl_spec.rb
CHANGED
@@ -2,15 +2,32 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
2
|
|
3
3
|
describe "RequireMagic" do
|
4
4
|
it "works" do
|
5
|
-
|
6
|
-
|
7
|
-
list =
|
8
|
-
l1 = list.matching( 'sound', 'network').except(/sound/).
|
9
|
-
l1.
|
5
|
+
Folder.enter '../spec/fixtures' do |folder|
|
6
|
+
folder.enter 'game' do |path|
|
7
|
+
list = folder.all('**/*.rb')
|
8
|
+
l1 = list.matching( 'sound', 'network').except(/sound/).do_require
|
9
|
+
l1_res = l1.show_require(:relative).inspect
|
10
|
+
l1_res.should include("network/network.rb")
|
10
11
|
|
11
12
|
l2 = list.matching( '*/sound', 'network').show_require(:relative).inspect
|
12
13
|
l2.should include("network/network.rb")
|
13
14
|
end
|
14
15
|
end
|
15
16
|
end
|
17
|
+
|
18
|
+
it "works with base folder " do
|
19
|
+
Folder.enter do |folder|
|
20
|
+
puts folder.current_path
|
21
|
+
folder.enter 'game' do |path|
|
22
|
+
list = folder.all('**/*.rb')
|
23
|
+
l1 = list.matching( 'sound', 'network').except(/sound/).show_require(:relative).inspect
|
24
|
+
l1.should include("network/network.rb")
|
25
|
+
|
26
|
+
l2 = list.matching( '*/sound', 'network').show_require(:relative).inspect
|
27
|
+
l2.should include("network/network.rb")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
|
16
33
|
end
|
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.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kristian Mandrup
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-03-
|
12
|
+
date: 2010-03-03 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|