summaryrefslogtreecommitdiffstats
path: root/lib/efl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/efl')
-rw-r--r--lib/efl/eina.rb8
-rw-r--r--lib/efl/eina_hash.rb (renamed from lib/efl/eina/eina_hash.rb)39
-rw-r--r--lib/efl/eina_list.rb (renamed from lib/efl/eina/eina_list.rb)38
3 files changed, 45 insertions, 40 deletions
diff --git a/lib/efl/eina.rb b/lib/efl/eina.rb
index e5fcc67..dfa266c 100644
--- a/lib/efl/eina.rb
+++ b/lib/efl/eina.rb
@@ -3,4 +3,12 @@
#
require 'efl/ffi/eina'
#
+module Efl
+ #
+ module Eina
+ #
+ end
+ #
+end
+#
# EOF
diff --git a/lib/efl/eina/eina_hash.rb b/lib/efl/eina_hash.rb
index 76cd5d2..03619dc 100644
--- a/lib/efl/eina/eina_hash.rb
+++ b/lib/efl/eina_hash.rb
@@ -1,40 +1,39 @@
#! /usr/bin/env ruby
# -*- coding: UTF-8 -*-
#
-require 'efl/eina'
-require 'efl/ffi/eina/eina_hash'
+require 'efl/ffi/eina_hash'
#
class Hash
def self.from_eina_hash o
- if o.is_a? Efl::Eina::EinaHash
+ if o.is_a? Efl::EinaHash::REinaHash
o.to_h
- elsif o.is_a? ::FFI::Pointer
- Efl::Eina::EinaHash.new(o).to_h
+ elsif o.is_a? FFI::Pointer
+ Efl::EinaHash::REinaHash.new(o).to_h
else
raise ArgumentError.new " wrong argument #{o.class.name}"
end
end
end
module Efl
- module Eina
+ module EinaHash
#
- class EinaHash
- include Efl::Helper
+ class REinaHash
include Enumerable
- @func_prefixes = [ 'eina_hash_' ].freeze
+ include Efl::ClassHelper
+ @func_prefixes = [ [Efl::EinaHash,'eina_hash_'] ].freeze
def initialize o=nil, &block
- cstr = ( block_given? ? block : Proc.new { Efl::FFI.eina_hash_string_djb2_new ::FFI::Pointer::NULL } )
+ cstr = ( block_given? ? block : Proc.new { Efl::EinaHash.eina_hash_string_djb2_new FFI::Pointer::NULL } )
@ptr = (
case o
- when ::FFI::Pointer
- ( o==::FFI::Pointer::NULL ? cstr.call : o )
+ when FFI::Pointer
+ ( o==FFI::Pointer::NULL ? cstr.call : o )
when NilClass
cstr.call
when self.class
o.ptr
when Hash
ptr = cstr.call
- o.each do |k,v| Efl::FFI.eina_hash_add ptr, k, v end
+ o.each do |k,v| Efl::EinaHash.eina_hash_add ptr, k, v end
ptr
else
raise ArgumentError.new "#{ptr.class} valid argument"
@@ -42,12 +41,12 @@ module Efl
)
end
def free
- return if @ptr==::FFI::Pointer::NULL
- @ptr = Efl::FFI.eina_hash_free @ptr
+ return if @ptr==FFI::Pointer::NULL
+ @ptr = Efl::EinaHash.eina_hash_free @ptr
end
- def each data=::FFI::Pointer::NULL, &block
+ def each data=FFI::Pointer::NULL, &block
return if not block_given?
- Efl::FFI::eina_hash_foreach @ptr, Proc.new{|h,k,v,d| block.call(k,v) }, data
+ Efl::EinaHash::eina_hash_foreach @ptr, Proc.new{|h,k,v,d| block.call(k,v) }, data
end
def to_h
rh = {}
@@ -65,13 +64,13 @@ module Efl
end
# for fun and tests
def add k, v
- Efl::FFI.eina_hash_add @ptr, k, v
+ Efl::EinaHash.eina_hash_add @ptr, k, v
v
end
alias :[]= :add
def find k
- r = Efl::FFI.eina_hash_find @ptr, k
- return ( r==::FFI::Pointer::NULL ? nil : r )
+ r = Efl::EinaHash.eina_hash_find @ptr, k
+ return ( r==FFI::Pointer::NULL ? nil : r )
end
alias :[] :find
end
diff --git a/lib/efl/eina/eina_list.rb b/lib/efl/eina_list.rb
index fdbc176..ecd0e20 100644
--- a/lib/efl/eina/eina_list.rb
+++ b/lib/efl/eina_list.rb
@@ -1,60 +1,58 @@
#! /usr/bin/env ruby
# -*- coding: UTF-8 -*-
#
-require 'efl/eina'
-require 'efl/ffi/eina/eina_list'
+require 'efl/ffi/eina_list'
#
class Array
def self.from_eina_list o
- if o.is_a? Efl::Eina::EinaList
+ if o.is_a? Efl::EinaList::REinaList
o.to_ary
- elsif o.is_a? ::FFI::Pointer
- Efl::Eina::EinaList.new(o).to_ary
+ elsif o.is_a? FFI::Pointer
+ Efl::EinaList::REinaList.new(o).to_ary
else
raise ArgumentError.new " wrong argument #{o.class.name}"
end
end
end
module Efl
- module FFI
- class EinaList < ::FFI::Struct
+ module EinaList
+ #
+ class EinaListStruct < FFI::Struct
layout :data, :pointer,
:next, :pointer,
:prev, :pointer,
:accounting, :pointer,
:magic, :uint,
end
- end
- module Eina
#
- class EinaList
- include Efl::Helper
+ class REinaList
include Enumerable
- @func_prefixes = [ 'eina_list_' ].freeze
+ include Efl::ClassHelper
+ @search_paths = [ [Efl::EinaList,'eina_list_'] ].freeze
def initialize o=nil
@ptr = (
case o
- when ::FFI::Pointer
+ when FFI::Pointer
o
when NilClass
- ::FFI::Pointer::NULL
+ FFI::Pointer::NULL
when self.class
o.ptr
when Array
- o.inject(::FFI::Pointer::NULL) { |p,e| Efl::FFI::eina_list_append p, e }
+ o.inject(FFI::Pointer::NULL) { |p,e| Efl::EinaList.eina_list_append p, e }
else
raise ArgumentError.new "#{ptr.class} valid argument"
end
)
end
def free
- return if @ptr==::FFI::Pointer::NULL
- @ptr = Efl::FFI.eina_list_free @ptr
+ return if @ptr==FFI::Pointer::NULL
+ @ptr = Efl::EinaList.eina_list_free @ptr
end
def each
p = @ptr
while p!=::FFI::Pointer::NULL
- l = Efl::FFI::EinaList.new p
+ l = Efl::EinaList::EinaListStruct.new p
yield l[:data]
p = l[:next]
end
@@ -64,11 +62,11 @@ module Efl
end
# for fun and tests
def append p
- @ptr = Efl::FFI.eina_list_append @ptr, p
+ @ptr = Efl::EinaList.eina_list_append @ptr, p
end
alias :<< :append
def prepend p
- @ptr = Efl::FFI.eina_list_prepend @ptr, p
+ @ptr = Efl::EinaList.eina_list_prepend @ptr, p
end
alias :unshift :prepend
end