ffi-efl 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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