Module: Rjb::JMethod
- Included in:
- Rjb_JavaClass, Rjb_JavaProxy
- Defined in:
- lib/rjb.rb
Instance Method Summary collapse
- #format_sigs(s) ⇒ Object
- #instance_method?(m) ⇒ Boolean
- #jmethods(org, klass, &blk) ⇒ Object
- #make_snake(nm) ⇒ Object
- #public_method?(m) ⇒ Boolean
- #rjb_respond_to?(sym, klass, priv) ⇒ Boolean
Instance Method Details
#format_sigs(s) ⇒ Object
92 93 94 95 96 97 98 99 100 |
# File 'lib/rjb.rb', line 92 def format_sigs(s) if s.size < 0 '' elsif s.size == 1 s[0] else "[#{s.map{|m|m.nil? ? 'void' : m}.join(', ')}]" end end |
#instance_method?(m) ⇒ Boolean
79 80 81 |
# File 'lib/rjb.rb', line 79 def instance_method?(m) m.modifiers & MODIFIER.STATIC == 0 end |
#jmethods(org, klass, &blk) ⇒ Object
85 86 87 88 89 90 91 |
# File 'lib/rjb.rb', line 85 def jmethods(org, klass, &blk) (org + klass.getMethods.select do |m| blk.call(m) end.map do |m| m.name.to_sym end).uniq end |
#make_snake(nm) ⇒ Object
101 102 103 |
# File 'lib/rjb.rb', line 101 def make_snake(nm) nm.gsub(/(.)([A-Z])/) { "#{$1}_#{$2.downcase}" } end |
#public_method?(m) ⇒ Boolean
82 83 84 |
# File 'lib/rjb.rb', line 82 def public_method?(m) (m.modifiers & MODIFIER.PUBLIC) == MODIFIER.PUBLIC end |
#rjb_respond_to?(sym, klass, priv) ⇒ Boolean
105 106 107 108 109 110 111 112 113 |
# File 'lib/rjb.rb', line 105 def rjb_respond_to?(sym, klass, priv) return true if (klass ? self : getClass).getMethods.select do |m| (klass && !instance_method?(m) && (priv || public_method?(m))) || (!klass && instance_method?(m) && (priv || public_method?(m))) end.map do |m| [m.name.to_sym, make_snake(m.name).to_sym] end.flatten.include?(sym.to_sym) rjb_org_respond_to?(sym, priv) end |