require_tree 0.1.0 → 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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ingwen.rb +29 -6
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c45cb9e35a5809b5fea20f540b314033a4f0c4de
4
- data.tar.gz: 50bf1e681e147a0639e042d2181b7f1fcacec494
3
+ metadata.gz: 7f18df98516b96f9ba0477750e149966f2a53bca
4
+ data.tar.gz: 3b64077fee8fead14413d80c1b1d4cb2e386e28b
5
5
  SHA512:
6
- metadata.gz: 36b715145f37b0a178e599715fdddb18c51cc59f3c4eadc1779c31e3a09c574c9472a2682d3ad2cb42442431ffd916dbf26baf71998fc9a8d7aa8ae4027fe864
7
- data.tar.gz: 853eb9e1daadabe5e396018f16d2c59bfbdfd65fb42f5cbcaf7b27a379c456e9debd75889511bcbb96103bdb9bb718148370cc453d25945c1fcc620e37526be6
6
+ metadata.gz: db31b55c2a565c9ad6d8a267c2769fd71b9bc4ee93c947540ee03682b8b0b5589560cac9955233962aa6925cacfcf56bdceae4065afda39e80ae67fc2a809274
7
+ data.tar.gz: 34772bf4adb236143ea45ca03618ef2ed1a90e76cccd97749af02b2cb38fcc76544b3a16cdd90510b3c4875b20edcb0b6468bb79f559dccd3a899a9c1286b0b8
data/lib/ingwen.rb CHANGED
@@ -1,11 +1,34 @@
1
1
  module Kernel
2
- def require_tree path,base=Dir.pwd
3
- Dir["#{base}/#{path}/*"].each {|file|
4
- if File.directory? file
5
- require_tree '.', file
6
- elsif file =~ /\.rb$/
7
- require_relative file
2
+ def require_tree path
3
+ rb_files_queue = []
4
+ parse_path path, Dir.pwd, rb_files_queue
5
+ try_and_error rb_files_queue
6
+ end
7
+
8
+ private
9
+ def parse_path path, base, queue
10
+ Dir["#{base}/#{path}/*"].each {|path|
11
+ begin
12
+ if File.directory? path
13
+ parse_path '.', path, queue
14
+ elsif path =~ /\.rb$/
15
+ queue << path
16
+ end
8
17
  end
9
18
  }
10
19
  end
20
+
21
+ def try_and_error queue
22
+ max_count = queue.count
23
+ loaded = []
24
+ queue.each_with_index do |file, i|
25
+ begin
26
+ require file
27
+ loaded << file
28
+ rescue Exception => e
29
+ next
30
+ end
31
+ end
32
+ try_and_error(queue - loaded) if loaded.count > 0
33
+ end
11
34
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: require_tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim.W