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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/arb.rb +21 -27
  3. data/lib/arb/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4ddadc6ffd2b754d3d63791fdd01f31997d5d05c18e041fb3038b82a2d774a2
4
- data.tar.gz: d9fb9329a49647697db941edcd868a234aadcfe4cc07a411ac66192b55a611f7
3
+ metadata.gz: 8d454532830cbf8751a94aa4a5e781c6ee6a525f710fd35e04d285b04fabf121
4
+ data.tar.gz: 439f987eac66dcf5e973c702abd03e8254fbd2f8ff52dfe6c1734e2ac27555f5
5
5
  SHA512:
6
- metadata.gz: eb3c50b9711396d38ef262c28948b2e6cf9cb01ef2e7924b1016ffde8453c42547ce9ecda1e9f9ad07c3d3d902de5c30446e6509cc6b5da03a147adad6a3ee7c
7
- data.tar.gz: dd62f1dc4c30aab862c51a8995cf826431222b4d5ff3465d67c53592dc8e283d25b124f4ffc66fb1f3caed8481489126b4ff9a86d043102eb700b2ce298efe0f
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
- begin
30
- arb_module=Module.const_get(:Arb).const_get(arb_module_name)
31
- Kernel.class_eval do
32
- arb_module.singleton_methods.each do |m|
33
- mm=prefix.to_s+m.to_s
34
- if !forced && Kernel.instance_methods.include?(mm)
35
- warn("Conflict method: #{mm}")
36
- res[:failed] << mm
37
- next
38
- end
39
- define_method(mm) do |*args,&block|
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
@@ -1,3 +1,3 @@
1
1
  module Arb
2
- VERSION = "1.2.7"
2
+ VERSION = "1.2.8"
3
3
  end
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.7
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-12 00:00:00.000000000 Z
11
+ date: 2018-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler