diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2011-05-05 09:35:27 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2011-05-05 09:35:27 +0200 |
commit | 88f4d1c3b0c9d5104be826e52ca7d3ced7b3e3c9 (patch) | |
tree | 55e7da94dd3d6f1cc6ef2fe0ad3a39edf0003424 | |
parent | 67da13a4f7ddfad59c70df26e85152543c43c22f (diff) | |
download | ffi-efl-88f4d1c3b0c9d5104be826e52ca7d3ced7b3e3c9.zip ffi-efl-88f4d1c3b0c9d5104be826e52ca7d3ced7b3e3c9.tar.gz |
method_missing resolves m+'_get' + specs
-rw-r--r-- | lib/efl/evas.rb | 5 | ||||
-rw-r--r-- | lib/efl/ffi.rb | 20 | ||||
-rw-r--r-- | spec/eet_spec.rb | 4 | ||||
-rw-r--r-- | spec/evas_spec.rb | 65 |
4 files changed, 63 insertions, 31 deletions
diff --git a/lib/efl/evas.rb b/lib/efl/evas.rb index d18cec8..bc4b0e4 100644 --- a/lib/efl/evas.rb +++ b/lib/efl/evas.rb @@ -83,6 +83,7 @@ module Efl Native.evas_output_size_get @ptr, x, y [ x.read_int, y.read_int ] end + alias :output_size :output_size_get alias :size :output_size_get def output_viewport_get x = FFI::MemoryPointer.new :int @@ -92,6 +93,7 @@ module Efl Native.evas_output_viewport_get @ptr, x, y, w, h [ x.read_int, y.read_int, w.read_int, h.read_int ] end + alias :output_viewport :output_viewport_get alias :viewport :output_viewport_get def pointer_output_xy_get x = FFI::MemoryPointer.new :int @@ -135,6 +137,9 @@ module Efl REvasObject.release @ptr @ptr=nil end + def name + Native.evas_object_name_get @ptr + end def geometry_get x = FFI::MemoryPointer.new :int y = FFI::MemoryPointer.new :int diff --git a/lib/efl/ffi.rb b/lib/efl/ffi.rb index 0f8e8e9..35ba31c 100644 --- a/lib/efl/ffi.rb +++ b/lib/efl/ffi.rb @@ -97,11 +97,21 @@ module Efl end self.class.search_prefixes.each do |p| sym = p+m_s - if Efl::Native.respond_to? sym - self.class.class_eval "def #{m} *args, █ r=#{Efl::Native.name}.#{sym}(@ptr,#{args_s}); yield r if block_given?; r; end" - return self.send m, *args, &block - elsif Efl::Native.respond_to? m - self.class.class_eval "def #{m} *args, █ r=#{Efl::Native.name}.#{m}(@ptr,#{args_s}); yield r if block_given?; r; end" + meth = ( + if Efl::Native.respond_to? sym + sym + elsif Efl::Native.respond_to? m + m + elsif Efl::Native.respond_to? sym+'_get' + sym+'_get' + elsif Efl::Native.respond_to? m+'_get' + m+'_get' + else + nil + end + ) + if not meth.nil? + self.class.class_eval "def #{m} *args, █ r=Efl::Native.#{meth}(@ptr,#{args_s}); yield r if block_given?; r; end" return self.send m, *args, &block end end diff --git a/spec/eet_spec.rb b/spec/eet_spec.rb index 67f4ed2..82c2dbf 100644 --- a/spec/eet_spec.rb +++ b/spec/eet_spec.rb @@ -59,14 +59,14 @@ describe Efl::Eet do # it "should write" do f = REetFile.open FP, :eet_file_mode_write - f.mode_get.should == :eet_file_mode_write + f.mode.should == :eet_file_mode_write f.write 'config', 'test key' f.close end # it "default mode should be read" do f = REetFile.open FP - f.mode_get.should == :eet_file_mode_read + f.mode.should == :eet_file_mode_read f.close end # diff --git a/spec/evas_spec.rb b/spec/evas_spec.rb index 622714a..1e111bd 100644 --- a/spec/evas_spec.rb +++ b/spec/evas_spec.rb @@ -66,7 +66,7 @@ describe Efl::Evas do @e.output_method_set Evas::render_method_lookup("buffer") @e.output_viewport_set 0, 0, @width, @height @e.output_size_set @width, @height - einfo = Native::EngineInfoBufferStruct.new @e.engine_info_get + einfo = Native::EngineInfoBufferStruct.new @e.engine_info einfo[:info][:depth_type] = Efl::Evas::EVAS_ENGINE_BUFFER_DEPTH_ARGB32 einfo[:info][:dest_buffer] = @pixels einfo[:info][:dest_buffer_row_bytes] = @width * FFI::type_size(:int); @@ -113,11 +113,11 @@ describe Efl::Evas do Evas.focus_out @e.to_ptr Evas.focus_state_get(@e.to_ptr).should be_false @e.focus_in { |r| r.should be_nil } - @e.focus_state_get.should be_true + @e.focus_state.should be_true @e.focus_state_get { |r| r.should be_true } @e.focus_out.should be_nil @e.focus_state_get.should be_false - @e.focus_state_get { |r| r.should be_false } + @e.focus_state { |r| r.should be_false } end # it "nochange should work" do @@ -128,6 +128,7 @@ describe Efl::Evas do it "attach data should work" do data = FFI::MemoryPointer.from_string "my data" @e.data_attach_set data + @e.data_attach.read_string.should == "my data" @e.data_attach_get.read_string.should == "my data" end # @@ -143,6 +144,7 @@ describe Efl::Evas do @e.render_dump end it "output method should work" do + @e.output_method.should == Evas::render_method_lookup("buffer") @e.output_method_get.should == Evas::render_method_lookup("buffer") # output_method_set tested in before(:all) l = Efl::Evas.render_method_list @@ -156,12 +158,16 @@ describe Efl::Evas do # it "output size should work" do @e.output_size_set 69, 666 + @e.size.should == [69,666] + @e.output_size.should == [69,666] @e.output_size_get.should == [69,666] @e.output_size = 666, 69 @e.size == [666,69] end it "output viewport should work" do @e.output_viewport_set 0, 0, 666, 69 + @e.viewport.should == [0,0,666,69] + @e.output_viewport.should == [0,0,666,69] @e.output_viewport_get.should == [0,0,666,69] @e.output_viewport = 0, 0, 69, 666 @e.viewport.should == [0,0,69,666] @@ -180,34 +186,38 @@ describe Efl::Evas do end # it "freeze and thaw should work" do - @e.event_freeze_get.should == 0 + @e.event_freeze?.should == 0 @e.event_freeze - @e.event_freeze_get.should == 1 + @e.event_freeze?.should == 1 @e.event_thaw @e.event_freeze_get.should == 0 end # it "up/down mouse event should work" do @e.event_feed_mouse_down 2, :evas_button_double_click, Time.now.to_i, FFI::Pointer::NULL - @e.pointer_button_down_mask_get.should == 2 + @e.pointer_button_down_mask.should == 2 @e.event_feed_mouse_up 2, :evas_button_double_click, Time.now.to_i, FFI::Pointer::NULL @e.pointer_button_down_mask_get.should == 0 end # it "move mouse event should work" do + @e.pointer_output.should == [0,0] @e.pointer_output_xy_get.should == [0,0] + @e.pointer_canvas.should == [0,0] @e.pointer_canvas_xy_get.should == [0,0] @e.event_feed_mouse_move 6, 6, Time.now.to_i, FFI::Pointer::NULL + @e.pointer_output.should == [6,6] @e.pointer_output_xy_get.should == [6,6] + @e.pointer_canvas.should == [6,6] @e.pointer_canvas_xy_get.should == [6,6] end # it "in/out mouse event should work" do @e.pointer_inside_get.should be_false @e.event_feed_mouse_in Time.now.to_i, FFI::Pointer::NULL - @e.pointer_inside_get.should be_true + @e.pointer_inside.should be_true @e.event_feed_mouse_out Time.now.to_i, FFI::Pointer::NULL - @e.pointer_inside_get.should be_false + @e.pointer_inside.should be_false end # # TODO evas_event_feed_* @@ -244,15 +254,18 @@ describe Efl::Evas do @e.image_cache_flush @e.image_cache_reload @e.image_cache_set 666 + @e.image_cache.should == 666 @e.image_cache_get.should == 666 end # it "font functions should work" do @e.font_hinting_set :evas_font_hinting_bytecode + @e.font_hinting.should == :evas_font_hinting_bytecode @e.font_hinting_get.should == :evas_font_hinting_bytecode @e.font_hinting_can_hint(:evas_font_hinting_none).should be_true @e.font_cache_flush @e.font_cache_set 666 + @e.font_cache.should == 666 @e.font_cache_get.should == 666 l = @e.font_available_list @e.font_available_list_free l @@ -275,7 +288,7 @@ describe Efl::Evas do @e.output_method_set Evas.render_method_lookup("buffer") @e.output_viewport_set 0, 0, 100, 100 @e.output_size_set 100, 100 - einfo = Native::EngineInfoBufferStruct.new @e.engine_info_get + einfo = Native::EngineInfoBufferStruct.new @e.engine_info einfo[:info][:depth_type] = Efl::Evas::EVAS_ENGINE_BUFFER_DEPTH_ARGB32 einfo[:info][:dest_buffer] = @pixels einfo[:info][:dest_buffer_row_bytes] = 100 * FFI::type_size(:int); @@ -305,7 +318,7 @@ describe Efl::Evas do clipper.resize 50, 50 @o.clip = clipper.to_ptr clipper.show - @o.clip_get.address.should == clipper.address + @o.clip.address.should == clipper.address require 'efl/eina_list' Efl::EinaList::REinaList.new(clipper.clipees_get).to_ary[0].address.should == @o.address @o.clip_unset @@ -314,7 +327,7 @@ describe Efl::Evas do end # it "focus functions should work" do - @o.focus_get.should be_false + @o.focus.should be_false @o.focus_set true @o.focus_get.should be_true @o.focus = false @@ -322,7 +335,7 @@ describe Efl::Evas do end # it "layer functions should work" do - @o.layer_get.should == 0 + @o.layer.should == 0 @o.layer_set 2 @o.layer_get.should == 2 @o.layer = 0 @@ -331,11 +344,12 @@ describe Efl::Evas do # it "name functions should work" do @o.name_set "My name" + @o.name.should == "My name" @o.name_get.should == "My name" end # it "geometry functions should work" do - @o.geometry_get.should == [0,0,100,100] + @o.geometry.should == [0,0,100,100] @o.resize 50,50 @o.geometry.should == [0,0,50,50] @o.move 10, 10 @@ -346,12 +360,14 @@ describe Efl::Evas do @o.show @o.visible?.should be_true @o.hide + @o.visible.should be_false @o.visible_get.should be_false @o.show @o.visible?.should be_true end # it "color get/set should work" do + @o.color.should == [200,200,200,200] @o.color_get.should == [200,200,200,200] @o.color_set 0,50,100,200 @o.color.should == [0,50,100,200] @@ -360,11 +376,12 @@ describe Efl::Evas do end # it "evas_get should worl" do - @o.evas_get.should === @e @o.evas.should === @e + @o.evas_get.should === @e end # it "type_get should work" do + @o.type.should == 'rectangle' @o.type_get.should == 'rectangle' end # TODO raise, lower @@ -375,19 +392,19 @@ describe Efl::Evas do end os[2].above.should === os[3] os[2].below.should === os[1] - os[2].above_get.should === os[3] - os[2].below_get.should === os[1] + os[2].above.should === os[3] + os[2].below.should === os[1] os[2].stack_below os[1] os[2].above_get.should === os[1] os[2].below_get.should === os[0] os[2].stack_above os[1] - os[2].above_get.should === os[3] - os[2].below_get.should === os[1] + os[2].above.should === os[3] + os[2].below.should === os[1] os.each do |o| o.free; end end # it "event_callback should work" do - @o.move 0, 0 # FIXME why should I need this ?!? + @o.move 0, 0 # FIXME why do I need this ?!? count = 0 cb = Proc.new do |data,evas,evas_object,event_info| count +=1 @@ -399,14 +416,14 @@ describe Efl::Evas do count.should==1 end # - it "pass event should work" do - @o.pass_events_get.should be_false + it "pass events should work" do + @o.pass_events.should be_false @o.pass_events_set true - @o.pass_events_get.should be_true + @o.pass_events.should be_true @o.pass_events=false - @o.pass_events_get.should be_false + @o.pass_events.should be_false @o.pass_events_set true - @o.pass_events_get.should be_true + @o.pass_events.should be_true @o.pass_events=false @o.pass_events_get.should be_false end |