summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/efl/eet.rb43
-rw-r--r--spec/eet_spec.rb137
2 files changed, 86 insertions, 94 deletions
diff --git a/lib/efl/eet.rb b/lib/efl/eet.rb
index d546b5e..2e5bf0b 100644
--- a/lib/efl/eet.rb
+++ b/lib/efl/eet.rb
@@ -4,46 +4,38 @@
require 'efl/ffi/eet'
#
module Efl
+ #
module Eet
#
- class << self
+ class REetFile
#
- def open path, mode=:eet_file_mode_read, &blk
- if blk
- f = Efl::FFI.eet_open path, mode
- raise Exception.new "Unable to open file #{path}" if f.nil?
- yield EetFile.new f
- Efl::FFI.eet_close f
- else
- f = Efl::FFI.eet_open path, mode
- return EetFile.new f unless f.nil?
- end
- end
- end
- #
- class EetFile
+ include Efl::ClassHelper
+ @search_paths = [ [Efl::Eet,'eet_'] ].freeze
#
def initialize ptr
@ptr=ptr
end
private :initialize
#
- def close
- Efl::FFI.eet_close @ptr
- @ptr=nil
- end
- #
- def mode_get
- Efl::FFI.eet_mode_get @ptr
+ def self.open path, mode=:eet_file_mode_read, &blk
+ if blk
+ f = Efl::Eet.eet_open path, mode
+ raise Exception.new "Unable to open file #{path}" if f.nil?
+ yield REetFile.new f
+ Efl::Eet.eet_close f
+ else
+ f = Efl::Eet.eet_open path, mode
+ return REetFile.new f unless f.nil?
+ end
end
#
def write key, data, compress=false
- Efl::FFI.eet_write @ptr, key, ::FFI::MemoryPointer.from_string(data), data.bytesize, ( compress ? 1 : 0 )
+ Efl::Eet.eet_write @ptr, key, FFI::MemoryPointer.from_string(data), data.bytesize, ( compress ? 1 : 0 )
end
#
def read key
- ptr = ::FFI::MemoryPointer.new(:int)
- data = Efl::FFI.eet_read @ptr, key, ptr
+ ptr = FFI::MemoryPointer.new(:int)
+ data = Efl::Eet.eet_read @ptr, key, ptr
s = ptr.read_int
ptr.free
return nil if s==0
@@ -53,6 +45,7 @@ module Efl
end
#
end
+ #
end
#
# EOF
diff --git a/spec/eet_spec.rb b/spec/eet_spec.rb
index a4c1997..048799a 100644
--- a/spec/eet_spec.rb
+++ b/spec/eet_spec.rb
@@ -5,7 +5,10 @@ require 'efl/eet'
#
describe Efl::Eet do
#
- before(:all) { Eet = Efl::Eet }
+ before(:all) {
+ Eet = Efl::Eet
+ REetFile = Efl::Eet::REetFile
+ }
#
FP = '/tmp/_eet.cfg'
#
@@ -28,80 +31,76 @@ describe Efl::Eet do
end
#
it "should have good enums" do
- Efl::FFI.enum_type(:eet_file_mode)[:eet_file_mode_invalid].should eql -1
- Efl::FFI.enum_type(:eet_file_mode)[:eet_file_mode_read].should eql 0
- Efl::FFI.enum_type(:eet_file_mode)[:eet_file_mode_write].should eql 1
- Efl::FFI.enum_type(:eet_file_mode)[:eet_file_mode_read_write].should eql 2
+ Eet.enum_type(:eet_file_mode)[:eet_file_mode_invalid].should eql -1
+ Eet.enum_type(:eet_file_mode)[:eet_file_mode_read].should eql 0
+ Eet.enum_type(:eet_file_mode)[:eet_file_mode_write].should eql 1
+ Eet.enum_type(:eet_file_mode)[:eet_file_mode_read_write].should eql 2
end
#
- it "should open and close" do
- Eet.init
- f = Eet.open FP, Efl::FFI.enum_type(:eet_file_mode)[:eet_file_mode_write]
- f.write 'fake', 'value'
- f.close
- Eet.shutdown
- end
- #
- it "should be able to get file access mode" do
- Eet.init
- Efl::FFI.enum_type(:eet_file_mode).symbols.each do |m|
- next if m==:eet_file_mode_invalid
- Eet.open FP, Efl::FFI.enum_type(:eet_file_mode)[m] do |f|
- f.mode_get.should eql m
+ describe Efl::Eet::REetFile do
+ before(:each) { Eet.init }
+ after(:each) { Eet.shutdown }
+ #
+ it "should open and close" do
+ f = REetFile.open FP, Eet.enum_type(:eet_file_mode)[:eet_file_mode_write]
+ f.write 'fake', 'value'
+ f.close
+ end
+ #
+ it "should be able to get file access mode" do
+ Eet.enum_type(:eet_file_mode).symbols.each do |m|
+ next if m==:eet_file_mode_invalid
+ REetFile.open FP, Eet.enum_type(:eet_file_mode)[m] do |f|
+ f.mode_get.should eql m
+ end
end
end
- Eet.shutdown
- end
- #
- it "should write" do
- Eet.init
- f = Eet.open FP, :eet_file_mode_write
- f.mode_get.should eql :eet_file_mode_write
- f.write 'config', 'test key'
- f.close
- Eet.shutdown
- end
- #
- it "should read" do
- Eet.init
- f = Eet.open FP, :eet_file_mode_read
- f.mode_get.should eql :eet_file_mode_read
- f.read('config').should eql 'test key'
- f.close
- Eet.shutdown
- end
- #
- it "should read/write" do
- Eet.init
- f = Eet.open FP, :eet_file_mode_read_write
- f.write 'configg', 'test key'
- f.read('configg').should eql 'test key'
- f.close
- Eet.shutdown
- end
- #
- it "should write in block" do
- Eet.init
- Eet.open FP, :eet_file_mode_write do |f|
- f.write 'config2', 'test--key'
+ #
+ it "should write" do
+ f = REetFile.open FP, :eet_file_mode_write
+ f.mode_get.should eql :eet_file_mode_write
+ f.write 'config', 'test key'
+ f.close
end
- Eet.shutdown
- end
- #
- it "should read in block" do
- Eet.init
- Eet.open FP, :eet_file_mode_read do |f|
- f.read('config2').should eql 'test--key'
+ #
+ it "default mode should be read" do
+ f = REetFile.open FP
+ f.mode_get.should eql :eet_file_mode_read
+ f.close
end
- Eet.shutdown
- end
- #
- it "should read/write in block" do
- Eet.init
- Eet.open FP, :eet_file_mode_read_write do |f|
- f.write 'config22', 'test--key'
- f.read('config22').should eql 'test--key'
+ #
+ it "should read" do
+ f = REetFile.open FP, :eet_file_mode_read
+ f.mode_get.should eql :eet_file_mode_read
+ f.read('config').should eql 'test key'
+ f.close
+ end
+ #
+ it "should read/write" do
+ f = REetFile.open FP, :eet_file_mode_read_write
+ f.write 'configg', 'test key'
+ f.read('configg').should eql 'test key'
+ f.close
+ end
+ #
+ it "should write in block" do
+ REetFile.open FP, :eet_file_mode_write do |f|
+ f.write 'config2', 'test--key'
+ end
+ end
+ #
+ it "should read in block" do
+ REetFile.open FP, :eet_file_mode_read do |f|
+ f.read('config2').should eql 'test--key'
+ end
+ end
+ #
+ it "should read/write in block" do
+ REetFile.open FP, :eet_file_mode_read_write do |f|
+ f.write 'config22', 'test--key'
+ f.read('config22').should eql 'test--key'
+ end
end
- Eet.shutdown
+ #
end
end