summaryrefslogtreecommitdiffstats
path: root/lib/efl/elm/elm_store.rb
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2012-03-07 00:48:20 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2012-03-07 00:48:20 +0100
commit82bfaab0b6487697b12c8544b6c70e72b4e4f7cf (patch)
treefb30f4ffe2c7b3f1c8a5c4a4b4ed02373649554d /lib/efl/elm/elm_store.rb
parent8c2f3d46390d2f44d2fcd58cd4f39ad621e6b3db (diff)
parent7d430af815626bb783f0eb435d7df549733958d2 (diff)
downloadffi-efl-82bfaab0b6487697b12c8544b6c70e72b4e4f7cf.zip
ffi-efl-82bfaab0b6487697b12c8544b6c70e72b4e4f7cf.tar.gz
Merge branch 'master' of asynk.ch:ffi-efl
Diffstat (limited to 'lib/efl/elm/elm_store.rb')
-rw-r--r--lib/efl/elm/elm_store.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/efl/elm/elm_store.rb b/lib/efl/elm/elm_store.rb
new file mode 100644
index 0000000..625232a
--- /dev/null
+++ b/lib/efl/elm/elm_store.rb
@@ -0,0 +1,43 @@
+#! /usr/bin/env ruby
+# -*- coding: UTF-8 -*-
+#
+require 'efl'
+require 'efl/native/elm/elm_store'
+#
+module Efl
+ #
+ module Elm
+ #
+ class ElmStore
+ #
+ include Efl::ClassHelper
+ search_prefixes 'elm_store_'
+ #
+ def initialize o=nil, &block
+ @ptr = (
+ case o
+ when NilClass
+ FFI::AutoPointer.new Native.elm_store_filesystem_new, ElmStore.method(:release)
+ when FFI::Pointer
+ o
+ else
+ raise ArgumentError.new "wrong argument #{o.class.name}"
+ end
+ )
+ instance_eval &block if block
+ end
+ def self.release p
+ Native.elm_store_free p
+ end
+ def free
+ @ptr.autorelease=false if @ptr.is_a? FFI::AutoPointer
+ ElmStore.release @ptr
+ @ptr=nil
+ end
+ #
+ end
+ #
+ end
+end
+#
+# EOF