ffi-efl 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/Changelog +12 -0
  2. data/Rakefile +1 -1
  3. data/lib/efl/ecore.rb +17 -6
  4. data/lib/efl/ecore_evas.rb +78 -24
  5. data/lib/efl/ecore_getopt.rb +27 -23
  6. data/lib/efl/ecore_input.rb +1 -1
  7. data/lib/efl/edje.rb +11 -11
  8. data/lib/efl/eet.rb +20 -14
  9. data/lib/efl/eina.rb +1 -1
  10. data/lib/efl/eina_hash.rb +17 -30
  11. data/lib/efl/eina_list.rb +16 -25
  12. data/lib/efl/elementary.rb +8 -19
  13. data/lib/efl/evas.rb +167 -38
  14. data/lib/efl/ffi.rb +28 -17
  15. data/lib/efl/{ffi → native}/ecore.rb +9 -5
  16. data/lib/efl/{ffi → native}/ecore_evas.rb +27 -20
  17. data/lib/efl/{ffi → native}/ecore_getopt.rb +9 -5
  18. data/lib/efl/{ffi → native}/ecore_input.rb +9 -5
  19. data/lib/efl/{ffi → native}/edje.rb +14 -10
  20. data/lib/efl/{ffi → native}/eet.rb +9 -5
  21. data/lib/efl/{ffi → native}/eina.rb +9 -5
  22. data/lib/efl/{ffi → native}/eina_hash.rb +9 -5
  23. data/lib/efl/{ffi → native}/eina_list.rb +9 -5
  24. data/lib/efl/{ffi → native}/eina_types.rb +9 -5
  25. data/lib/efl/{ffi → native}/elementary.rb +70 -66
  26. data/lib/efl/{ffi → native}/evas.rb +11 -7
  27. data/lib/efl/native.rb +16 -0
  28. data/lib/efl.rb +1 -1
  29. data/spec/ecore_evas_spec.rb +325 -6
  30. data/spec/ecore_getopt_spec.rb +70 -104
  31. data/spec/ecore_input_spec.rb +6 -6
  32. data/spec/ecore_spec.rb +63 -60
  33. data/spec/edje_spec.rb +6 -6
  34. data/spec/eet_spec.rb +23 -22
  35. data/spec/eina_hash_spec.rb +53 -58
  36. data/spec/eina_list_spec.rb +28 -18
  37. data/spec/eina_spec.rb +6 -6
  38. data/spec/evas_spec.rb +371 -119
  39. data/tasks/constants.rb +4 -0
  40. data/test/test_edje.rb +1 -1
  41. data/test/test_elm_win-native.rb +38 -0
  42. data/test/test_evas.rb +4 -4
  43. metadata +32 -20
  44. data/test/test_elm_win.rb +0 -35
data/spec/ecore_spec.rb CHANGED
@@ -8,129 +8,107 @@ describe Efl::Ecore do
8
8
  before(:all) do
9
9
  Ecore = Efl::Ecore
10
10
  USER_SIGNAL_CB = Proc.new do |data, type, event|
11
- data.read_string.should eql "ok"
12
- type.should eql Ecore::EVENT_SIGNAL_USER
13
- event.read_int.should eql 666
14
- Ecore.event_current_type_get.should eql Ecore::EVENT_SIGNAL_USER
15
- Ecore.event_current_event_get.address.should eql event.address
11
+ data.read_string.should == "ok"
12
+ type.should == Ecore::EVENT_SIGNAL_USER
13
+ event.read_int.should == 666
14
+ Ecore.event_current_type_get.should == Ecore::EVENT_SIGNAL_USER
15
+ Ecore.event_current_event_get.address.should == event.address
16
16
  Ecore.main_loop_quit
17
17
  end
18
18
  EVENT_FREE_CB = Proc.new do |data,event|
19
- data.read_string.should eql "none"
20
- event.read_int.should eql 666
19
+ data.read_string.should == "none"
20
+ event.read_int.should == 666
21
21
  end
22
22
  OK = FFI::MemoryPointer.from_string "ok"
23
23
  KO = FFI::MemoryPointer.from_string "ko"
24
24
  NONE = FFI::MemoryPointer.from_string "none"
25
25
  end
26
+ before(:each) {
27
+ Ecore.init
28
+ }
29
+ after(:each) {
30
+ Ecore.shutdown
31
+ }
26
32
  #
27
33
  it "should init" do
28
- Ecore.init.should eql 1
29
- Ecore.init.should eql 2
30
- Ecore.init.should eql 3
34
+ Ecore.init.should == 2
35
+ Ecore.init.should == 3
31
36
  end
32
37
  #
33
38
  it "should shutdown" do
34
- Ecore.shutdown.should eql 2
35
- Ecore.shutdown.should eql 1
36
- Ecore.shutdown.should eql 0
39
+ Ecore.shutdown.should == 2
40
+ Ecore.shutdown.should == 1
37
41
  end
38
42
  #
39
43
  it "should run a single iteration of the mainloop" do
40
- Ecore.init
41
- Ecore.main_loop_iterate
42
- Ecore.shutdown
43
- end
44
- #
45
- it 'should write and read data from pipe' do
46
- data = FFI::MemoryPointer.from_string("none")
47
- cb = Proc.new do |data,buffer,bytes|
48
- data.read_string.should eql 'none'
49
- buffer.read_string.should eql 'hello world'
50
- bytes.should eql 12
51
- end
52
- Ecore.init
53
- pipe = Ecore::REcorePipe.new cb, data
54
- pipe.write("hello world").should be_true
55
44
  Ecore.main_loop_iterate
56
- pipe.read_close
57
- pipe.write_close
58
- pipe.del.address.should eql data.address
59
- Ecore.shutdown
60
45
  end
61
46
  #
62
47
  it 'should be able to add, del event hanlder and process event' do
63
- Ecore.init
64
48
  evt = FFI::MemoryPointer.new(:int)
65
49
  evt.write_int 666
66
50
  # add, del, add event handler
67
51
  evt_handler = Ecore.event_handler_add Ecore::EVENT_SIGNAL_USER, USER_SIGNAL_CB, KO
68
52
  evt_handler.null?.should be_false
69
- Ecore.event_handler_del(evt_handler).address.should eql KO.address
53
+ Ecore.event_handler_del(evt_handler).address.should == KO.address
70
54
  evt_handler = Ecore.event_handler_add Ecore::EVENT_SIGNAL_USER, USER_SIGNAL_CB, OK
71
55
  evt_handler.null?.should be_false
72
56
  # add, del, add event
73
57
  ecore_evt = Ecore.event_add Ecore::EVENT_SIGNAL_USER, evt, EVENT_FREE_CB, NONE
74
58
  ecore_evt.null?.should be_false
75
- Ecore.event_del(ecore_evt).address.should eql NONE.address
59
+ Ecore.event_del(ecore_evt).address.should == NONE.address
76
60
  ecore_evt = Ecore.event_add Ecore::EVENT_SIGNAL_USER, evt, EVENT_FREE_CB, NONE
77
61
  ecore_evt.null?.should be_false
78
62
  Ecore.main_loop_begin # process event
79
- Ecore.shutdown
80
63
  end
81
64
  #
82
65
  it "should be able to get and set event handler data" do
83
- Ecore.init
84
66
  evt = FFI::MemoryPointer.new(:int)
85
67
  evt.write_int 666
86
68
  evt_handler = Ecore.event_handler_add Ecore::EVENT_SIGNAL_USER, USER_SIGNAL_CB, KO
87
69
  evt_handler.null?.should be_false
88
- Ecore.event_handler_data_get(evt_handler).read_string.should eql "ko"
89
- Ecore.event_handler_data_set(evt_handler, OK).address.should eql KO.address
90
- Ecore.event_handler_data_get(evt_handler).read_string.should eql "ok"
70
+ Ecore.event_handler_data_get(evt_handler).read_string.should == "ko"
71
+ Ecore.event_handler_data_set(evt_handler, OK).address.should == KO.address
72
+ Ecore.event_handler_data_get(evt_handler).read_string.should == "ok"
91
73
  ecore_evt = Ecore.event_add Ecore::EVENT_SIGNAL_USER, evt, EVENT_FREE_CB, NONE
92
74
  ecore_evt.null?.should be_false
93
75
  Ecore.main_loop_begin # process event
94
- Ecore.shutdown
95
76
  end
96
77
  #
97
78
  it "should be able to create new event type" do
98
- Ecore.init
99
- Ecore.event_type_new.should_not eql 0
100
- Ecore.event_type_new.should_not eql 0
101
- Ecore.event_type_new.should_not eql 0
102
- Ecore.shutdown
79
+ Ecore.event_type_new.should_not == 0
80
+ Ecore.event_type_new.should_not == 0
81
+ Ecore.event_type_new.should_not == 0
103
82
  end
104
83
  #
105
84
  it "should be possible to add and del event filters" do
106
- Ecore.init
107
85
  loop_data = FFI::MemoryPointer.from_string("loop_data")
108
86
  event_free_cb = Proc.new do |data,event|
109
- data.read_string.should eql "ko"
110
- event.read_int.should eql 69
87
+ data.read_string.should == "ko"
88
+ event.read_int.should == 69
111
89
  end
112
90
  start_cb = Proc.new do |data|
113
- data.read_string.should eql "ok"
91
+ data.read_string.should == "ok"
114
92
  loop_data
115
93
  end
116
94
  count = 0
117
95
  filter_cb = Proc.new do |data,loop_data,type,event|
118
- data.read_string.should eql "ok"
119
- loop_data.read_string.should eql "loop_data"
120
- type.should eql Ecore::EVENT_SIGNAL_USER
96
+ data.read_string.should == "ok"
97
+ loop_data.read_string.should == "loop_data"
98
+ type.should == Ecore::EVENT_SIGNAL_USER
121
99
  count += 1
122
100
  if event.read_int == 69
123
- count.should eql 1
101
+ count.should == 1
124
102
  false # drop first event
125
103
  else
126
- count.should eql 2
127
- event.read_int.should eql 666
104
+ count.should == 2
105
+ event.read_int.should == 666
128
106
  true
129
107
  end
130
108
  end
131
109
  end_cb = Proc.new do |data,loop_data|
132
- data.read_string.should eql "ok"
133
- loop_data.read_string.should eql "loop_data"
110
+ data.read_string.should == "ok"
111
+ loop_data.read_string.should == "loop_data"
134
112
  end
135
113
  filter = Ecore.event_filter_add start_cb, filter_cb, end_cb, OK
136
114
  Ecore.event_handler_add Ecore::EVENT_SIGNAL_USER, USER_SIGNAL_CB, OK
@@ -141,10 +119,35 @@ describe Efl::Ecore do
141
119
  e2.write_int 666
142
120
  evt2 = Ecore.event_add Ecore::EVENT_SIGNAL_USER, e2, EVENT_FREE_CB, NONE
143
121
  Ecore.main_loop_begin # process event
144
- Ecore.event_filter_del(filter).address.should eql OK.address
122
+ Ecore.event_filter_del(filter).address.should == OK.address
145
123
  evt2 = Ecore.event_add Ecore::EVENT_SIGNAL_USER, e2, EVENT_FREE_CB, NONE
146
124
  Ecore.main_loop_begin # process event
147
- Ecore.shutdown
148
125
  end
149
126
  #
127
+ describe Efl::Ecore::REcorePipe do
128
+ #
129
+ it 'should write and read data from pipe' do
130
+ data = FFI::MemoryPointer.from_string("none")
131
+ cb = Proc.new do |data,buffer,bytes|
132
+ data.read_string.should == 'none'
133
+ buffer.read_string.should == 'hello world'
134
+ bytes.should == 12
135
+ end
136
+ pipe = Ecore::REcorePipe.new cb, data
137
+ pipe.write("hello world").should be_true
138
+ Ecore.main_loop_iterate
139
+ pipe.read_close
140
+ pipe.write_close
141
+ end
142
+ it "manual destructor should not raise FFI::AutoPointer error" do
143
+ data = FFI::MemoryPointer.from_string("none")
144
+ cb = Proc.new do |data,buffer,bytes|
145
+ data.read_string.should == 'none'
146
+ buffer.read_string.should == 'hello world'
147
+ bytes.should == 12
148
+ end
149
+ pipe = Ecore::REcorePipe.new cb, data
150
+ pipe.del
151
+ end
152
+ end
150
153
  end
data/spec/edje_spec.rb CHANGED
@@ -8,15 +8,15 @@ describe Efl::Edje do
8
8
  before(:all) { Edje = Efl::Edje }
9
9
  #
10
10
  it "should init" do
11
- Edje.init.should eql 1
12
- Edje.init.should eql 2
13
- Edje.init.should eql 3
11
+ Edje.init.should == 1
12
+ Edje.init.should == 2
13
+ Edje.init.should == 3
14
14
  end
15
15
  #
16
16
  it "should shutdown" do
17
- Edje.shutdown.should eql 2
18
- Edje.shutdown.should eql 1
19
- Edje.shutdown.should eql 0
17
+ Edje.shutdown.should == 2
18
+ Edje.shutdown.should == 1
19
+ Edje.shutdown.should == 0
20
20
  end
21
21
  #
22
22
  end
data/spec/eet_spec.rb CHANGED
@@ -7,21 +7,22 @@ describe Efl::Eet do
7
7
  #
8
8
  before(:all) {
9
9
  Eet = Efl::Eet
10
+ Native = Efl::Native
10
11
  REetFile = Efl::Eet::REetFile
11
12
  }
12
13
  #
13
14
  FP = '/tmp/_eet.cfg'
14
15
  #
15
16
  it "should init" do
16
- Eet.init.should eql 1
17
- Eet.init.should eql 2
18
- Eet.init.should eql 3
17
+ Eet.init.should == 1
18
+ Eet.init.should == 2
19
+ Eet.init.should == 3
19
20
  end
20
21
  #
21
22
  it "should shutdown" do
22
- Eet.shutdown.should eql 2
23
- Eet.shutdown.should eql 1
24
- Eet.shutdown.should eql 0
23
+ Eet.shutdown.should == 2
24
+ Eet.shutdown.should == 1
25
+ Eet.shutdown.should == 0
25
26
  end
26
27
  #
27
28
  it "should clearcache" do
@@ -31,10 +32,10 @@ describe Efl::Eet do
31
32
  end
32
33
  #
33
34
  it "should have good enums" do
34
- Eet.enum_type(:eet_file_mode)[:eet_file_mode_invalid].should eql -1
35
- Eet.enum_type(:eet_file_mode)[:eet_file_mode_read].should eql 0
36
- Eet.enum_type(:eet_file_mode)[:eet_file_mode_write].should eql 1
37
- Eet.enum_type(:eet_file_mode)[:eet_file_mode_read_write].should eql 2
35
+ Native.enum_type(:eet_file_mode)[:eet_file_mode_invalid].should == -1
36
+ Native.enum_type(:eet_file_mode)[:eet_file_mode_read].should == 0
37
+ Native.enum_type(:eet_file_mode)[:eet_file_mode_write].should == 1
38
+ Native.enum_type(:eet_file_mode)[:eet_file_mode_read_write].should == 2
38
39
  end
39
40
  #
40
41
  describe Efl::Eet::REetFile do
@@ -42,45 +43,45 @@ describe Efl::Eet do
42
43
  after(:each) { Eet.shutdown }
43
44
  #
44
45
  it "should open and close" do
45
- f = REetFile.open FP, Eet.enum_type(:eet_file_mode)[:eet_file_mode_write]
46
+ f = REetFile.open FP, Native.enum_type(:eet_file_mode)[:eet_file_mode_write]
46
47
  f.write 'fake', 'value'
47
48
  f.close
48
49
  end
49
50
  #
50
51
  it "should be able to get file access mode" do
51
- Eet.enum_type(:eet_file_mode).symbols.each do |m|
52
+ Native.enum_type(:eet_file_mode).symbols.each do |m|
52
53
  next if m==:eet_file_mode_invalid
53
- REetFile.open FP, Eet.enum_type(:eet_file_mode)[m] do |f|
54
- f.mode_get.should eql m
54
+ REetFile.open FP, Native.enum_type(:eet_file_mode)[m] do |f|
55
+ f.mode_get.should == m
55
56
  end
56
57
  end
57
58
  end
58
59
  #
59
60
  it "should write" do
60
61
  f = REetFile.open FP, :eet_file_mode_write
61
- f.mode_get.should eql :eet_file_mode_write
62
+ f.mode.should == :eet_file_mode_write
62
63
  f.write 'config', 'test key'
63
64
  f.close
64
65
  end
65
66
  #
66
67
  it "default mode should be read" do
67
68
  f = REetFile.open FP
68
- f.mode_get.should eql :eet_file_mode_read
69
+ f.mode.should == :eet_file_mode_read
69
70
  f.close
70
71
  end
71
72
  #
72
73
  it "should read" do
73
74
  f = REetFile.open FP, :eet_file_mode_read
74
- f.mode_get.should eql :eet_file_mode_read
75
- f.read('config').should eql 'test key'
75
+ f.mode_get.should == :eet_file_mode_read
76
+ f.read('config').should == 'test key'
76
77
  f.close
77
78
  end
78
79
  #
79
80
  it "should read/write" do
80
81
  f = REetFile.open FP, :eet_file_mode_read_write
81
82
  f.write 'configg', 'test key'
82
- f.read('configg').should eql 'test key'
83
- f.close
83
+ f.read('configg').should == 'test key'
84
+ # f.close #leave it to FFI::AutoPointer
84
85
  end
85
86
  #
86
87
  it "should write in block" do
@@ -91,14 +92,14 @@ describe Efl::Eet do
91
92
  #
92
93
  it "should read in block" do
93
94
  REetFile.open FP, :eet_file_mode_read do |f|
94
- f.read('config2').should eql 'test--key'
95
+ f.read('config2').should == 'test--key'
95
96
  end
96
97
  end
97
98
  #
98
99
  it "should read/write in block" do
99
100
  REetFile.open FP, :eet_file_mode_read_write do |f|
100
101
  f.write 'config22', 'test--key'
101
- f.read('config22').should eql 'test--key'
102
+ f.read('config22').should == 'test--key'
102
103
  end
103
104
  end
104
105
  #
@@ -1,20 +1,21 @@
1
1
  #! /usr/bin/env ruby
2
2
  # -*- coding: UTF-8 -*-
3
3
  #
4
+ require 'efl'
4
5
  require 'efl/eina_hash'
5
6
  #
6
7
  describe Efl::EinaHash do
7
8
  #
8
9
  before(:all) {
9
10
  REinaHash = Efl::EinaHash::REinaHash
10
- Efl::Eina.init.should eql 1
11
+ Efl::Eina.init.should == 1
11
12
  @d0 = FFI::MemoryPointer.from_string "D0"
12
13
  @d1 = FFI::MemoryPointer.from_string "D1"
13
14
  @d2 = FFI::MemoryPointer.from_string "D2"
14
15
  @d3 = FFI::MemoryPointer.from_string "D3"
15
16
  }
16
17
  after(:all) {
17
- Efl::Eina.shutdown.should eql 0
18
+ Efl::Eina.shutdown.should == 0
18
19
  }
19
20
  #
20
21
  it "should append prepend and fetch" do
@@ -23,32 +24,26 @@ describe Efl::EinaHash do
23
24
  h.add 'k1', @d1
24
25
  h['k3']=@d3
25
26
  h['k0']=@d0
26
- h['k0'].read_string.should eql "D0"
27
- h['k1'].read_string.should eql "D1"
28
- h['k2'].read_string.should eql "D2"
29
- h['k3'].read_string.should eql "D3"
27
+ h['k0'].read_string.should == "D0"
28
+ h['k1'].read_string.should == "D1"
29
+ h['k2'].read_string.should == "D2"
30
+ h['k3'].read_string.should == "D3"
30
31
  cpt=0
31
32
  h.each { |k,v|
32
33
  cpt+=1
33
34
  v.read_string.empty?.should be_false
34
35
  }
35
- cpt.should eql 4
36
+ cpt.should == 4
36
37
  end
37
38
  #
38
39
  it "should be able to convert into ruby Hash from NULL pointer" do
39
- h = Hash.from_eina_hash FFI::Pointer::NULL
40
+ h = REinaHash.new(FFI::Pointer::NULL).to_h
40
41
  h.empty?.should be_true
41
42
  h.is_a?(Hash).should be_true
42
43
  end
43
44
  #
44
45
  it "should be able to convert into ruby Hash from empty REinaHash" do
45
- h = Hash.from_eina_hash REinaHash.new
46
- h.empty?.should be_true
47
- h.is_a?(Hash).should be_true
48
- end
49
- #
50
- it "should be able to convert into ruby Hash from empty REinaHash pointer" do
51
- h = Hash.from_eina_hash REinaHash.new.to_ptr
46
+ h = REinaHash.new(FFI::Pointer::NULL).to_h
52
47
  h.empty?.should be_true
53
48
  h.is_a?(Hash).should be_true
54
49
  end
@@ -63,28 +58,28 @@ describe Efl::EinaHash do
63
58
  h.add 'k1', d1
64
59
  h['k3']=d3
65
60
  h["k0"]=d0
66
- h["k0"].read_string.should eql "D0"
67
- h['k1'].read_string.should eql "D1"
68
- h['k2'].read_string.should eql "D2"
69
- h['k3'].read_string.should eql "D3"
61
+ h["k0"].read_string.should == "D0"
62
+ h['k1'].read_string.should == "D1"
63
+ h['k2'].read_string.should == "D2"
64
+ h['k3'].read_string.should == "D3"
70
65
  cpt=0
71
66
  h.each { |k,v|
72
67
  cpt+=1
73
68
  v.read_string.empty?.should be_false
74
69
  true
75
70
  }
76
- cpt.should eql 4
77
- rh = Hash.from_eina_hash h
78
- rh.length.should eql 4
71
+ cpt.should == 4
72
+ rh = h.to_h
73
+ rh.length.should == 4
79
74
  rh2 = {}
80
75
  rh.each { |k,v|
81
76
  rh2[k.read_string]=v.read_string
82
77
  true
83
78
  }
84
- rh2['k0'].should eql 'D0'
85
- rh2['k1'].should eql 'D1'
86
- rh2['k2'].should eql 'D2'
87
- rh2['k3'].should eql 'D3'
79
+ rh2['k0'].should == 'D0'
80
+ rh2['k1'].should == 'D1'
81
+ rh2['k2'].should == 'D2'
82
+ rh2['k3'].should == 'D3'
88
83
  end
89
84
  #
90
85
  it "should be able to convert into ruby Hash from non empty REinaHash pointer" do
@@ -97,12 +92,12 @@ describe Efl::EinaHash do
97
92
  h.add 'k1', d1
98
93
  h['k3']=d3
99
94
  h['k0']=d0
100
- h['k0'].read_string.should eql "D0"
101
- h['k1'].read_string.should eql "D1"
102
- h['k2'].read_string.should eql "D2"
103
- h['k3'].read_string.should eql "D3"
104
- rh = Hash.from_eina_hash h.to_ptr
105
- rh.length.should eql 4
95
+ h['k0'].read_string.should == "D0"
96
+ h['k1'].read_string.should == "D1"
97
+ h['k2'].read_string.should == "D2"
98
+ h['k3'].read_string.should == "D3"
99
+ rh = h.to_h
100
+ rh.length.should == 4
106
101
  end
107
102
  #
108
103
  it "should be able to convert into ruby Hash from non empty REinaHash pointer, with key from string" do
@@ -115,16 +110,16 @@ describe Efl::EinaHash do
115
110
  h.add 'k1', d1
116
111
  h['k3']=d3
117
112
  h['k0']=d0
118
- h['k0'].read_string.should eql "D0"
119
- h['k1'].read_string.should eql "D1"
120
- h['k2'].read_string.should eql "D2"
121
- h['k3'].read_string.should eql "D3"
113
+ h['k0'].read_string.should == "D0"
114
+ h['k1'].read_string.should == "D1"
115
+ h['k2'].read_string.should == "D2"
116
+ h['k3'].read_string.should == "D3"
122
117
  rh = h.to_h_conv
