summaryrefslogtreecommitdiffstats
path: root/lib/efl/native/elementary.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/efl/native/elementary.rb')
-rw-r--r--lib/efl/native/elementary.rb28
1 files changed, 4 insertions, 24 deletions
diff --git a/lib/efl/native/elementary.rb b/lib/efl/native/elementary.rb
index 7e2dc4d..76bc3d0 100644
--- a/lib/efl/native/elementary.rb
+++ b/lib/efl/native/elementary.rb
@@ -8,31 +8,11 @@ module Efl
#
module Elm
#
+ FCT_PREFIX = 'elm_'
+ #
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? 'elm_'+m_s
- 'elm_'+m_s
- elsif Efl::Native.respond_to? m_s
- m_s
- elsif Efl::Native.respond_to? 'elm_'+m_s+'_get'
- 'elm_'+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
#