arb 1.2.7 → 1.2.8
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.
- checksums.yaml +4 -4
- data/lib/arb.rb +21 -27
- data/lib/arb/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d454532830cbf8751a94aa4a5e781c6ee6a525f710fd35e04d285b04fabf121
|
4
|
+
data.tar.gz: 439f987eac66dcf5e973c702abd03e8254fbd2f8ff52dfe6c1734e2ac27555f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26cb7ed457e96f6073965b41181da303d63215e479ab80feec350d28aaa897ddbcf5b4a9f827dbfd6dbcdd5d0b24bbc2645d877145b897077c67f4908a6b93fd
|
7
|
+
data.tar.gz: 268f5ecc8e6dc03ede632c6cb49e7209b73cfab73497c08f7ec9fe3c55a98b60c3aabfb815eb503a5ec39385e5f2feb951534049a90111cdbd1580aed9c9a483
|
data/lib/arb.rb
CHANGED
@@ -8,7 +8,7 @@ module Kernel
|
|
8
8
|
loop do
|
9
9
|
tmp=modules.shift
|
10
10
|
break unless tmp
|
11
|
-
if require("arb/#{tmp}")
|
11
|
+
if require("arb/#{tmp.downcase}")
|
12
12
|
imported<<tmp
|
13
13
|
else
|
14
14
|
#warn("Fail to require arb/#{tmp}, maybe it had already been required!")
|
@@ -23,37 +23,31 @@ module Kernel
|
|
23
23
|
|
24
24
|
def arb_use(arb_module_name,prefix=nil,forced=false)
|
25
25
|
prefix="#{prefix}_" if prefix && !prefix.to_s.end_with?('_')
|
26
|
-
arb_module_name=arb_module_name.to_s.capitalize
|
26
|
+
arb_module_name=arb_module_name.to_s.capitalize.to_sym
|
27
27
|
res={:succeed=>[],:failed=>[]}
|
28
28
|
tried_arb_use=false
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
arb_module.send(m,*args,&block)
|
41
|
-
end
|
42
|
-
res[:succeed] << mm
|
29
|
+
#always try to import
|
30
|
+
arb_import arb_module_name
|
31
|
+
return nil unless Arb.constants.include?(arb_module_name)
|
32
|
+
arb_module=Module.const_get(:Arb).const_get(arb_module_name)
|
33
|
+
Kernel.class_eval do
|
34
|
+
arb_module.singleton_methods.each do |m|
|
35
|
+
mm=prefix.to_s+m.to_s
|
36
|
+
if !forced && Kernel.instance_methods.include?(mm)
|
37
|
+
warn("Conflict method: #{mm}")
|
38
|
+
res[:failed] << mm
|
39
|
+
next
|
43
40
|
end
|
41
|
+
define_method(mm) do |*args,&block|
|
42
|
+
arb_module.send(m,*args,&block)
|
43
|
+
end
|
44
|
+
res[:succeed] << mm
|
44
45
|
end
|
45
|
-
res
|
46
|
-
rescue NameError=>e
|
47
|
-
#Note that NoMethodError is subclass of NameError, which means that
|
48
|
-
#invoking nil.xxx(that throws NoMethodError) will also lead to the
|
49
|
-
#Name Error, we have to make sure that e is the instance of NameError!!!
|
50
|
-
if e.instance_of?(NameError) && !tried_arb_use
|
51
|
-
tried_arb_use=true
|
52
|
-
arb_import(arb_module_name.downcase)
|
53
|
-
retry
|
54
|
-
end
|
55
|
-
warn("Arb::#{arb_module_name} not found!")
|
56
46
|
end
|
47
|
+
res
|
48
|
+
#Note that NoMethodError is subclass of NameError, which means that
|
49
|
+
#invoking nil.xxx(that throws NoMethodError) will also lead to the
|
50
|
+
#Name Error, we have to make sure that e is the instance of NameError!!!
|
57
51
|
end
|
58
52
|
|
59
53
|
alias_method :import,:arb_import
|
data/lib/arb/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- arybin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|