diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2011-04-29 14:45:08 +0200 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2011-04-29 14:45:08 +0200 | 
| commit | 0ed32396a0fd63625ea94c4da86c2df3829acc72 (patch) | |
| tree | 853b116cacf2ced99799a69868745f60ead8e254 /lib/efl | |
| parent | 7d9d18850322a11f0f40913a5442b7a981b47c0a (diff) | |
| download | ffi-efl-0ed32396a0fd63625ea94c4da86c2df3829acc72.zip ffi-efl-0ed32396a0fd63625ea94c4da86c2df3829acc72.tar.gz | |
update efl/eina* and specs
Diffstat (limited to 'lib/efl')
| -rw-r--r-- | lib/efl/eina.rb | 8 | ||||
| -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 | 
