arb 1.1.13 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/arb/version.rb +1 -1
- data/lib/arb.rb +46 -4
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9f3c0144060b228f3882c065e068b302170c6fa
|
4
|
+
data.tar.gz: e3b43aa910c98a8337c5362fac5aba7708c3e5c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6fe26bb1acdb0e0017d0d8a509699ba1aaa55a70637300b34b01ea110df90d5da5e18e356d02e324732d8f3d92927176ef0675589f548aaed0c5b9b5e0e6265c
|
7
|
+
data.tar.gz: e52cec6c834bb3b0fe1de235686c158914558f4cdf46c8a50fb9bf0005cfc12e00cf27417e3a1bd64ea4bc2e1dfc8f79368891c89c4f09f753412f003d207027
|
data/lib/arb/version.rb
CHANGED
data/lib/arb.rb
CHANGED
@@ -1,12 +1,54 @@
|
|
1
1
|
module Kernel
|
2
2
|
def arb_use(*modules)
|
3
|
-
[]
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
imported=[]
|
4
|
+
tmp=nil
|
5
|
+
begin
|
6
|
+
loop do
|
7
|
+
tmp=modules.shift
|
8
|
+
break unless tmp
|
9
|
+
if require("arb/#{tmp}")
|
10
|
+
imported<<tmp
|
11
|
+
else
|
12
|
+
#warn("Fail to require arb/#{tmp}, maybe it had already been required!")
|
13
|
+
end
|
7
14
|
end
|
15
|
+
rescue LoadError=>e
|
16
|
+
warn("Fail to load arb/#{tmp}")
|
17
|
+
retry
|
8
18
|
end
|
19
|
+
imported
|
20
|
+
end
|
9
21
|
|
22
|
+
def arb_import(arb_module_name,forced=false)
|
23
|
+
arb_module_name=arb_module_name.to_s.capitalize!
|
24
|
+
res={:succeed=>[],:failed=>[]}
|
25
|
+
tried_arb_use=false
|
26
|
+
begin
|
27
|
+
arb_module=Module.const_get(:Arb).const_get(arb_module_name)
|
28
|
+
Kernel.class_eval do
|
29
|
+
arb_module.singleton_methods.each do |m|
|
30
|
+
if !forced && Kernel.instance_methods.include?(m)
|
31
|
+
warn("Conflict method: #{m}")
|
32
|
+
res[:failed] << m
|
33
|
+
next
|
34
|
+
end
|
35
|
+
define_method(m) do |*args,&block|
|
36
|
+
arb_module.send(m,*args,&block)
|
37
|
+
end
|
38
|
+
res[:succeed] << m
|
39
|
+
end
|
40
|
+
end
|
41
|
+
res
|
42
|
+
rescue NameError=>e
|
43
|
+
unless tried_arb_use
|
44
|
+
tried_arb_use=true
|
45
|
+
arb_use(arb_module_name.downcase)
|
46
|
+
retry
|
47
|
+
end
|
48
|
+
warn("Arb::#{arb_module_name} not found!")
|
49
|
+
end
|
10
50
|
end
|
51
|
+
|
11
52
|
alias_method :use,:arb_use
|
53
|
+
alias_method :import,:arb_import
|
12
54
|
end
|