123
- rh.length.should eql 4
124
- rh['k0'].read_string.should eql "D0"
125
- rh['k1'].read_string.should eql "D1"
126
- rh['k2'].read_string.should eql "D2"
127
- rh['k3'].read_string.should eql "D3"
118
+ rh.length.should == 4
119
+ rh['k0'].read_string.should == "D0"
120
+ rh['k1'].read_string.should == "D1"
121
+ rh['k2'].read_string.should == "D2"
122
+ rh['k3'].read_string.should == "D3"
128
123
  end
129
124
  #
130
125
  it "should be able to convert into ruby Hash from non empty REinaHash pointer, with key from string block" do
@@ -137,21 +132,21 @@ describe Efl::EinaHash do
137
132
  h.add 'k1', d1
138
133
  h['k3']=d3
139
134
  h['k0']=d0
140
- h['k0'].read_string.should eql "D0"
141
- h['k1'].read_string.should eql "D1"
142
- h['k2'].read_string.should eql "D2"
143
- h['k3'].read_string.should eql "D3"
135
+ h['k0'].read_string.should == "D0"
136
+ h['k1'].read_string.should == "D1"
137
+ h['k2'].read_string.should == "D2"
138
+ h['k3'].read_string.should == "D3"
144
139
  cpt=0
145
140
  rh = h.to_h_conv { |k| cpt+=1; k.read_string }
146
- cpt.should eql 4
147
- rh.length.should eql 4
148
- rh['k0'].read_string.should eql "D0"
149
- rh['k1'].read_string.should eql "D1"
150
- rh['k2'].read_string.should eql "D2"
151
- rh['k3'].read_string.should eql "D3"
141
+ cpt.should == 4
142
+ rh.length.should == 4
143
+ rh['k0'].read_string.should == "D0"
144
+ rh['k1'].read_string.should == "D1"
145
+ rh['k2'].read_string.should == "D2"
146
+ rh['k3'].read_string.should == "D3"
152
147
  end
153
148
  #
154
- it "should be able to build from ruby Hash" do
149
+ it "should be able to build REinaHash from ruby Hash" do
155
150
  rh = {}
156
151
  k0 = FFI::MemoryPointer.from_string "0"
157
152
  k1 = FFI::MemoryPointer.from_string "1"
@@ -166,15 +161,15 @@ describe Efl::EinaHash do
166
161
  rh[k2]=d2
167
162
  rh[k3]=d3
168
163
  h = REinaHash.new rh
169
- h[k0].read_string.should eql "D0"
170
- h[k1].read_string.should eql "D1"
171
- h[k2].read_string.should eql "D2"
172
- h[k3].read_string.should eql "D3"
164
+ h[k0].read_string.should == "D0"
165
+ h[k1].read_string.should == "D1"
166
+ h[k2].read_string.should == "D2"
167
+ h[k3].read_string.should == "D3"
173
168
  end
174
169
  #
175
170
  it "alternate constructor should work" do
176
171
  cstr_cnt = 0
177
- h = REinaHash.new { cstr_cnt+=1; Efl::EinaHash.eina_hash_string_superfast_new FFI::Pointer::NULL }
178
- cstr_cnt.should eql 1
172
+ h = REinaHash.new { cstr_cnt+=1; Efl::Native.eina_hash_string_superfast_new FFI::Pointer::NULL }
173
+ cstr_cnt.should == 1
179
174
  end
180
175
  end
@@ -8,10 +8,10 @@ describe Efl::EinaList do
8
8
  #
9
9
  before(:all) {
10
10
  REinaList = Efl::EinaList::REinaList
11
- Efl::Eina.init.should eql 1
11
+ Efl::Eina.init.should == 1
12
12
  }
13
13
  after(:all) {
14
- Efl::Eina.shutdown.should eql 0
14
+ Efl::Eina.shutdown.should == 0
15
15
  }
16
16
  #
17
17
  it "should append prepend and fetch" do
@@ -25,26 +25,20 @@ describe Efl::EinaList do
25
25
  l << d4
26
26
  l.unshift d1
27
27
  0.upto 3 do |i|
28
- l.nth(i).read_string.should eql "D#{i}"
28
+ l.nth(i).read_string.should == "D#{i}"
29
29
  end
