require_tree 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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