require-me 0.6.2 → 0.6.4
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.markdown +21 -1
- data/lib/playground.rb +3 -1
- data/lib/require-dsl.rb +37 -2
- data/lib/require-me.rb +1 -1
- data/lib/util/util.rb +1 -1
- data/spec/require-dsl_spec.rb +15 -13
- data/spec/require_more_spec.rb +12 -0
- data/spec/spec_helper.rb +1 -0
- metadata +13 -9
- data/spec/fixtures/game/game.rb +0 -1
- data/spec/fixtures/game/graphics/graphics.rb +0 -1
- data/spec/fixtures/game/network/network.rb +0 -1
- data/spec/fixtures/game/sound/sound.rb +0 -1
data/README.markdown
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
Includes a DSL for requiring files and folders and some also some static utility functions which can be used in combination.
|
4
4
|
These tools in combination facilitates managing requiring various subfolder structures.
|
5
|
-
FIXED
|
6
5
|
|
7
6
|
## Require DSL ##
|
8
7
|
|
@@ -57,7 +56,28 @@ Folder.enter do |folder| # use current path as folder
|
|
57
56
|
puts list.matching('sound', 'network').except(/sound/).show_require(:relative)
|
58
57
|
list.matching('sound', 'network').except(/sound/).do_require
|
59
58
|
end
|
59
|
+
end
|
60
|
+
</pre>
|
61
|
+
|
62
|
+
Using 'require_me' method #
|
63
|
+
|
64
|
+
<pre>
|
65
|
+
|
66
|
+
# lib/gamer.rb
|
67
|
+
Folder.require_me '../fixtures/game/game.rb'
|
68
|
+
Folder.enter '../fixtures/game' do |f|
|
69
|
+
f.require_me 'game.rb'
|
70
|
+
end
|
71
|
+
|
72
|
+
# Set context in block using 'enter_here' method
|
73
|
+
|
74
|
+
# fixtures/game/game.rb
|
75
|
+
# ensure context is set relative to here for require statements within block
|
76
|
+
Folder.enter_here(__FILE__) do
|
77
|
+
# require graphics within the game folder!
|
78
|
+
Folder.require_me 'graphics/graphics'
|
60
79
|
end
|
80
|
+
|
61
81
|
</pre>
|
62
82
|
|
63
83
|
## Static helpers ##
|
data/lib/playground.rb
CHANGED
data/lib/require-dsl.rb
CHANGED
@@ -13,17 +13,44 @@ module Folder
|
|
13
13
|
m.exit
|
14
14
|
end
|
15
15
|
|
16
|
+
def self.enter_here(file, &block)
|
17
|
+
m = Magic.new
|
18
|
+
path = File.dirname(file)
|
19
|
+
m.enter path
|
20
|
+
if block_given?
|
21
|
+
yield m
|
22
|
+
end
|
23
|
+
m.exit
|
24
|
+
end
|
25
|
+
|
26
|
+
|
16
27
|
def self.require_all(*folders)
|
17
28
|
return Magic.new.all.dup.extend(MagicList).do_require if folders.empty?
|
18
29
|
folders.each do |folder|
|
19
|
-
enter folder do |f|
|
30
|
+
enter folder do |f|
|
20
31
|
f.all.dup.extend(MagicList).do_require
|
21
32
|
end
|
22
33
|
end
|
23
34
|
end
|
24
35
|
|
36
|
+
def self.show_require_all(*folders)
|
37
|
+
return Magic.new.all.dup.extend(MagicList).show_require if folders.empty?
|
38
|
+
folders.each do |folder|
|
39
|
+
enter folder do |f|
|
40
|
+
f.all.dup.extend(MagicList).show_require
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
25
44
|
|
26
45
|
|
46
|
+
def self.here(file)
|
47
|
+
FileUtils.cd File.dirname(file)
|
48
|
+
self
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.require_me(*files)
|
52
|
+
return Magic.new.all(files).dup.extend(MagicList).do_require
|
53
|
+
end
|
27
54
|
|
28
55
|
module MagicList
|
29
56
|
attr_accessor :base_path
|
@@ -40,7 +67,7 @@ module Folder
|
|
40
67
|
each do |f|
|
41
68
|
if options.include? :relative
|
42
69
|
file_path = File.join(rel_path, f)
|
43
|
-
path = Require::
|
70
|
+
path = Require::Directory.relative_path(base_path, file_path)
|
44
71
|
end
|
45
72
|
path = File.join(base_path, f) if !options.include? :relative
|
46
73
|
path
|
@@ -101,6 +128,10 @@ module Folder
|
|
101
128
|
@dir_stack = []
|
102
129
|
@current_path = FileUtils.pwd
|
103
130
|
end
|
131
|
+
|
132
|
+
def to_s
|
133
|
+
"path: #{current_path}, directory stack: #{dir_stack.inspect}"
|
134
|
+
end
|
104
135
|
|
105
136
|
def enter(dir)
|
106
137
|
path = FileUtils.pwd
|
@@ -139,6 +170,10 @@ module Folder
|
|
139
170
|
end
|
140
171
|
end
|
141
172
|
end
|
173
|
+
|
174
|
+
def require_me(*files)
|
175
|
+
return all(files).dup.extend(MagicList).do_require
|
176
|
+
end
|
142
177
|
|
143
178
|
end
|
144
179
|
end
|
data/lib/require-me.rb
CHANGED
@@ -84,7 +84,7 @@ protected
|
|
84
84
|
includes_rexp = options[:include]
|
85
85
|
excludes_rexp = options[:exclude]
|
86
86
|
|
87
|
-
Dir.glob(path).each {|f|
|
87
|
+
::Dir.glob(path).each {|f|
|
88
88
|
next if excludes_rexp && match(f, excludes_rexp)
|
89
89
|
if !includes_rexp || match(f, includes_rexp)
|
90
90
|
puts_trace "require: #{f}", options
|
data/lib/util/util.rb
CHANGED
data/spec/require-dsl_spec.rb
CHANGED
@@ -3,18 +3,17 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
3
3
|
describe "RequireMagic" do
|
4
4
|
it "Folder.enter works " do
|
5
5
|
puts FileUtils.pwd
|
6
|
-
Folder.enter 'fixtures/game' do |folder|
|
7
|
-
puts "Current 1:" + folder.current_path
|
6
|
+
Folder.enter '../fixtures/game' do |folder|
|
7
|
+
# puts "Current 1:" + folder.current_path
|
8
8
|
end
|
9
|
-
Folder.enter('fixtures/game') do |folder|
|
10
|
-
puts "Current 2:" + folder.current_path
|
9
|
+
Folder.enter('../fixtures/game') do |folder|
|
10
|
+
# puts "Current 2:" + folder.current_path
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
it "just works " do
|
15
|
-
Folder.enter 'fixtures' do |folder| # oops!
|
15
|
+
Folder.enter '../fixtures' do |folder| # oops!
|
16
16
|
folder.enter 'game' do |f|
|
17
|
-
puts f
|
18
17
|
list = folder.all('**/*.rb')
|
19
18
|
l1 = list.matching( 'sound', 'network').except(/sound/).do_require
|
20
19
|
l1_res = l1.show_require(:relative).inspect
|
@@ -27,28 +26,31 @@ describe "RequireMagic" do
|
|
27
26
|
end
|
28
27
|
|
29
28
|
it "works with require_all " do
|
30
|
-
Folder.enter('fixtures/game') do |folder|
|
31
|
-
puts "Current 1:" + folder.current_path
|
29
|
+
Folder.enter('../fixtures/game') do |folder|
|
30
|
+
# puts "Current 1:" + folder.current_path
|
32
31
|
folder.require_all 'graphics', 'network', 'sound'
|
33
32
|
end
|
34
33
|
end
|
35
34
|
|
36
35
|
it "works with require_all " do
|
37
|
-
Folder.
|
36
|
+
Folder.require_me '../fixtures/game/game.rb'
|
37
|
+
|
38
|
+
Folder.enter '../fixtures/game' do |f|
|
38
39
|
f.require_all
|
40
|
+
f.require_me 'game.rb'
|
39
41
|
end
|
40
42
|
end
|
41
43
|
|
42
44
|
it "works with require_all " do
|
43
|
-
Folder.require_all 'fixtures'
|
45
|
+
Folder.require_all '../fixtures'
|
44
46
|
end
|
45
47
|
|
46
48
|
|
47
49
|
it "works with base folder " do
|
48
|
-
Folder.enter 'fixtures' do |folder|
|
49
|
-
puts "Current 2:" + folder.current_path
|
50
|
+
Folder.enter '../fixtures' do |folder|
|
51
|
+
# puts "Current 2:" + folder.current_path
|
50
52
|
folder.enter 'game' do |f|
|
51
|
-
puts f
|
53
|
+
# puts f
|
52
54
|
f.require_all
|
53
55
|
list = f.all # ('**/*.rb')
|
54
56
|
l1 = list.matching( 'sound', 'network').except(/sound/).show_require(:relative).inspect
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe "static folder functions" do
|
4
|
+
it "show work with here" do
|
5
|
+
Folder.here(__FILE__).require_me '../fixtures/game/game.rb'
|
6
|
+
end
|
7
|
+
|
8
|
+
it "show work with require_me" do
|
9
|
+
Folder.require_me '../fixtures/game/game.rb'
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: require-me
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 6
|
8
|
+
- 4
|
9
|
+
version: 0.6.4
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Kristian Mandrup
|
@@ -9,7 +14,7 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-03-
|
17
|
+
date: 2010-03-18 00:00:00 -04:00
|
13
18
|
default_executable:
|
14
19
|
dependencies: []
|
15
20
|
|
@@ -42,27 +47,26 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
42
47
|
requirements:
|
43
48
|
- - ">="
|
44
49
|
- !ruby/object:Gem::Version
|
50
|
+
segments:
|
51
|
+
- 0
|
45
52
|
version: "0"
|
46
|
-
version:
|
47
53
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
54
|
requirements:
|
49
55
|
- - ">="
|
50
56
|
- !ruby/object:Gem::Version
|
57
|
+
segments:
|
58
|
+
- 0
|
51
59
|
version: "0"
|
52
|
-
version:
|
53
60
|
requirements: []
|
54
61
|
|
55
62
|
rubyforge_project:
|
56
|
-
rubygems_version: 1.3.
|
63
|
+
rubygems_version: 1.3.6
|
57
64
|
signing_key:
|
58
65
|
specification_version: 3
|
59
66
|
summary: Facilitates requiring select ruby files in folders
|
60
67
|
test_files:
|
61
|
-
- spec/fixtures/game/game.rb
|
62
|
-
- spec/fixtures/game/graphics/graphics.rb
|
63
|
-
- spec/fixtures/game/network/network.rb
|
64
|
-
- spec/fixtures/game/sound/sound.rb
|
65
68
|
- spec/require-dsl_spec.rb
|
69
|
+
- spec/require_more_spec.rb
|
66
70
|
- spec/spec_helper.rb
|
67
71
|
- test/test_require_folder.rb
|
68
72
|
- test/test_require_folders.rb
|
data/spec/fixtures/game/game.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
puts "Game was included"
|
@@ -1 +0,0 @@
|
|
1
|
-
puts "Graphics was included"
|
@@ -1 +0,0 @@
|
|
1
|
-
puts "Network was included"
|
@@ -1 +0,0 @@
|
|
1
|
-
puts "Sound was included"
|