require-me 0.5.6 → 0.6.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.markdown CHANGED
@@ -44,7 +44,7 @@ If no argument, current path is used as initial folder
44
44
  require 'require-me' # include both the static require helpers and the DSL require language
45
45
 
46
46
  Folder.enter do |folder| # use current path as folder
47
- folder.enter 'game' do |f|
47
+ folder.enter 'game' do |f| # enter doesn't work with special folders '.' and '..' yet
48
48
  folder.require_all # require all .rb files within this folder!
49
49
 
50
50
  `# use static require functions`
data/lib/playground.rb ADDED
@@ -0,0 +1,9 @@
1
+ def run(a, &block)
2
+ puts "hello"
3
+ yield a
4
+ puts "goodbye"
5
+ end
6
+
7
+ run "A" do |a|
8
+ puts a * 2
9
+ end
data/lib/require-dsl.rb CHANGED
@@ -5,11 +5,17 @@ require 'util/util'
5
5
  module Folder
6
6
 
7
7
  def self.enter(path = '.', &block)
8
- m = Magic.new
9
- m.enter path
10
- yield m
11
- m.dir_stack.pop
12
- end
8
+ m = Magic.new
9
+ puts "Path:#{path}"
10
+ paths = path.split('/')
11
+ puts paths
12
+ paths.each{|p| m.enter p}
13
+ if block_given?
14
+ yield m
15
+ end
16
+ puts "Path:#{path}"
17
+ path.split('/').each{|p| m.exit p }
18
+ end
13
19
 
14
20
  module MagicList
15
21
  attr_accessor :base_path
@@ -88,19 +94,27 @@ module Folder
88
94
  @current_path = FileUtils.pwd
89
95
  end
90
96
 
91
- def enter(dir)
92
- FileUtils.cd dir
97
+ def enter(dir)
98
+ puts "cd #{dir}"
99
+ FileUtils.cd dir if !dir.empty?
93
100
  dir_stack.push path = FileUtils.pwd
94
101
  @current_path = path
95
102
  if block_given?
96
- yield self
97
- current_path = dir_stack.last
98
- old_dir = dir_stack.last if dir_stack.pop
99
- FileUtils.cd old_dir if old_dir
103
+ yield self
104
+ exit(dir)
100
105
  end
101
106
  self
102
107
  end
103
108
 
109
+ def exit(dir)
110
+ current_path = dir_stack.last
111
+ old_dir = dir_stack.last if dir_stack.pop
112
+ puts "cd .."
113
+ # FileUtils.cd old_dir if old_dir
114
+ FileUtils.cd '..'
115
+ end
116
+
117
+
104
118
  def all(*globs)
105
119
  globs = '**/*.rb' if globs.empty?
106
120
  list = FileList.new(globs)
@@ -110,8 +124,13 @@ module Folder
110
124
  list.freeze
111
125
  end
112
126
 
113
- def require_all
114
- all.dup.extend(MagicList).do_require
127
+ def require_all(*folders)
128
+ return all.dup.extend(MagicList).do_require if folders.empty?
129
+ folders.each do |folder|
130
+ enter folder do |f|
131
+ f.all.dup.extend(MagicList).do_require
132
+ end
133
+ end
115
134
  end
116
135
 
117
136
  end
@@ -1,24 +1,41 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
3
  describe "RequireMagic" do
4
- it "works" do
5
- Folder.enter '../spec/fixtures' do |folder|
4
+ it "Folder.enter works " do
5
+ puts FileUtils.pwd
6
+ Folder.enter 'fixtures/game' do |folder|
7
+ puts "Current 1:" + folder.current_path
8
+ end
9
+ Folder.enter('fixtures/game') do |folder|
10
+ puts "Current 2:" + folder.current_path
11
+ end
12
+ end
13
+
14
+ it "just works " do
15
+ Folder.enter 'fixtures' do |folder| # oops!
6
16
  folder.enter 'game' do |f|
7
17
  puts f
8
18
  list = folder.all('**/*.rb')
9
19
  l1 = list.matching( 'sound', 'network').except(/sound/).do_require
10
20
  l1_res = l1.show_require(:relative).inspect
11
21
  l1_res.should include("network/network.rb")
12
-
22
+
13
23
  l2 = list.matching( '*/sound', 'network').show_require(:relative).inspect
14
24
  l2.should include("network/network.rb")
15
25
  end
16
26
  end
17
27
  end
18
-
19
- it "works with base folder " do
20
- Folder.enter do |folder|
21
- puts folder.current_path
28
+
29
+ it "works with require_all " do
30
+ Folder.enter('fixtures/game') do |folder|
31
+ puts "Current 1:" + folder.current_path
32
+ # f.require_all 'graphics', 'network', 'sound'
33
+ end
34
+ end
35
+
36
+ it "works with base folder " do
37
+ Folder.enter 'fixtures' do |folder|
38
+ puts "Current 2:" + folder.current_path
22
39
  folder.enter 'game' do |f|
23
40
  puts f
24
41
  f.require_all
@@ -27,13 +44,9 @@ describe "RequireMagic" do
27
44
  l1.should include("network/network.rb")
28
45
 
29
46
  l2 = list.matching( '*/sound', 'network').show_require(:relative).inspect
30
- l2.should include("network/network.rb")
31
-
32
-
33
-
47
+ l2.should include("network/network.rb")
34
48
  end
35
49
  end
36
- end
37
-
50
+ end
38
51
 
39
52
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: require-me
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.6.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-05 00:00:00 -04:00
12
+ date: 2010-03-06 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -23,6 +23,7 @@ extra_rdoc_files:
23
23
  - LICENSE
24
24
  - README.markdown
25
25
  files:
26
+ - lib/playground.rb
26
27
  - lib/require-dsl.rb
27
28
  - lib/require-me.rb
28
29
  - lib/util/util.rb