30
30
  l.each { |p| p.read_string.empty?.should be_false }
31
31
  l.free
32
32
  end
33
33
  #
34
34
  it "should be able to convert into ruby Array from NULL pointer" do
35
- ary = Array.from_eina_list ::FFI::Pointer::NULL
35
+ ary = REinaList.new(FFI::Pointer::NULL).to_ary
36
36
  ary.empty?.should be_true
37
37
  ary.is_a?(Array).should be_true
38
38
  end
39
39
  #
40
40
  it "should be able to convert into ruby Array from empty REinaList" do
41
- ary = Array.from_eina_list REinaList.new
42
- ary.empty?.should be_true
43
- ary.is_a?(Array).should be_true
44
- end
45
- #
46
- it "should be able to convert into ruby Array from empty REinaList pointer" do
47
- ary = Array.from_eina_list REinaList.new.to_ptr
41
+ ary = REinaList.new.to_ary
48
42
  ary.empty?.should be_true
49
43
  ary.is_a?(Array).should be_true
50
44
  end
@@ -59,10 +53,10 @@ describe Efl::EinaList do
59
53
  l.prepend d2
60
54
  l << d4
61
55
  l.unshift d1
62
- ary = Array.from_eina_list l
63
- ary.length.should eql 4
56
+ ary = l.to_ary
57
+ ary.length.should == 4
64
58
  0.upto 3 do |i|
65
- ary[i].read_string.should eql "D#{i}"
59
+ ary[i].read_string.should == "D#{i}"
66
60
  end
67
61
  l.free
68
62
  end
@@ -77,10 +71,10 @@ describe Efl::EinaList do
77
71
  l.prepend d2
78
72
  l << d4
79
73
  l.unshift d1
80
- ary = Array.from_eina_list l.to_ptr
81
- ary.length.should eql 4
74
+ ary = l.to_ary
75
+ ary.length.should == 4
82
76
  0.upto 3 do |i|
83
- ary[i].read_string.should eql "D#{i}"
77
+ ary[i].read_string.should == "D#{i}"
84
78
  end
85
79
  l.free
86
80
  end
@@ -93,9 +87,25 @@ describe Efl::EinaList do
93
87
  a << ::FFI::MemoryPointer.from_string("D3")
94
88
  l = REinaList.new a
95
89
  0.upto 3 do |i|
96
- l.nth(i).read_string.should eql "D#{i}"
90
+ l.nth(i).read_string.should == "D#{i}"
97
91
  end
98
92
  l.free
99
93
  end
100
94
  #
95
+ it "Enumerable should work" do
96
+ l = REinaList.new
97
+ d1 = ::FFI::MemoryPointer.from_string "D0"
98
+ d2 = ::FFI::MemoryPointer.from_string "D1"
99
+ d3 = ::FFI::MemoryPointer.from_string "D2"
100
+ d4 = ::FFI::MemoryPointer.from_string "D3"
101
+ l.append d3
102
+ l.prepend d2
103
+ l << d4
104
+ l.unshift d1
105
+ r = 0
106
+ l.each do |e| r+=1; end
107
+ r.should == 4
108
+ r = l.inject(0) do |s,e| s+=1; s; end
109
+ r.should == 4
110
+ end
101
111
  end
data/spec/eina_spec.rb CHANGED
@@ -6,15 +6,15 @@ require 'efl/eina'
6
6
  describe Efl::Eina do
7
7
  #
8
8
  it "should init" do
9
- Efl::Eina.init.should eql 1
10
- Efl::Eina.init.should eql 2
11
- Efl::Eina.init.should eql 3
9
+ Efl::Eina.init.should == 1
10
+ Efl::Eina.init.should == 2
11
+ Efl::Eina.init.should == 3
12
12
  end
13
13
  #
14
14
  it "should shutdown" do
15
- Efl::Eina.shutdown.should eql 2
16
- Efl::Eina.shutdown.should eql 1
17
- Efl::Eina.shutdown.should eql 0
15
+ Efl::Eina.shutdown.should == 2
16
+ Efl::Eina.shutdown.should == 1
17
+ Efl::Eina.shutdown.should == 0
18
18
  end
19
19
  #
20
20
  end