diff options
Diffstat (limited to 'lib/efl/native/eina_hash.rb')
| -rw-r--r-- | lib/efl/native/eina_hash.rb | 28 | 
1 files changed, 4 insertions, 24 deletions
| diff --git a/lib/efl/native/eina_hash.rb b/lib/efl/native/eina_hash.rb index f1df86e..5599da4 100644 --- a/lib/efl/native/eina_hash.rb +++ b/lib/efl/native/eina_hash.rb @@ -7,31 +7,11 @@ module Efl      #      module EinaHash          # +        FCT_PREFIX = 'eina_hash_' +        #          def self.method_missing m, *args, &block -            m_s = m.to_s -            if m_s =~/^(.*)=$/ -                m_s = $1+'_set' -                args_s = '*args[0]' -            elsif m_s =~/^(.*)\?$/ -                m_s = $1+'_get' -                args_s = '*args' -            else -                args_s = '*args' -            end -            sym = ( -                if Efl::Native.respond_to? 'eina_hash_'+m_s -                    'eina_hash_'+m_s -                elsif Efl::Native.respond_to? m_s -                    m_s -                elsif Efl::Native.respond_to? 'eina_hash_'+m_s+'_get' -                    'eina_hash_'+m_s+'_get' -                elsif Efl::Native.respond_to? m_s+'_get' -                    m_s+'_get' -                else -                    raise NameError.new "#{self.name}.#{m_s} (#{m})" -                end -            ) -            self.module_eval "def self.#{m} *args, █ r=Efl::Native.#{sym}(*args); yield r if block_given?; r; end" +            sym, args_s = ModuleHelper.find_function m, FCT_PREFIX +            self.module_eval "def self.#{m} *args, █ r=Efl::Native.#{sym}(#{args_s}); yield r if block_given?; r; end"              self.send m, *args, &block          end          # | 
