diff options
| -rw-r--r-- | Changelog | 4 | ||||
| -rw-r--r-- | lib/efl/eina_list.rb | 1 | ||||
| -rw-r--r-- | spec/eina_list_spec.rb | 22 | 
3 files changed, 25 insertions, 2 deletions
| @@ -1,3 +1,7 @@ +2011-05-xx Jérémy Zurcher <jeremy@asynk.ch> +	* add REinaList#from_a ptrt +	* add REinaList#to_a ptrt=nil +  2011-05-11 Jérémy Zurcher <jeremy@asynk.ch>  	* use ditz ass issure tracker  	* use FFI.attach_variable for EAPI extern ... diff --git a/lib/efl/eina_list.rb b/lib/efl/eina_list.rb index ba2bde3..7897827 100644 --- a/lib/efl/eina_list.rb +++ b/lib/efl/eina_list.rb @@ -58,6 +58,7 @@ module Efl              end              def to_a ptrt=nil                  return inject([]) { |s,e| s<<e } if ptrt.nil? +                inject([]) { |s,e| s<< e.send('read_'+ptrt.to_s) }              end              alias :to_ary :to_a              # for fun and tests diff --git a/spec/eina_list_spec.rb b/spec/eina_list_spec.rb index a51b148..230e9bb 100644 --- a/spec/eina_list_spec.rb +++ b/spec/eina_list_spec.rb @@ -38,7 +38,7 @@ describe Efl::EinaList do      end      #      it "should be able to convert into ruby Array from empty REinaList" do -        ary = REinaList.new.to_ary +        ary = REinaList.new.to_a          ary.empty?.should be_true          ary.is_a?(Array).should be_true      end @@ -71,7 +71,7 @@ describe Efl::EinaList do          l.prepend d2          l << d4          l.unshift d1 -        ary = l.to_ary +        ary = l.to_a          ary.length.should == 4          0.upto 3 do |i|              ary[i].read_string.should == "D#{i}" @@ -79,6 +79,24 @@ describe Efl::EinaList do          l.free      end      # +    it "should be able to convert into ruby Array from non empty REinaList pointer" do +        l = REinaList.new +        d1 = ::FFI::MemoryPointer.from_string "D0" +        d2 = ::FFI::MemoryPointer.from_string "D1" +        d3 = ::FFI::MemoryPointer.from_string "D2" +        d4 = ::FFI::MemoryPointer.from_string "D3" +        l.append d3 +        l.prepend d2 +        l << d4 +        l.unshift d1 +        ary = l.to_a :string +        ary.length.should == 4 +        0.upto 3 do |i| +            ary[i].should == "D#{i}" +        end +        l.free +    end +    #      it "should be able to build from a ruby Array of pointers" do          a =  []          a << ::FFI::MemoryPointer.from_string("D0") | 
