From bd1c6ade69608ef3d659dd397d0543a66026a443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Fri, 3 May 2013 10:22:41 +0200 Subject: move Efl::MethodResolver from efl.rb into native.rb --- lib/efl.rb | 30 ------------------------------ lib/efl/native.rb | 30 ++++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/lib/efl.rb b/lib/efl.rb index 9604e73..115ca6b 100644 --- a/lib/efl.rb +++ b/lib/efl.rb @@ -5,36 +5,6 @@ module Efl # VERSION = '0.1.0' # - module MethodResolver - def self.resolve mod, meth, prefix - meth_s = meth.to_s - if meth_s =~/^(.*)=$/ - meth_s = $1+'_set' - args_s = '*args[0]' - elsif meth_s =~/^(.*)\?$/ - meth_s = $1+'_get' - args_s = '*args' - else - args_s = '*args' - end - sym = ( - if Efl::Native.respond_to? prefix+meth_s - prefix+meth_s - elsif Efl::Native.respond_to? meth_s - meth_s - elsif Efl::Native.respond_to? prefix+meth_s+'_get' - prefix+meth_s+'_get' - elsif Efl::Native.respond_to? meth_s+'_get' - meth_s+'_get' - else - raise NameError.new "#{mod.name}.#{meth_s} (#{meth})" - end - ) - mod.module_eval "def self.#{meth} *args, █ r=Efl::Native.#{sym}(#{args_s}); yield r if block_given?; r; end" - sym - end - end - # module ClassHelper def to_a; [self] end def to_ary; [self] end diff --git a/lib/efl/native.rb b/lib/efl/native.rb index 24b336c..490ac9b 100644 --- a/lib/efl/native.rb +++ b/lib/efl/native.rb @@ -5,6 +5,36 @@ require 'ffi' # module Efl # + module MethodResolver + def self.resolve mod, meth, prefix + meth_s = meth.to_s + if meth_s =~/^(.*)=$/ + meth_s = $1+'_set' + args_s = '*args[0]' + elsif meth_s =~/^(.*)\?$/ + meth_s = $1+'_get' + args_s = '*args' + else + args_s = '*args' + end + sym = ( + if Efl::Native.respond_to? prefix+meth_s + prefix+meth_s + elsif Efl::Native.respond_to? meth_s + meth_s + elsif Efl::Native.respond_to? prefix+meth_s+'_get' + prefix+meth_s+'_get' + elsif Efl::Native.respond_to? meth_s+'_get' + meth_s+'_get' + else + raise NameError.new "#{mod.name}.#{meth_s} (#{meth})" + end + ) + mod.module_eval "def self.#{meth} *args, █ r=Efl::Native.#{sym}(#{args_s}); yield r if block_given?; r; end" + sym + end + end + # module Native # extend FFI::Library -- cgit v1.1-2-g2b99